I can't figure out what the target audience of this post is.
It's without doubt not programmers, as the article tries to explain what a programming language is "...It’s a programming language, a way of writing software code..."
And also, who is going to be interested in a story about java if they aren't programmers or in the IT business?
The author seems to not even know what a JVM language is. "...Originally, the Java virtual machine — aka the JVM — only ran code built with the Java programming language, but today, it runs all sorts of other languages..."
Another example where the author is not being consistent
"...language called Clojure to a new and increasingly popular invention known as Scala...Lisp, a way of quickly scripting code"
So now clojure is a language, Scala an invention and Lisp, a way of quickly scripting code.
This article is making noise without talking to anybody.
I can't figure out what the target audience of this post is.
It's part of Wired's "Enterprise Technology" blog[1] so it's for CIO/CTO and other IT consultant types who don't write any code themselves, but make "best practice"[sic] recommendations.
Tech leadership or programming enthusiasist are potential targets. I gather the average person is actually the target due to this statement: "If you know Java at all, you probably think of it as something from the late ’90s, a child of the original internet boom, a little piece of downloadable software that sent a cartoon mascot dancing across your Netscape web browser."
This is a common refrain for all of the articles published in this column. They also made like 10 variations or so of the same article about Hadoop, Dremel and related software without actually explaining anything of value about the platform.
I guess the audience is whoever gets to see the ads.
"...Originally, the Java virtual machine — aka the JVM — only ran code built with the Java programming language, but today, it runs all sorts of other languages..."
I'm confused what your main problem here is, besides it's almost lifted straight from Wikipedia. From Wikipedia: "Although the JVM was primarily aimed at running compiled Java programs, many other languages can now run on top of it." So, as far as I can tell from what's quoted, there's not much wrong with what was said. Please clarify.
Also, isn't Clojure a programming language? Does Wikipedia also lie here? If it's not, then what is it?
Calling the JVM platform a relic is a major mistake - the number of businesses that rely on the platform is massive.
However Java-the-language has been stagnant since Java 1.5 in September 2004. The Java API has had some changes but the language has remained mostly unchanged. The 1.8 version promises some nice improvements inspired by FP languages. Unfortunately, 1.8 has been continuously delayed with a current release date of sometime in early 2014. For JVM developers who care about their productivity, moving over to languages such as Scala, Groovy, and Clojure is the only sane choice.
Java fills a particular niche (code with an emphasis on readability) which is not addressed by Groovy or Clojure and arguably not addressed by Scala. I'd say Go is the biggest competition for that niche as a language, although it's not JVM, it does fix many warts with how Java handles inheritance/polymorphism without sacrificing readability and simplicity.
Groovy is slow as a 1-legged dog. (we use it to fill the shell/perl niche a lot but it is slow, effectively you're doing reflection lookups every time you call a method in Groovy). The dynamicness makes it better for scripting or web programming, though, where you don't care as much about performance.
Scala is the JVM's C++, a giant pile of overlapping features, supported by an advanced and very slow compiler that yields fast bytecode. Case classes, funny operator overloading, lots of additional syntax for collection manipulation. They're giving you more expressiveness at a cost of readability and language complexity. (This is an opinion, some may disagree).
Clojure is really awesome but most dev shops will have an easier time with imperative programming models.
Ultimately, not changing in 8 years isn't fundamentally bad, and Java isn't that bad at all as a language if you avoid things like EJB and Hibernate, and if you're not looking for a dynamic language like Ruby and dissapointed by Java not being Ruby. You might just disagree with the tradeoffs.
That's a little generous. Clojure is great and I enjoy working with and Scala is fun too, but Java still has the best tooling support. Scala IDE has weird little bugs here and there whereas I haven't encountered a JDT bug in years.
I use Eclipse for all of them Counterclockwise, ScalaIDE and JDT. Counterclockwise is actually really nice. Selecting forms is super simple and makes the parenthesis "issue" not a thing.
It's a shame there isn't an "employable" choice of language platforms somewhere between a GC-ed language and C.
The JVM has an exquisitely tuned GC, but any GC still comes with a cost. But do I have to use a language with no safety features at all if I opt for other non-GC languages?
(I'm of course thinking of something like FreePascal, but there must be a number of good middle-ground alternatives that are being ignored in the work-place, which would easily write less hardware-hogging code)
> moving over to languages such as Scala, Groovy, and Clojure is the only sane choice.
Anyone who mentions these three languages in the same breath is regurgitating the marketing talk for one of them. The article doesn't make that mistake, so could actually be genuine research rather than some PR drivel from some corporate Product Manager.
Java has steadily grown over the years as the premier choice in the Enterprise. This is the reason that Java developers are relatively many (though I don't believe they are falling from the sky as the article suggests).
This article is a little strange in general. The idea that Java was ever dead seems to be from the perspective of those who thought it was only for applets or devices. But the author acknowledges his awareness that this is not all Java ever was. So, to make the case that it died, he holds out a few examples of companies that tried something else, but couldn't scale until they went to the JVM. He simultaneously ignores the entire Enterprise Java world.
Yea, it's like the author switches perspectives to push his narrative. For normal end-users Java has all but disappeared from their ecosystem. But for enterprise programmers it never went anywhere.
From the point-of-view of a web developer, JSP is virtually invisible. For this reason, I guess the majority of online tech magazine readers, who would presumably be mostly ninjas, pirates and rockstars, would think of Java as dead.
I mean, it's a bit outdated as a language, definitely showing some signs of strain, but it's still not dead - for better or worse. I've yet to come across a more human-readable language, barring COBOL.
I love Java but I hate Oracle more than any other tech company. I don't refuse to use the language but I don't like to either if I can help it. I really hope with OpenJDK we can just forget about Oracle in the long term and have a solid language/platform that is free from a corporate parent.
Java applets are dead, and should be. Great idea poorly executed.
Java on the server never died or even coughed. It's huge. It's a very rich ecosystem and performs very well at scale.
Java for apps is IMHO underrated. The biggest foot-shooting decision Sun made was to bundle shitware like the ask.com toolbar with the JRE, and never to solve the JRE deploy/update problem that requires that every Java app bundle its own JRE. Solve that and java apps on desktop computers will make a comeback.
> Java applets are dead, and should be. Great idea poorly executed.
I think Microsoft killed the applets when it stopped upgrading the java plugin in IE. Applets were challenging MS dominance on the desktop. They kept it that way until java script came along.
Java never really went away. This article to me is really more of an attack on the recently/currently trendy technologies like Ruby on Rails than anything else.
The article is terrible when read from the perspective of a developer. But it does touch on something - often here on HN, start up culture and wider tech-centric sites if a technology is mainstream, not release 0.001 its not considered worthy of attention or praise and gets an unhealthy amount of sour grapes. Java/JVM is ubiquitous in our field and has been quietly getting the job done for over 15 years in that sweet spot of fast, server-centric applications. I'm looking forward to v1.8 where it will pick up the features needed to keep it an essential tool.
I think that saying it's the second coming is misleading. It was no longer considered sexy and cutting edge by the startup community, but as the web spread to every corner of every industry it was by far the language and platform of choice for thousands of IT departments. The result is an unmatched galaxy of scalable products that can be dropped in to any web application.
Some of this article reads as if it were a "Special Advertisement Section" paid by Oracle to fend off the negative press Java has been getting from the recent spate of security exploits.
Its good that it mentions the JVM-based languages though. I know many "Java" programmers who hate Java proper but love languages like Groovy, Scala, etc...
"Java is really the only choice when it comes to the requirements for a company like ours — extreme performance requirements and extreme scalability requirements. There is no viable alternative"
C# is not a plateform. When people talk about Java it is the JVM , not the language. .NET is no alternative to java, i cant install .NET on a *nix server ( and no, Mono is not an alternative either).
Neal Ford said: "In a keynote address that I once co-presented with Martin Fowler, he made a perceptive observation: The legacy of Java will be the platform, not the language."
The performance metrics for some JVM-based technologies are really impressive but I continue to see performance problems with Java (the language) based software. In my field, very high speed network data processing work is done with C/C++ out of necessity.
You are correct. Java's niche is servers that need to accept a lot of concurrent connections and middleware that can shove data around via a set of standard protocols. Outside of those enterprise-centric areas, it's not a great fit for much else (fast data processing, embedded, games, etc.) I say this as someone who has worked with server-side Java since 1999.
The idea that Java is a "Clinton-era relic" is pretty ahistorical when you consider that Google and Amazon have been using Java on the server side since their early days - it never went away. The tech press just didn't pay attention to it.
This article makes it sound like an either-or, but JRuby is a mature alternative that allows you to pair Ruby's excellent web tools ecosystem (Rails foremost within it) with the ability to shunt off expensive tasks to Java or another JVM language.
isn't this just a single example of 'right tools for the job' and the common sense that ruby has abyssmal performance owing to /its/ architecture compared to java and so simply can not scale as well as a like for like implementaton in java (which can be said to have abyssmal performance compared to /good/ native bytes, C or C++ [although that gap is narrowing significantly in many areas - especially when sloppy code is involved]).
Even Groupon, arguably one of the largest Rails-based sites still out there, is moving away from Rails. (Mostly to Node.js although again, with some Java).
Yeah,like "Enterprise" Node.js projects are managable with a team of hundred of developpers... they are not.
Node sucks at database interaction, sucks at performance(computation) , the only thing that nodejs does well is concurrency ( handling concurrent connections ) but it doesnt make the js code running inside nodejs fast(computation).
In fact it is not. Your server wont die fast because Nodejs can handle a lot of connections , but the end users will wait a very very long time for a response. that's the truth about NodeJS.
[+] [-] theboywho|12 years ago|reply
It's without doubt not programmers, as the article tries to explain what a programming language is "...It’s a programming language, a way of writing software code..."
And also, who is going to be interested in a story about java if they aren't programmers or in the IT business?
The author seems to not even know what a JVM language is. "...Originally, the Java virtual machine — aka the JVM — only ran code built with the Java programming language, but today, it runs all sorts of other languages..."
Another example where the author is not being consistent "...language called Clojure to a new and increasingly popular invention known as Scala...Lisp, a way of quickly scripting code"
So now clojure is a language, Scala an invention and Lisp, a way of quickly scripting code.
This article is making noise without talking to anybody.
[+] [-] dpapathanasiou|12 years ago|reply
It's part of Wired's "Enterprise Technology" blog[1] so it's for CIO/CTO and other IT consultant types who don't write any code themselves, but make "best practice"[sic] recommendations.
[1] http://www.wired.com/wiredenterprise/
[+] [-] smrtinsert|12 years ago|reply
[+] [-] cliveowen|12 years ago|reply
I guess the audience is whoever gets to see the ads.
[+] [-] leetNightshade|12 years ago|reply
I'm confused what your main problem here is, besides it's almost lifted straight from Wikipedia. From Wikipedia: "Although the JVM was primarily aimed at running compiled Java programs, many other languages can now run on top of it." So, as far as I can tell from what's quoted, there's not much wrong with what was said. Please clarify.
Also, isn't Clojure a programming language? Does Wikipedia also lie here? If it's not, then what is it?
[+] [-] total__C|12 years ago|reply
However Java-the-language has been stagnant since Java 1.5 in September 2004. The Java API has had some changes but the language has remained mostly unchanged. The 1.8 version promises some nice improvements inspired by FP languages. Unfortunately, 1.8 has been continuously delayed with a current release date of sometime in early 2014. For JVM developers who care about their productivity, moving over to languages such as Scala, Groovy, and Clojure is the only sane choice.
[+] [-] jbooth|12 years ago|reply
Groovy is slow as a 1-legged dog. (we use it to fill the shell/perl niche a lot but it is slow, effectively you're doing reflection lookups every time you call a method in Groovy). The dynamicness makes it better for scripting or web programming, though, where you don't care as much about performance.
Scala is the JVM's C++, a giant pile of overlapping features, supported by an advanced and very slow compiler that yields fast bytecode. Case classes, funny operator overloading, lots of additional syntax for collection manipulation. They're giving you more expressiveness at a cost of readability and language complexity. (This is an opinion, some may disagree).
Clojure is really awesome but most dev shops will have an easier time with imperative programming models.
Ultimately, not changing in 8 years isn't fundamentally bad, and Java isn't that bad at all as a language if you avoid things like EJB and Hibernate, and if you're not looking for a dynamic language like Ruby and dissapointed by Java not being Ruby. You might just disagree with the tradeoffs.
[+] [-] llemiengre|12 years ago|reply
[+] [-] smrtinsert|12 years ago|reply
I use Eclipse for all of them Counterclockwise, ScalaIDE and JDT. Counterclockwise is actually really nice. Selecting forms is super simple and makes the parenthesis "issue" not a thing.
[+] [-] Roboprog|12 years ago|reply
The JVM has an exquisitely tuned GC, but any GC still comes with a cost. But do I have to use a language with no safety features at all if I opt for other non-GC languages?
(I'm of course thinking of something like FreePascal, but there must be a number of good middle-ground alternatives that are being ignored in the work-place, which would easily write less hardware-hogging code)
[+] [-] vorg|12 years ago|reply
Anyone who mentions these three languages in the same breath is regurgitating the marketing talk for one of them. The article doesn't make that mistake, so could actually be genuine research rather than some PR drivel from some corporate Product Manager.
[+] [-] gte910h|12 years ago|reply
[+] [-] unclebucknasty|12 years ago|reply
This article is a little strange in general. The idea that Java was ever dead seems to be from the perspective of those who thought it was only for applets or devices. But the author acknowledges his awareness that this is not all Java ever was. So, to make the case that it died, he holds out a few examples of companies that tried something else, but couldn't scale until they went to the JVM. He simultaneously ignores the entire Enterprise Java world.
Odd.
[+] [-] gph|12 years ago|reply
[+] [-] James_Duval|12 years ago|reply
I mean, it's a bit outdated as a language, definitely showing some signs of strain, but it's still not dead - for better or worse. I've yet to come across a more human-readable language, barring COBOL.
[+] [-] InTheSwiss|12 years ago|reply
[+] [-] api|12 years ago|reply
Java on the server never died or even coughed. It's huge. It's a very rich ecosystem and performs very well at scale.
Java for apps is IMHO underrated. The biggest foot-shooting decision Sun made was to bundle shitware like the ask.com toolbar with the JRE, and never to solve the JRE deploy/update problem that requires that every Java app bundle its own JRE. Solve that and java apps on desktop computers will make a comeback.
[+] [-] huherto|12 years ago|reply
I think Microsoft killed the applets when it stopped upgrading the java plugin in IE. Applets were challenging MS dominance on the desktop. They kept it that way until java script came along.
[+] [-] skwirl|12 years ago|reply
[+] [-] Roboprog|12 years ago|reply
Of course, if your site becomes popular, performance matters later.
[+] [-] cliveowen|12 years ago|reply
[+] [-] arel|12 years ago|reply
[+] [-] tootie|12 years ago|reply
[+] [-] Zelphyr|12 years ago|reply
Its good that it mentions the JVM-based languages though. I know many "Java" programmers who hate Java proper but love languages like Groovy, Scala, etc...
[+] [-] gbaygon|12 years ago|reply
What about C#?
[+] [-] easytiger|12 years ago|reply
[+] [-] edwinnathaniel|12 years ago|reply
[+] [-] camus|12 years ago|reply
[+] [-] noir_lord|12 years ago|reply
Kudos on the proof reading.
[+] [-] RBerenguel|12 years ago|reply
[+] [-] latchkey|12 years ago|reply
[+] [-] eccp|12 years ago|reply
[+] [-] drderidder|12 years ago|reply
[+] [-] cgh|12 years ago|reply
[+] [-] mring33621|12 years ago|reply
[+] [-] brown9-2|12 years ago|reply
[+] [-] drags|12 years ago|reply
[+] [-] jheriko|12 years ago|reply
[+] [-] alasdair_|12 years ago|reply
(And yes, obviously Ruby != Rails.)
[+] [-] camus|12 years ago|reply
Node sucks at database interaction, sucks at performance(computation) , the only thing that nodejs does well is concurrency ( handling concurrent connections ) but it doesnt make the js code running inside nodejs fast(computation).
In fact it is not. Your server wont die fast because Nodejs can handle a lot of connections , but the end users will wait a very very long time for a response. that's the truth about NodeJS.
[+] [-] dmiladinov|12 years ago|reply