Mitch Pronschinske is the Lead Research Analyst at DZone. Researching and compiling content for DZone's research guides is his primary job. He likes to make his own ringtones, watches cartoons/anime, enjoys card and board games, and plays the accordion. Mitch is a DZone Zone Leader and has posted 2578 posts at DZone. You can read more from them at their website. View Full User Profile

AsK DZ: Will Java Make a Comeback?

10.13.2011
| 9366 views |
  • submit to reddit
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:

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

What do you mean by comeback? It's #1 already! Come back from first place back to first place? For all the hype, the amount of Ruby/Groovy/Python code out there is miniscule compared to existing Java solutions. The question should be more whether Java will continue its current dominance, not whether it will make a comeback.

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

@Jacek

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

Well, I personally prefer Django to all Java web frameworks combined. But that has nothing to do with the language itself, but the fact that Django Admin makes all Java web frameworks look like a joke for CRUD screens.

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

Um, yes?! Duh much?

Casey Provost replied on Thu, 2011/10/13 - 12:04pm

I believe the theory is completely wrong. More and more developers are joining the programming world and with great alternatives out there to Java, especially in web programming such as Python or Ruby. These languages are generally more fun to program in and are syntactically more enjoyable. These languages are also becoming impressively faster and the speed barrier is becoming less of an issue. Of all the developers I know coming into their careers none of them are choosing Java, in fact they can't be happier to get rid of Java after their college learning experience. As new languages arrive such as Clojure which are still syntactically ugly, but arguably better alternatives to Java I believe that Java itself will become the next "mainframe" language in that it will end up eventually utilized by a small group of experts or by the enterprise development community. This may be a fairly aggressive stance...but honestly I can think of anyone I know that actually enjoys Java development which will mean there will be a near linear growth over time for advocates of Java alternatives leading to an eventual minimized use of the language as a whole.

Mladen Girazovski replied on Thu, 2011/10/13 - 12:28pm

How come that PHP, the language in which most webapps are written, isn't even mentioned?

Casey Provost replied on Thu, 2011/10/13 - 12:51pm in response to: Mladen Girazovski

For the same reason why people don't mention ugly betty when talking about attractive women.

Phil H. replied on Thu, 2011/10/13 - 1:05pm

PHP has almost been abandoned by developers IMO although somewhat unjustly but thats another story. Not many new projects seem to be using PHP. I don't understand two things about the post. It seems to assume that Python and Ruby are so far ahead of Java but I just don't see that. And the cloud services seem to be adding Java to their arsenals. If anything I'm not hearing alot about Ruby. And second I don't see why Groovy is lumped in there. Its the easiest to optimize where you need speed. You simply change the file extension to .java and use the strict syntax. I thought the whole point is that you can either use the Groovy syntax where you need to cut back on lines of code or use Java where you need speed. And I've never dug too far into Groovy++ but apparently you get the speed of Java out of it anyway. Scala seems to be fast and it seems to be the hot topic now.

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

Java is already #1 for enterprise. Maybe not in the public sites (social applications), but it's making a comeback with likes of playframework

Thierry Bodhuin replied on Thu, 2011/10/13 - 5:02pm

Cringely has good arguments.
For instance if you have (considering that the storage end has the same overhead for both used language):

Application                  -> Storage (Database, File ,...)       TOTAL
Java (0.5 ms)              - >  (2 ms)                                   2.5 ms
Other Language (1 ms) -> (2 ms)                                    3    ms

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:

Application                  -> Storage (Database, File ,...)       TOTAL
Java (0.5 ms)              - >  (0.5 ms)                                 1 ms
Other Language (1 ms) -> (0.5 ms)                                  1.5 ms

then the improvement becomes more than 30 %.
If you reduced again (SSD example) the storage time to day 0.1 ms, then we have:

Application                  -> Storage (Database, File ,...)       TOTAL
Java (0.5 ms)              - >  (0.1 ms)                                 0.6 ms
Other Language (1 ms) -> (0.1 ms)                                  1.1 ms

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

Thanks for the questions about OSQA and Qato. The "enterprise" label is mostly due to the feature set. We have been super pleased with Django and found it incredibly easy to build things. If you'd like some more info or talk about the differences between the two and decisions we've made.

Jonathan Fisher replied on Thu, 2011/10/13 - 9:52pm

Java is #1 for everything besides startups and Facebook... not much of a story. Really what Java needs is a fresh Standard API. The language is good-enough, and syntax sugar doesn't buy you better or maintainable apps.

Jonathan Fisher replied on Thu, 2011/10/13 - 9:57pm in response to: Mitch Pronschinske

@Mitchell

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

Based on job ads, I'd say MS .NET development, such as it is, is the only competitor to Java. Java has lots of backing in IT and any company of any size.

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

The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1995.-Arthur van der Vant

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.