Christopher Keene is an entrepreneur, executive and educator. He is the VP of Cloud Computing Solutions at VMWare. Chris is a DZone MVB and is not an employee of DZone and has posted 38 posts at DZone. You can read more from them at their website. View Full User Profile

Java Has the Flu

05.14.2008
| 7390 views |
  • submit to reddit
I attended the JavaOne show this week, after a 4 year gap. What a difference - who knew Java could be so boring? On the other hand, this is what it feels like to go to a show for a technology that has lost half of its market share in the last 4 years (at least when measured by O'Reilly book sales - not a particularly reliable source but better than no source at all). If you don't like that source, check out Andi Gutman's recent post that Java is losing the battle for the modern web.



Let me be clear here - at WaveMaker, we have hitched our wagon to Java and hope very much that JavaOne is showing us the ghost of Java present, not the ghost of Java to come.

Trade shows in general have been eviscerated by the flood of technical information on the web. But even in the new "I'm only here for the Tchotchkes" world of conference attendees, this was a surprisingly desultory affair.

Aisle after aisle was populated almost solely by people in ugly sports shirts wearing a vacant gaze that we all reserve for particularly humiliating situations. In fact, the only booth which seemed to have any mojo was the - you guessed it - schwag booth from Sun.

This morning, I found out what was wrong. I got one of those delightful ALL CAPS emails from JavaOne informing me that we had all been the subject of a viral attack by the dreaded Norovirus. So that was it!

There is something seriously wrong, not just with JavaOne, but with Java. After 10 years, Java remains an extremely complex development environment with nothing even approaching an easy learning curve. Microsoft has gleefully filled this vacuum, driving a vast J2EE to .Net migration at the low end of the market that nobody in the Java world seems willing to acknowledge.

The Sun promise to put Java runtimes everywhere is meaningless if nobody wants to develop for those runtimes. Adobe and Microsoft are doing a far better job making their tools simple enough for mere mortals and focusing on the presentation layer.

The news at the show was that Sun's front end technology, JavaFX, was *still* not ready. The world needs Sun to stand behind one of the 200+ Ajax frameworks already out there, not create yet another one. While we're at it, why can't they just put more effort into an Ajax toolkit they have already "partnered" with, like Dojo?

Here is my prescription for curing the Java Flu:
  1. Fight for the low end: in modern warfare, death may come from above. In technology, death comes from below. Ten years from now, who will have more power over IT - web designers or core developers? If Microsoft and Adobe win the designers today, Java developers will be the Cobol developers of tomorrow.
  2. Make Java easier: something is wrong when very useful but also very complex code frameworks like Spring are considered the "easy" way to do Java development. Java needs to be easy enough for your mother to build her web-based phone list with it. I'm talking Hypercard/Filemaker/Access easy.
  3. Make Java prettier: just put a bullet in JavaFX and adopt something with momentum like Dojo or Ext. If you just can't stomach Javascript, then adopt GWT.
  4. Make Java fun: can't do this without doing the first three items. For an example of one attempt to make Java easy, check out the WaveMaker download.
Remember when people built cool web apps with Java? When was the last time you heard about a cool web app that wasn't written in Rails or PHP? OK, people still build lots of cool stuff in Java, but the love is gone and its just a day job now.
Published at DZone with permission of Chris Keene, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Lieven Doclo replied on Wed, 2008/05/14 - 2:00am

You're suggesting a language's ability to create web-based application is what makes or breaks a language? Hmm, interesting thought. You might be right that Java isn't the fastest solution or the most WYSIWYG solution out there, but on the enterprise level, I don't believe web development is supposed to be 'as easy, your grandmom is able to build it'. For that matter, I'd like to see my mom building her web-based phone list using PHP or Rails...

Stating losing the designer equals transforming Java to the new Cobol (been a while since that has been brought up again) is a bit of a stretch. Desiging the front-end is only a part of a system. Back-end systems, I believe, are equally important.

Your post confirms my fear I have had for a while now: people measure a language by it's ability to create webapps. Next month I'm attending SpringOne in Antwerp, I'll see whether this trend keeps moving on.

Jeroen Wenting replied on Wed, 2008/05/14 - 6:03am

Zuh Jav Iz Ded!

I guess it's time again for the weekly "Java is dead" post...

Steven Bell replied on Wed, 2008/05/14 - 9:05am

It disturbs me a bit that you continually equate JavaFX with JavaScript. The two are nothing alike and address very different spaces. You apparently have a very poor understanding (if any at all) of what JavaFX is. Furthermore you seem to only care about Java in front end web development. If you're looking for a competitor in this space it's not JavaScript, it would be Flash, Silverlight, or something similar.

This post seems a poorly veiled attempt to pimp your product. I personally have no problem with people promoting their products here on Javalobby, but doing so in a 'OMG Java iz DEAD... Unless you use my really 1337 toolz' turns me off to the point of not wanting to even bother downloading WaveMaker.

I will say my current work is all enterprise level web apps. The tools I use are JSF 1.2, Richfaces, Facelets, and Seam to deal with the front end html/Javascript creation and I really have no complaints.

Tony Sintes replied on Wed, 2008/05/14 - 10:01am

Ever since the change to dzone the quantity of the articles posted at Javalobby have increased but the quality has disappeared.  Honestly, the negative tone with statements such as "solely by people in ugly sports shirts wearing a vacant gaze" and the whole "Snake charmers are wonderful. " rant are really turning me off to this site.

I remember Rick's post after the switch over about how commenters had to be nice to one another. Too bad the "zone leaders" are not held to the same standard. 

Chris Keene replied on Wed, 2008/05/14 - 11:27am in response to: Lieven Doclo

Java originally gained traction as *the* language for web 1.0. As a Java enthusiast, I want to see Java be the language for Web 2.0 as well!

Remember when Java was the language behind the dot in dot com?

My point is simply that it is not somewhere cast in stone that the next generation of the web (called, with great lack of imagination, web 2.0) cannot be written in Java.

For the last 20 years, consumer side architecture has led enterprise architecture, from the PC, to client/server, to 3-tier and now rich client. The enterprise systems of tomorrow will be built using the same tools as the Web 2.0 apps of today.

You should measure a language's vitality by its ability to create apps people want to use. This was originally the reason that Java (for building Web 1.0 apps) won out over C++ (for building client/server apps).

My point is that Java has the potential to be the fastest and most WYSIWYG solution out there.Spring is an important open source solution for server productivity. Solutions like WaveMaker, Aptana and Tibco GI represent attempts to solve the WYWIWYG presentation layer productivity.

I even laid out my thoughts on how that could happen but it requires that you read to the *end* of the article before you post your indignant reply ;-)

JeffS replied on Wed, 2008/05/14 - 12:41pm in response to: Chris Keene

Let's look at these items one by one:

[quote=ckeene]

  1. Fight for the low end: in modern warfare, death may come from above. In technology, death comes from below. Ten years from now, who will have more power over IT - web designers or core developers? If Microsoft and Adobe win the designers today, Java developers will be the Cobol developers of tomorrow.

[/quote]

Isn't that what JavaFX, Groovy, Grails, Wicket, Swing Application Framework, NetBeans RCP, and Eclipse RCP are all about?  Add to all that, the massive improvements in LnF and Speed, and the forthcoming consumer JRE, I'd have to say that Java is getting much better on the low end.

[quote]

 2. Make Java easier: something is wrong when very useful but also very complex code frameworks like Spring are considered the "easy" way to do Java development. Java needs to be easy enough for your mother to build her web-based phone list with it. I'm talking Hypercard/Filemaker/Access easy.

[/quote] 

While Spring and the POJO model are certainly improvements over the EJB2.x model, I do agree with you that the Spring model is anything but easy.  But then again, the enterprise domain simply isn't that easy, regardless of tool choice.  RoR is only good for basic CRUD, greenfield web apps.  Even DHH himself says "fuck you" to anybody who wants other "enterprisey" capabilities.  Flex/Flash look great, and are easy to work with, but Flash is a huge CPU hog, and Flex has limitations.  

 But you can get stuff going easily with Java web apps.  Just use something like Grails or Wicket, or plain ol' JSPs.

[quote]

3. Make Java prettier: just put a bullet in JavaFX and adopt something with momentum like Dojo or Ext. If you just can't stomach Javascript, then adopt GWT.

[/quote]

But that is happening.  Just look at the Substance, Nimbus, and JGoodies Plastic XP LnFs.  And JavaFX can fully leverage those things.  And Java web frameworks all have Ajax integration, including Dojo, jQuery, Prototype, YUI, etc.

[quote]

4.  Make Java fun: can't do this without doing the first three items. For an example of one attempt to make Java easy, check out the WaveMaker download.

Remember when people built cool web apps with Java? When was the last time you heard about a cool web app that wasn't written in Rails or PHP? OK, people still build lots of cool stuff in Java, but the love is gone and its just a day job now.[/quote]

Well, I have fun with a lot of Java stuff.  While a lot of the JEE, Spring/Hiberate, and Java Web framework spaces can be a PITA (the problems they are solving are PITAs), there is a lot of cool, fun stuff in the Java world.  Netbeans is great, and fun to use.  Matisse kicks butt, JSF form designer is great, JavaFX is intriguing and shows potential, Groovy is fun, Grails is fun and easy, clean, component driven frameworks like Tapestry and Wicket bring joy to lot's of Java devs, and books like "Filthy Rich Clients" show how much fun (and cool) Swing development can be.

 Finally, even if Java is "just a day job", that's just fine.  It pays the bills.  It's still the number one language on Tiobe, it still returns the most matches in Dice, Monster, Hotjobs, CraigsList job searches.

Richard D. Jackson replied on Wed, 2008/05/14 - 6:06pm

The problem with using O'Reilly book sales as an indicator of popularity is an issue.

1) O'Reilly has allot of stale content in the java space and only a few of those books are being updated. It seems that the Java authors have moved to another publisher.

2) Most of O'Reilly's new books are on subjects other than Java. So there fresh content is selling better than there old content.  

So what your graph really shows us is that O'Reilly has not updated there content on java but has updated there content on C# in particular. I'm a member of Safari (O'Reilly's online book site) for most of that time the top five books have been Java related books. But this year that has changed. Up until about Feb of this year the top book was Java in a Nutshell which has not been updated in quite some time. Now the top book is a C# book that was just published. And in the top five list there are only 2 Java books both of which were published this year. For this year allone O'Reilly has only published a hand full of Java books (Last year was pretty bad for java as well) but in the same time frame they have published a ton of .Net related books.

 

Michael Urban replied on Wed, 2008/05/14 - 6:52pm

Well, as the saying goes, "There are three kinds of lies: lies, damned lies, and statistics." Suggesting Java is declining in popularity because book sales are down is just bad statistics. I suspect the explosion of available free documentation and knowledge about Java that is available on the Web has played a far larger role in the decline of Java book sales than any decrease in Java popularity has.

 Yes, Java has gotten a little "boring", as I have stated in the past. But as I have also stated in the past, this tends to happen to technologies that have become mature and stable. C is boring and so is C++. Java is now a stable and mature technology that is not evolving as rapidly as it did during its explosive youth when new features and new APIs were being constantly added. And in a way, that is probably a good thing. Java is a mature stable technology that is the workhorse driving billions and billions of dollars of business every day. It's not the exciting new kid on the block anymore that can't be relied upon for long term stability because it is changing faster than the weather like some of the newer "hip" technologies are.

 Maybe I just don't get as excited over this stuff as much as I used to, but give me "boring, stable, reliable, safe bet to build your infrastructure on" over "exciting, bleeding edge, constantly in flux, nothing is certain about the future" any day of the week.

Mario Grgic replied on Thu, 2008/05/15 - 8:08pm

Java development is complex? That's just silly. Java is one of the easiest language to learn and to program in. The development tools are great and mature.

Kids today.  You should all program in assembler for a year, so  you can appreciate how easy Java development is :D

 

Dieter Krachtus replied on Fri, 2008/05/16 - 4:26am

TGIF: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Mike Hurbert replied on Sun, 2008/05/18 - 7:25am

For 10 years, we have asked Sun to fix the following areas: desktop integration, startup, numerical performance, numerical programming, browser integration, and C/C++ integration.  Very little has happened, except for a lot of ideology and hot air coming out of Sun's marketing department.

We have voted with our feet, as have many other ex-Java developers.  We do most client development in Javascript, and most server development in Python and C++.   We use Java only if a customer insists or if we have to use Java legacy code (which is why I follow these threads at all).

Fernando Soares replied on Mon, 2008/05/19 - 1:36pm

I only programme for about 18 years. I hate low level languages. And yes Java is a PITA... I make a lot of money with Clipper in the old days, fun to make the job done in the enterprises. Than it comes the web... and well:

Html is just like old pre-press systems, something that die with PageMaker and Quark long, long time ago. That was my feeling when I make my first web page (desktop publishing introduce me to the computers...) and I don't change my opinion, even with css, freemarker and so on.

I was a alpha tester of Microsoft ASP because in that time it was the nicest thing that happens to the web applications. After a few years dealing with that kind of spaghetti code, I stop coding, the guys who I suppose to control sell me the PHP. The some but better, they say.

In the last years I have to code again. And I get crazy with the PHP thing. I am old guy, I know. I look around and the only thing that you can control at the level you want is Java and ... you can work in Linux. Developing in a operating system that you never knows if the problem is yours or the OS, its not my kind of fun.

In java you can do everything in the hard or in the easy way. Its up to you. Whats wrong with jsp pages? Today they are easier than PHP... Or better, use standards: xml/xslt. You can render your web site with a shell script in almost any OS in the earth.

But as I usually say, today the web is more a application than a media... And for that you have to deal with things with no fun at all, like databases, security, workflows, states... You know, enterprise, or better client/server applications. And for that you need something much more than just scripting languages.

When I first look to Gmail I thought that only Google can do that with javascript. Thousands of guys dealing with the javascript macumba! Than I know GWT and I laugh. Smart guys...

As usually the best tool depends on what you want to do and the $$$ you have.

And for more than simple web sites the discussion is only one: Java or .Net/C#

IMHO

 

 

 

 

 

Jeroen Wenting replied on Tue, 2008/05/27 - 12:43am

hmm, rather inconsistent rambling.

First calling ASP spaghetti code and next praising php (which is far far worse). Rather defeats your entire anti-Java rant as it shows your statements don't hold any ground.

Onur Ersen replied on Thu, 2008/05/29 - 8:38am

In my opinion people are still building cool web apps using Java.This is some kind of underestimation of such a strong language.

Sure,php is in vogue these days but there are firms,corporations using java for their business integrations.Php slowly developing for multilayer applications but Java has already done it and that does not make java a language to get bored or be like Cobol.

 The problem is I think (as you've mentioned) there are not much investments (as much as Php) over Java technology to play a key role in Web 2.0 market.

Thanks.

ONur.

Fernando Soares replied on Sat, 2008/06/14 - 3:35am in response to: Jeroen Wenting

You get me wrong. Sorry for my english. I dont like php. I compare it to ASP: spagetti code. I spend a few years as a CIO, and the people who works for me do the work in PHP.

When I begin to programm again, I replace all the PHP code (in the backend...) with Java. Why? Well, if you cant get a decent database connection pool with PHP, is all said.

And for the people who thinks that doing server side code with Java is only for rocket scientists, try a IDE like NetBeans and a few demos. In five minutes you have a REST CRUD database aplicattion, by example.

Yes the learning curve is higher with Java. But in the end you have a productivity that leaves all the scripting languages far, far behind.

 

Comment viewing options

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