The State of Java
codemonkeyism.com
codemonkeyism.com
Results 1 - 10 of about 22,200,000 for obama is a muslim. Muslim indeed.
On a more serious note, the JVM is a platform that enterprise has a lot of experience deploying and securing. As the author admits, the JVM doesn't need Clojure or anything else to save it; it's entrenched in enterprise. This, combined with the fact that even COBOL isn't dead yet, makes me think that Java has a long way to go. Languages never die because there are better ones out there. It's certainly not trendy, but companies are going to need Java programmers for a helluva long time.
Changes quite a bit if you quote it, leaving out pages with headlines like "Dozens dead in Java quake." People should think a bit more carefully before referencing numbers like these.
edit: it seems a company called Veryant already did it (http://www.veryant.com/products/)
If you don't see their name in industry publications and trade conferences they're as good as dead. Google their products and see if anybody is looking for help with them online. If they have a small user community, you can get a feel for how well they're doing. If there is no visible user community, well, there is either no market or the "company" is just a brochure website for vaporware.
A European company's IT staff built it over a period of several years, and it looks like a fairly impressive bit of engineering: http://media-tech.blogspot.com/2009/06/naca-presented-jazoon...
Will controversial headlines often get undeserved interest? Yes
In the actual world things don't have to die for new things to appear. In the world of blogs and newspapers - each product must slay the ones that have gone before: "will this product replace all iphone sales?" - and then of course "product fails because all iphone owners didn't sell them and buy the new product".
I guess for programming languages there is also some one up-manship - "I'm better than all you people over there because my language of choice is still alive".
I could perhaps understand the articles point a little if Java had just stopped being flavour of the month - but it stopped being that years ago. It might not be the "sexy" choice but there is a huge amount of the worlds IT infrastructure running on Java and I don't reckon that's going to stop any time soon.
Java is being used to teach programming in many schools, so there are a large number of newbie developers walking around with a single hammer in their toolbox. They are going to be using it for any new project that they are tasked with.
And in general I think languages never really die. Look at COBOL, ADA and Perl (wink).
We went with the Java version... what we could have done in one week has now taken up around two months.
I think in the end, the author really nailed it. The important question is, "Is Java dead for me?" I would not use Java for a new personal project (and probably not for a work project either unless the libraries were needed). I do not have a clear replacement in mind... Python stands out the most.
My biggest problems with Java are the compilation step (admittedly not that big a deal with an IDE, but I don't always like to use an IDE), the insistence on objects, and most importantly, the lack of first class functions.
A new issue that has come up for me in comparison to Python is constructor overloading. In Python, constructor overloading is beautiful because of args and kwargs. In any C-family language (including Java here), it's horrible. With small objects where inheritance works well, the constructors in other languages can get unwieldy fast. In Python, they're always concise. I also love keyword arguments in general. It can make code much more readable, especially when using something like wxPython, where the parameter lists are long and otherwise would be quite vague.
It's like proclaiming conventional spanners dead now that you can get adjustable spanners.
Some jobs you want solid object based exception handling water tight programming, and other jobs you want loose runtime based functional stuff.
Great Point,
"Is Java dead for me?" (and why or why not) would be an interesting question to ask HN regulars, vs the stupidity of trying to decide whether Java is "dead" or "alive" in general. The former leads a personal statement of intent, and consequently there is no real argument about any answer. The latter is undecideable and leads to plenty of unproductive argument.
As for me, I just transferred the leadership of an Open Source Java library I maintain to someone else, primarily because I am sick of writing and maintaining Java. That said, it is just a personal decision and I can imagine many scenarios where Java (not just the JVM) use would be appropriate. I just hope I am never part of those situations again! :-)
Personally, when I need to build something on the JVM I'll use Scala or Clojure. Else, I'll use Haskell, Python or C as appropriate.
Touch Wood.
Generally, it's not a problem. I have a hard time articlating why, exactly... I guess my code just tends to be short, sweet, and to the point. It's very rare that when I code in C, for example, that I try to do something that the type system wouldn't allow anyway.
That's a terrible answer, my apologies. Maybe this would be better: could you provide an example of a situation where you feel that dynamic code would cause a problem?
Mabye a bit of back and forth will help me figure out what I'm trying to say.
Maybe it comes down to documentation. If I were to use some sort of function where I wasn't sure what the argument was, I'd look in the docs to see first.
Java is great for the enterprise because it's stable, mature, and doesn't leave any room for cleverness to fly over people's heads. However the compile-time checks don't do much to prevent difficult-to-debug errors. A more powerful type system like Haskell is much more interesting in this regard.
You definitely compile Java code well before you run it, at least in your full enterprise environment. And if you're using an IDE, you'll probably see any type errors well before you even compile it.
Sure, you might put your code through a workout with unit tests (and you should!), but any programmer knows that unit tests do not guarantee that you are using the right types in production, and they definitely do not ensure that clients of your code will be using the right types from your code.
I can't count the number of times I've had to use Data::Dumper just to figure out what type of object I'm dealing with. And don't even get me started with trying to figure out the right types of arguments to pass!
You are correct that the hardest bugs will be left for run-time, but why add to the hassle?
I remember seeing a figure which was in the billions, which basically represented the number of non-pc devices reliant on Java, and that number was comprised mostly of mobile devices.
On top of that, most schools around the world begin teaching their computing undergrads in Java, which is a pretty big deal in terms of where development is headed in the mainstream.
Quit the endless "This is hot! This is dead! We're reinventing X by taking all the features out!"
We're not the fashion industry here, we're software developers.
How can a language even die? Sure, the community could die off, there could be no new updates, but that doesn't mean death.
Headline writers take note.
I'm in telecom, and can tell you that Java has completely colonised this space for OSS/BSS (operational support/billing support systems), phone switch EMSs (external management systems), large-scale user portals and provisioning (Broadsoft), etc.
It ain't going anywhere.
wlievens, given those requirements, Java is a good choice (and I say this as someone who just gave up on java completely) and there isn't yet a feasible alternative langauge with that level of tool support afaik.
This is maybe a lesson for me to spend less time reading HN from now on. Perhaps leave the reading for the evenings as entertainment. :)
Just off hand, can anyone think of a company that legitimately could have succeeded but failed because they chose the wrong programming language? Like they had a really really great idea and they had a really good design but the language just got in the way?
Anyways, since when did googling for "X is dead" mean anything? I just googled for "Obama is dead" and got 111,000,000 hits. I guess that makes Obama 13 times more dead than Java. Somebody get me a copy-editor.
I'll give the author some points: the discussion that followed the ridiculous intro was a somewhat interesting, if dissembling, defense of Java. In the end though, it's all just some private pondering.
Java's death won't come at the declaration of some enterprising young turks who like Ruby (hey, I like Ruby too) battling it out over mailing lists and blogs. Programming languages, like old soldiers, don't die; they fade away... and very slowly.
So.. if you want to build a static help system...
Mint uses Java a ton too and they did ok: http://mint.jobscore.com/jobs/mint/javasoftwareengineerbacke...
Statements like this are patently absurd. OCaml is definitely close enough to the "procedural mainstream".