AsK DZ: Will Java Make a Comeback?
An interesting prediction of a Java resurgance in web development came from the "I, Cringely" blog. The post was entitled: "The second coming of Java" and here was what author Bob Cringely's theory boiled down to:

I know I'm asking a slightly biased crowd here ;) but what do you think of Cringely's theory? Are Ruby, Python, and Groovy doomed in the coming solid-state takeover? Will Java be the language that makes a comeback, or will .NET or something new take a leading role?
Ruby is easier than Java. It runs something like seven times slower but who cares? We’re still waiting for the database... When SSDs gain enough capacity there will be a shift from the Ruby world back to the Java world... the statement “Ruby is incredibly slow but I don’t care because my database is slower” will no longer be true. At that point Ruby (Python, Groovy, you name it) becomes the bottleneck.
-Robert Cringely

I know I'm asking a slightly biased crowd here ;) but what do you think of Cringely's theory? Are Ruby, Python, and Groovy doomed in the coming solid-state takeover? Will Java be the language that makes a comeback, or will .NET or something new take a leading role?






Comments
Jacek Furmankiewicz replied on Thu, 2011/10/13 - 9:50am
James Sugrue replied on Thu, 2011/10/13 - 9:50am
One thing you can count on is that Java will never go away. Languages that are written on the JVM have ensured that Java sticks around. Java 7 has made some nice advances, and Java 8 is looking good.
One of the most notable moves from Ruby to Java has been Twitter - http://www.gmarwaha.com/blog/2011/04/11/twitter-moves-from-rails-to-java/. That article raises an interesting (but arguable) point that a Java code base is more maintainable than that of Ruby.
As always, the future is looking bright for Java.
James
Mitch Pronschinske replied on Thu, 2011/10/13 - 10:03am
True, Java has a lot of code already out there but are most of the new web applications being built in Java? Is it still the common first choice when deciding which language to build a web app with? I actually don't know. A lot of them could be polyglot too.
Rick Ross replied on Thu, 2011/10/13 - 10:15am
If your question is "Is Cringely Correct?" then I think we need to discuss an interesting assumption underlying his conclusion. His argument is fundamentally about the relationship of programming language protoyping simplicity and database/device access speed. In essence, he says the new crop of languages has fared well because web apps spend all their time waiting for the database anyway (or something along these lines.)
The rise of low-cost, reliable SSD's with amazing raw throughput and near-zero latencies has already begun. We have used SSD's for primary database storage at DZone for years, and the performance is marvelous. Still, I wouldn't go so far as to assert that this factor could/would/should drive a Java renaissance. Our Ruby and Python apps have benefitted just as much as our Java apps. The advantages of faster databases are pretty much equally available to all programming platforms and languages - the water rises for everyone.
At the end of the day, one's success with a language is only partly attributable to the language, itself. The greater factor is one's skill with the language and its associated tools and libraries. Neither Ruby, Python nor Java is defective in any general sense, but there are millions of programmers who write crappy code and crappy websites in each of the three.
No, I do not believe Cringely is correct, but I did enjoy reading his bold opinion.
Jacek Furmankiewicz replied on Thu, 2011/10/13 - 10:16am
in response to:
Mitch Pronschinske
Also, the argument about how much faster Java is than scripting languages is becoming false very quickly. The Python PyPy JIT runtime was giving me 8000 TPS in a test web app...the simple equivalent Hello World Jetty/Spring app was giving me 5000 TPS. So don't think a year from now the JVM speed advantage will be as big as you think.
Astrid Training replied on Thu, 2011/10/13 - 11:07am
in response to:
Mitch Pronschinske
Casey Provost replied on Thu, 2011/10/13 - 12:04pm
Mladen Girazovski replied on Thu, 2011/10/13 - 12:28pm
Casey Provost replied on Thu, 2011/10/13 - 12:51pm
in response to:
Mladen Girazovski
Phil H. replied on Thu, 2011/10/13 - 1:05pm
Nicolas Bousquet replied on Thu, 2011/10/13 - 1:25pm
in response to:
Mitch Pronschinske
I don't think JAVA is #1 for small public web sites. JAVA is #1 for corporate intranet, for IT and big companies. It also happen that IT has more jobs that making public website.
And let admit it, most public website are just customized CMS, blogs, ecommerce and alike solutions. While this can be a good amount of the web that use that kind of things, this is not were the most developpers are.
For the theory I don't buy it. First like already said java is #1 today. And I think this include new dev. Remember that #2 and #3 are C# and C++. Not Ruby or Python. Where the work is the IT industry and IT industry believe in statically typed language with good tooling and IDEs. If it is not Java this will not be ruby or python. But C#, C++ or maybe even scala. All the things that ease maintenance of big applications.
On the contrary if you make small applications and website, you don't really care of performance anyway. An average consummer grade desktop machine can already take more load than many of theses small app will ever have. In this case who care ruby is slow? Nobody.
SDD, more cores and more RAM will just increase the number of cases when you don't need to optimize at all anymore.
Paul Wong replied on Thu, 2011/10/13 - 4:11pm
Thierry Bodhuin replied on Thu, 2011/10/13 - 5:02pm
For instance if you have (considering that the storage end has the same overhead for both used language):
So the difference in percentage is small, only 15/20 % improvement in favor of Java in this example.
However if you reduced the storage time to say 0.5 ms then we have:
then the improvement becomes more than 30 %.
If you reduced again (SSD example) the storage time to day 0.1 ms, then we have:
then nearly 50 % improvement.
Just to say that in the 80/20 rule spirit, you have to optimize the bottleneck part (storage part now), if we solve this then the bottleneck is language or optimized compiler for language or better dynamic optimizing compiler then languages like Java (because mainly anyway of the dynamic optimizing compiler) will remain a first level language.
Hope I explain the point behind the "simple" assertion of Cringely.
However language that are used on the top on JVM using a dynamic optimizing compiler and optimized for the JVM opcodes should behave similarly I suppose.
Fabrizio Giudici replied on Thu, 2011/10/13 - 5:27pm
As it has been said, there's no meaning in calling for a comeback, since Java is still #1. Ruby & co. are very small niches - and yes, the enterprise is still using Java for their apps. We shouldn't think that the world is only made by cool things that are being blogged on.
Re: Python, I've got a question for Rick. I've recently run into OSQA, which you DZone guys are involved with. I've met it at answer.atlassian.com and I think it's great. I'm planning to use it for replacing JForum for my software products (in particular, an Android app which has got thousands of users). My only regret that it's made in Python - don't misunderstand me, I'm not a fanatic and I don't bash a good software because it's not in Java. It's that I'm a single-man company and I personally manage my servers, and Python/Django are currently not in my knowledge. But it's likely I'll go that way.
In any case, I first searched for an equivalent web app made in Java, which would simplify my job. I found that you have Qato, made in JEE - but it's not free, so I'll probably stay with OSQA. But I think it's an interesting point that OSQA, free and not labeled as "enterprise", is made in Python, while Qato, labeled "enterprise" is made in JEE. Only marketing stuff, or are there technical reasons?
Matthew Schmidt replied on Thu, 2011/10/13 - 7:19pm
in response to:
Fabrizio Giudici
Jonathan Fisher replied on Thu, 2011/10/13 - 9:52pm
Jonathan Fisher replied on Thu, 2011/10/13 - 9:57pm
in response to:
Mitch Pronschinske
Yes. Thousands. Every single day. Take a look at life outside of the web2.0 space (enterprise, and government) and you'll see that Java dominates. Very few enterprises have want to make investments in technology that's only been around for a few months. Java is a solid bet in order for maintainable, longer-term applications. I'm surprised for a otherwise pretty decent technology website, that this is a surprise!
Lund Wolfe replied on Sat, 2011/10/15 - 4:25am
There are probably lots of CMS, Drupal/PHP, Django/Python web apps out there just because they can be done easily, cheaply, and quickly but they don't have the power, flexibility, etc. of Java and its many frameworks, libraries, tools.
Mohan Soundararajan replied on Sat, 2011/10/15 - 12:38pm
in response to:
Jonathan Fisher
exactly ! thats the point.
The advantages of Java are that speed, large amount of libraries, huge enterprise backing
In my opinion, Other languages are preferred only for the expressive beauty / ease.
Java's expressiveness has started becoming beautiful in 7,8 versions, though slowly. I believe it would be difficult for other languages to overcome Java's priority among developers and enterprise on the long go
Kookee Gacho replied on Mon, 2012/07/02 - 7:34am