The Day Java Lost the Battle

Posted on

java logo

When it comes to technology, one thing is for sure: there will always be battles, winners and losers. The programming world is no exception. Programming languages come and go, some of them persist and thrive while others become obsolete with time. Programmers are willing to defend their languages strongly, and sometimes unreasonably. Programming after all is not just about algorithms and calculations, it is a philosophy and programmers fiercely stand by their ideologies. There is an affective relation between the developer and the programming language, a mix of nostalgia, accomplishment, pride and gratitude. I love Java. It was the first programming language I learned almost seven years ago. It was a great gateway to the world of software making, and a language I still use nowadays. But what is Java after all? And was it able to withstand the test of time?

So what is Java anyway?

Java is one of the most famous and widely-used programming languages. Born in the mid-90s, the language has re-invented itself more than once, and was able to have a far-reaching impact on the software development scene. There was a time when Java was cool, forward-thinking, futuristic and mainstream. No one questioned the future of the platform; Java seemed to be here to stay. The language served as a great introduction to whoever wanted to get into programming. Developers shying away from the complexity of C/C++ found in Java a more accessible approach for their work. And certainly, the promise of “write once, run everywhere” lured many into the ecosystem. Big names embraced the technology, and Java was powering a vast array of products on various platforms.

Trouble in bytecode land

But it all began to crumble down. JME, the version of Java destined for mobile devices, is a thing of the past, a relic of a time when primitive mobile apps were en vogue. Java applets, the supposedly cool apps running directly in the browser, are long forgotten (or not, considering the latest zero-day Java vulnerabilities), plagued by security and reliability issues. On the desktop, Java is far from popular, with a limited number of swing-based apps that seem stuck in a different era. The server side is probably the last stronghold of Java, the place where the platform is still regarded as an attractive and viable option. But even there, Java has to compete with newer platforms and frameworks that promise greater productivity and appeal to newer generations of developers.

It seems as if the language itself is not updating fast enough. Every new version of Java is bringing enhancements to the runtime (garbage collection, memory footprint…), but the language is still lacking features that other languages take for granted nowadays. And even when such features are announced, they remain controversial and their implementation seems stalling. Depending on whom you ask, Java might not need these features after all, and it would be a much wiser decision to keep the Java syntax concise and elegant. After all, other JVM languages already have a lot of these features. But the overall impression is that Java is stuck in the past, and that the people behind it lack proper vision and management of the language features.

Bye bye Sun… Hello Oracle

Java has always been the property of Sun Microsystems which failed to properly monetize the platform. Enter Oracle, the separated-at-birth twin of Microsoft. The company relied heavily on the Java ecosystem, and saw in acquiring Sun, and consequently Java, a great way to control preserve this ecosystem. If Oracle is known for anything other than databases is its love for profit making. While that is totally legitimate, it does not necessarily ring well with developers. To be fair, Oracle are managing Java much better than Sun by focusing on projects like OpenJDK and JavaFX which could revitalize interest in Java. However, Oracle have also caused some possibly unrepairable damage by going after Android, the one platform that was keeping Java ‘hip’. By suing Google, Oracle has shaken the community’s faith in the openness of Java. The industry would be more reluctant to ‘fork’ Java, and those who tried where left in the dust, or the attic.

On the longer run, being run by a big firm might benefit Java, but the platform has lost so many battles that its future has become uncertain if not shaky. But one thing is certain, Java has lost the glimmer of its early days, and the newer generations of developers seem to have moved on. In this generation gap conflict, Java is fighting to keep whatever territory it can still claim, and the prospects don’t seem very positive. Java won’t be going away any time soon, but it is no longer the language of the hobbyist/hacker. On a more positive note, the Java language might be a has-been, but the JVM is alive and thriving. Interest in languages targeting the JVM is certainly increasing and that could pump some much-needed innovation and new blood into the ecosystem.


Tags: ,

  • An Android Developer

    Perhaps you have failed to noticed the Android Mobile platform, for which apps are almost exclusively written in Java.

    • Maroun Baydoun

      Certainly not. I did mention that Android is one of the things that are keeping Java relevant.

  • Oke Uwechue

    Interesting article. Thnx.
    Any predictions as to what language will replace Java?

    • Maroun Baydoun

      I am not sure one language can replace Java at the moment. And most certainly Java will not disappear.

      • Lou

        I think that actually Java is winning the larger battle. Android apps are growing in popularity. All servers are becoming more powerful so the enterprise app space is growing. What I think is shrinking is the desktop space. Where Java is strongest I see greater growth. HTML5 may be exciting but Smart Phones are replacing desktops. So it seems that Java is still worth learning.

    • floridaseo

      My bet is on Scala

      • Maroun Baydoun

        Yeah Scala seems very promising.

    • Dean

      My money is on Groovy. Love it!

    • Digital Liberty

      At this rate, JavaScript (for better or worse). That language is popping up everywhere.

    • Earl Harris Jr

      Grails and Ruby on Rails are in Java’s side view mirror. Haven’t seen Scala getting traction.

  • Adrian Linca

    JAVA is still a great programming language.
    Have you used annotations at full power, tell me another language that can do what JAVA does with annotations.
    I know that more actively developed programming languages like objective-c or others bring new cool stuff all the time so maybe that’s where JAVA lacks.
    Server enterprise apps and android bring a very good percent of pie to JAVA and I don’t see this dimming any time soon.

    • Maroun Baydoun

      I agree that Java annotations are a very powerful feature of the language. Concerning Android, it is true that is a major contributor to the popularity of Java these days.

    • Rigoberto P.

      C#’s analogous decorators seem to cover it mostly.

  • Maroun Baydoun

    @9287d4c0ca0d95e3f1b8d6d7b80b42c3:disqus Certainly not. I did mention that Android is one of the things that are keeping Java relevant.

  • Almejadelrio Riverclam

    Smalltalk was (is) better than Java as a concept, it was killed by IBM, still exists but java took the biggest place with all the open source servers, applications and frameworks developped by a huge army of open source code soldiers. Microsoft tried to “fork” java with C#, along with object php, but both can’t fight with the java community, specially when dealing with web apps. Java is not a great language, but will live longer than you can expect, because there is no real replacement.. or I missed something…

    • Maroun Baydoun

      I believe you have a point, but what about languages like Ruby, Python and JavaScript?

  • Peter Lawrey

    There is a common myth amongst technologists that better technology will always be the most successful or that you must keep improving or die. A counter example I use is the QWERTY keyboard. No one who uses it, does so because it is a) natural or easy to learn b) faster to use c) newer or cooler than the alternatives. Yet many developers who couldn’t imagine using anything other than a qwerty keyboard insist that Java must be dead for these reasons. I have looked at predictions that Java is dead from the year 1996 and found these predictions follow Java’s popularity and when there was a drop interest due to the long age of Java 1.4 and Java 6, there was also a drop in predictions that Java is dead. (When IMHO that would have been a good time to question such things) I have come to the conclusion that passionate calls that Java is dead is a good sign that Java is alive and well and annoying developers who would prefer people used a “better” language.

    • Maroun Baydoun

      I agree with you to a certain extent. This post came from my concern for Java and not to criticise the platform or the people behind it.

      • Peter Lawrey

        I think it’s harder to agree on what is Java’s biggest issues than it is to find issues with Java itself. ;) I don’t believe it’s technical superiority, or lack of it, has much to do with it’s success or will bring it’s end. Even Microsoft suggests you move away from Visual Basic but it is still more popular than many of the alternatives to Java suggested by some measures. You only have to look at talent shows and elections and wonder how these people got to be the most popular to know popularity isn’t a good measure of quality.

        • Maroun Baydoun

          True. But don’t you believe that Java has lost its shimmer when it comes to attracting new and fresh developers?

        • Maroun Baydoun

          Thank you for the mention in your blog post.

  • Jilles van Gurp

    You forgot about Google’s Android. The core of that platform is a the dalvik vm which runs a language that is for all practical purposes Java 1.5. That’s a pretty large installed base of products and a insanely large market for smart phone and tablet apps. Not bad for a 20 year old language initially designed for Applets (shudder) that is supposedly dying.

    I think Oracle has been somewhat effective in at least getting some releases out of the door (which I guess was progress). But I think they need to grow up and accelerate the agenda a bit if they want to stay relevant/credible. The existence of openjdk means that there is a possible future without them (as is happening with mariadb, jenkins, and libreoffice). I think JavaFX is pretty much failed technology, a niche product at best. I wish Oracle all the best convincing world + dog to abandon things like flash, html5, qt/qml, android, windows phone, and all those other competing technologies. I don’t think they ever had a strong case for this. Anyway, JavaFX is not and never was a major technology for end users. Most users have never heard of it and have never encountered it.

    Java as a language is fairly outdated but still going strong and about to get a major update. I use it and am well aware of its strengths (understated) and weaknesses (overstated). However, JVM based languages such as JRuby, scala, kotlin, clojure, jython, groovy add pretty much all of the advantages of some of the competing languages (e.g. ruby, python, go, erlang). The JVM is still setting the standard for what makes a good virtual machine. Using that, a nice language, and the many open source frameworks and components actually makes it pretty hard to beat. I use Jruby and Java together and there is something to say for either language. I think ruby is actually rather tedious as language and I always miss the simplicity of Java when trying to figure out which typo prevents my code from just working (seems to suck up a lot of my time with ruby) but that might be just personal preference.

    • Maroun Baydoun

      Thank you for your feedback. I agree that JavaFX is pretty much failed so far, but at least it is providing a viable alternative for people interested in developing Java desktop applications.

      Moving forward, the JVM languages will play a much bigger role in the Java ecosystem and will be a major attraction to the ‘cool’ developers.

  • floridaseo

    This post is quite sensationalist .. The title is stating the day Java ‘lost’ and in closing you state, “Java won’t be going away any time soon” … Moreover, Java is not simply aiming to be ‘popular amongst noobs’ … It’s the most widely adopted platform for enterprise application development and the de-facto standard for the banking and finance industry. I’ve been programming for about 7 years too and I’ve used a plethora of languages and technologies such as Asp, ColdFusion, PHP, Python and personally I find java to be the most well-rounded, supported and secure platform.

    However, if you want to make a realistic scientifically-backed comparison against other languages I’d be interested in seeing how they fare against Java.

    My 2 cents.

    • Maroun Baydoun

      Thank you for the feedback!

      This blog post is far from being a scientific comparaison of Java vs other languages. Being a Java fan myself, I cannot be totally objective in my opinions.

      It is true that the title and the conclusion seem contradictory, but Java did lose more than battles and that doesn’t mean the platform will go away anytime soon. It is true that Java is the de-facto platform for enterprise development, but isn’t there where most programming languages/platforms go to retire?

  • Pingback: Is Java the new rock n’ roll?

  • Wissem Belguidoum

    Thank you, good analysis. I think you forgot to speak about the technos that bring java to the browser-side of web applications, like Google Web Toolkit and Vaadin. Which is another field of battle where java is doing very well.

    • Maroun Baydoun

      Thank you for nothing that. Those are nice projects/initiatives, but do you see them as sustainable projects for the future?

  • Thomas J. Clifford

    You have not provided any data to support your assertion that java is being used less.
    You say languages ‘come and go’, but there are undoubtedly MANY shops out there that still use
    smalltalk, COBOL, PL1, and the like. Without research and data the relative use of languages in firms
    is only guesswork.

    I think the relative use of one language or another is really beside the point of using languages in the first
    place: to allow software developers to be more productive and accomplish more for customers.
    Java has some good features to it relative to other languages. It has a LARGE community of users and
    frameworks built for it, making developers lives a bit easier.

    To say that other languages have ‘won’ and that some have ‘lost’ implies that you believe we all should
    switch to the ‘winning’ language, a prohibitive cost for many firms. And even more so when the number
    of ‘better’ languages changes every few years.

    The economics of Information Technology involve many more considerations other than the
    language used to develop software, and whether a newer language has incrementally better
    economics of development.

    The installed base of software holds much more sway over management decisions, and properly so.

  • Danie

    good stuff i liked it