Friday, November 21, 2008

Java Is Dead

These days, I have the feeling that Java is dead. Even if, or maybe because I have used Java so much in the past 10 years, I have this feeling.

In 1998 Java was revolutionary. It was a very simple to learn object oriented language with modern concepts and familiar syntax. Furthermore the standard library had neat features like internet networking and it could be integrated in the browser. All this at a time when the internet just started to be popular.

Today we have very few evolutions, a huge library (with lots of useful and useless stuff in). Some good stuff has been added like concurrent utils, but not many things changed overall. Open source languages like Python are much more dynamic in their library maintenance. The language does not seem to provide anything interesting when compared to the alternatives, like .NET or even with the "scripting languages" like Python. In the browser it has failed where Flash has succeeded.

Lots of things are too complicated to build in Java when compared to other languages. I feel Swing, database access (JDBC), JSP could be vastly improved to help developer productivity. Why is ORM less important in the Microsoft world? because the standard database layer of Microsoft is not as crappy as JDBC. Why don't they have tons of web frameworks? because ASP.NET is decent, does more than JSP and does not get too much in your way at the same time. Microsoft finds the right balance between library complexity, power and developer friendlyness.

Browser applications are less popular, and desktop apps integrated to a "3-tier" architecture more popular. Java on the desktop is really weak. Give me .NET or QT anytime. There are still no big Java desktop apps on everyday people desktops except Eclipse (IBM has really done an impressive job with it). It is almost 2009 and I still have no Java app except the dev environment for my Java programmer job on my Linux desktop. I know that in my everyday job, I would be more productive with a .NET environment, just because Java sucks so much on the client side. Borland Delphi was more productive 10 years ago!

Java on the Mobile is a failure. Almost nobody uses it and is plagged with compatibility problems. However there is hope here, with Android from Google.

The only advantage of Java compared to .NET is that it is free. You have Tomcat, Glassfish for free. You can deploy on Linux. If you are a poor developer that's quite an advantage. But most company pay for Java, they want the "security" of an IBM and they deploy on Windows machines. It does not make sense, those companies should buy the better Microsoft stack instead of IBM. And I am sure more and more will. Vista might be the big Microsoft failure, I am sure it will be fixed with Windows 7, and Microsoft dev tools are just getting better and better.

Scala, Groovy, JRuby don't fix anything, they are just toy programming languages and are based on the JVM, on the Java libraries. In the lot, Scala does better because it has the concept of library, and they do try to build more interesting libraries than Sun. But it is too complex to be ever popular.

All the open source libraries in Java are fine but who needs to choose between 20 web frameworks, 5 loggers, etc.. There are very few really useful ones: hibernate, lucene, jmeter, junit.

If Java has no logical place in most companies, if it does not provide anything more than the alternatives, and is very weak on the desktop, what's left to Java? the code base and the developers? That's about it. It sounds a lot like Cobol in the early 90s. Java is dead.

16 comments :

  1. Are you sure ?

    Believe me I came to Java from a VB6 background a couple of years ago and I wish, oh how I wish I had discovered Java along long time ago.

    Dont give up on Java now my friend it has a long way to go yet I am sure. I for one wouldnt use anything else now.

    ReplyDelete
  2. Java/J2EE isn't dead yet but it might become a niche language in the future like C/C++ (in the embedded space) for developing flexible and optimal big business applications. It appears to be overkill for smaller enterprise applications for which .Net and LAMP/RoR seem more appropriate as of now.

    I don't think Java/J2ME is a failure in the mobile space at all. I don't see any other format in which applications are prevalent across brands, models and operating environments. Of course it can be argued that there's not much to earn in mobile apps since most of them are free and they in turn drive down the profit margin for those apps that are actually retailed! But then that's true for any platform for mobile apps, not just Java.

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Hi,

    I have developed my application in Oracle Forms, PowerBuilder and VB.

    Java is much better then vb. I liked datawindow object in PB, I have not found something similar in java. Oracle forms are useful only for "ugly" applications...

    Regards,
    Javanus blog
    www.javanus.com/blog

    ReplyDelete
  5. To Nacho Coloma: GXP is fine but is not Java specific. And my point was even if you do have some ok web frameworks (Stripes, Struts2, Tapestry5), they are less important today than they were a few years ago and are nothing revolutionary compared to ASP.NET.

    To Neil and Javanus: VB6 was not very good. And at that time Borland was reigning in the MS world. Today lots has changed, .NET is very good.

    ReplyDelete
  6. Have a look at google trends for the languages you mentioned.
    http://www.google.com/trends?q=java%2CScala%2C+Groovy%2C+JRuby
    You can see Java is in decline, possibly as there is more support in your IDEs. But the other language, while more exciting, are not clearly going to dominate.

    ReplyDelete
  7. I am not a Java programmer at all and even I recognize this post and most of the comments as uninformed garbage.

    Java become a niche language like C? Java and C make up the top two most used language!

    Google trends shows Java declining against Ruby, et al,? Don't you know how to read charts?!

    This post is beyond dumb.

    ReplyDelete
  8. Java is dead? You forget in the big java applications SAP-stuff for example. This alone will help people for Java jobs a long time.

    Also, quality of java desktop applications is often crapy, but sometimes great. Try TVBrowser :)

    And finally, to think java is dying is as limited as telling this for C++. Or is KDE a dead project? What language is used to develop your favorite browser?

    ReplyDelete
  9. Lots of big companies like, IBM, Oracle etc. have heavy investments in Java. IBM and several other companies are pushing java to Real-Time world and Java gaining importance in Real-Time domain together with linux rt. In my country Java is used in most of the e-government and military projects. And it's usage is still increasing.

    ReplyDelete
  10. Don't worry. Java is not dead. It is still most popular programming language.
    I believe that C++ & .NET will die before Java.

    ReplyDelete
  11. BTW, C++ won't die. The computer/console gaming industry which is as big as the movie industry in revenue (maybe 2 years ago i heard) will never ever abandon directx (yes windows controls a lot of gaming. there's a reason why it's called wintendo by linux fanboys) unless there's some gigantic natural/unnatural global catastrophe or holocaust that wipes out more than half of the world's population or something.you can even use c/c++ from php inline etc.
    c/c++ dying before Java. HA.

    ReplyDelete
  12. HAHA SUN was bought out. They are a failure of a company. Full of hype and bloated up shitware. GOOD BYE GOOD RIDDANCE. The debate is OVER.

    ReplyDelete
  13. Reuters News Nov 28 2007

    Popularity of .NET is Grinding Java's Market Share, Finds Info-Tech Research Group

    "Info-Tech's research identified that almost half (49 per cent) of allenterprises focus primarily on .NET with an additional 12 per cent focusedexclusively on .NET. That is in comparison to only 20 per cent of enterprisesthat focus primarily on Java with a mere additional 3 per cent thatstandardize solely on it."


    Dead as COBOL.

    ReplyDelete
  14. "Java Will Die" should be interpreted int he sense that its no longer the "hot/trendy" technology. developers will continue finding java related jobs, as there are many COBOL job posting these days.
    but remember, Microsoft COM, CORBA, they are all, well almost on life support, Java is headed toward the same path.

    ReplyDelete
  15. Compare .NET (C#) with Java, php....

    In practice you have to program on one platform (Microsoft) with C#. But if wou want more freedom and flexiblity to support Linux, Unix, apple...hell I schoose java...

    ReplyDelete
  16. Leeroy JenkinsMay 14, 2011 7:17 PM

    Java is only dead to those who gave up on it and/or are ignorant of reality.

    ReplyDelete