The Java software platform is now more diverse in terms of innovations and what is the next best thing.
I just had brief overview view of the Ceylon JVM programming language. In my own view, this represents more evidence of a sea-change of thinking about Java the programming language.
Figurehead and Leadership
James Gosling was the long-term figurehead for the Java programming language and also the JVM, since 1995. His influence was felt for millions of Java engineers out there, who knew how famous he was and still is, what he did. At JavaOne conferences he was a superhero for many developers.
In the last years of Sun Microsystem’s existence, his influence waned as that company went through financial difficulties. Shortly after Oracle acquired Sun Microsystems in early 2010, Gosling left. He has now reappeared at Google in an employee in as-yet unknown role.
In short, the global Java community lost the influence of a key leader as in the programming language. In fact, Gosling, has gone on record, at this year’s Server Side Symposium Journal to reportedly have said that he no longer cared anymore about Java the programming language. [Gosling said what he really cared about was the Java Virtual Machine]
Confidence in Java
On the one hand this can interpreted that Java is no longer relevant. The programming language is relevant, because they are so many customers who are running applications in it today. On the other hand those customers who are running application on systems are no longer dependent on a figurehead.
As a side note, Sun Microsystems always liked to market the statistics: there are billions of devices, mobile feature phones, that run Java, as in Java ME.
The return on investment on Java has been taken and used up. When enterprise first invested into the platform around the turn of the century, having a global figure head, and a team of dedicated people around to help market the Java platform was the next best thing. Businesses understood. They got it. With the Internet generation, the needed a solution that would allow them to write easily server side / enterprise-class applications on commodity hardware. Java programming language applications running on a JVM that abstracted away malloc() and free() and the vendor’s operating system was that solution.
Now in 2011, this ambition has been in achieved, that barn door has been blown off and the horses bolted. Businesses have a great Java EE (or like) applications running now on Java enterprise servers. The money has been made and now what happens next?
Whilst we were all enjoying the rise,rise and rise of Java from the client-side to the server-side in ubiquitous fashions, we were making good business and money. The majority of us, where happy to accept the lack of innovation in the Java programming language, we accepted the ideas of best practices, and even the mishap of J2EE design patterns.
Some developers were not so confidence in the evolution of Java. That anger or frustration or irritation or curiosity began to appear in open source innovations, such Gavin King’s Hibernate and Rod Johnson, general unhappiness with EJB 1.1, so he invented the Spring Framework from the ideas of dependency injection / inversion of control.
Others like Martin Odersky, though instead of making Java better, rather that they would make a better Java. The Switzerland professor at EPFL came up with a scalable language., called Scala.
James Strachan wanted a dynamically typed version of Java, instead of a statically typed language. He created Groovy the programming language.
Charles Nutter already found an external platform like Ruby and thought it would great to port it the JVM. So he got together with Thomas Enebo and created JRuby.
The innovation was a deeper level in to building and designing, or adapting a programming language to supersede the current implementation of Java the programming language.
In a nutshell, I do not think we be worrying about proposals for programming languages appearing on the JVM. Like Ceylon appearing out of the blue, a few days ago, I believe it is all good. With Ceylon specifically, there is no point getting upset, until you see the product and have a play with it yourself. Individually, that is how we all learn any new technology. It is certainly the way I learnt to program with Groovy, JavaFX Script and Scala. One cannot just determine a proper and contrite conclusion on just hearsay or back up an opinion on a someone else’s whim.
There is a sense that with Java the programming language it is not really changing syntactically or improving since 2006, there has been a open ground for other alternative JVM language to enter the mainstream. Developers are now living a diverse dream of languages if they are inclined to do so. In other words, what is your motivation to learn? This is the time to do, because it has never been so colourful and rich.
My own motivation is to get into functional programming, whilst not giving up the object oriented development that I spent over a decade achieving. In 1997 I wanted to become a C++ Guru, because I thought that that was the way forward. I had drank the coffee and tried the Red Bull and vodka. I was going to be the Standard Template Library king and be a generic programming wizard. Of course, my world, it changed. In 1998, I attended a Java programming course and learnt something completely different. During the course, I had decided that there would be no more malloc and free if I could help it, that garbage collection was here, I need required a nascent collection library to write software and a byte-code executor, a virtual machine, portability, networkability and security. Great! Java was the future. I knew absolutely where my programming destiny was going into the next millennium.
By 2010, I already knew that my love affair with Java programming language was diluted. I still have a great respect for Java the programming language, the enterprise side, and I accepted many of the warts. However I have expanded to other possibilities beyond Java on the JVM.
For all of our continual learning, change is normally a good think. It enhances our professional competence, re-energises our brains. It prevents us from falling in to the trap of the status quo.
There is one other factor that is needs to be address in pushing the boundaries. The long wait for Java the programming language to change fundamentally, have allowed several providers to attempt to challenge Java. The success of Java was its own ability to be attractive, an instant-win, and emotional future value.
Most of the alternative JVM languages, which I have encountered, have been created through academic interest. Ceylon is perhaps one proper example, of commercial business, RedHat, attempting to go for the juggler with a language supported by a business. JavaFX Script was another example, of course, created by Sun Microsystems, 2008.
Watching the massive investment of technical folk and engineer into JavaFX Script 1.x in the years 2007 to 2010 gave a clue to how much of barrier to entry writing a popular and adopted language really it is. In short, as Bruce Tate also wrote in his book, Beyond Java, any new language needs an active community. There are no guarantees from a language design that community will follow and then adopt it without an X factor appeal. Such a language created by a commercial entity needs to have certain guarantees and essential wins. In other words, throwing the code simply over face and slapping a badge of proxy open source is no way near enough to a mark of quality and success.
It takes a long time to build an active community. In terms of Java the platform’s case, including the programming language, it has take on all the time from 1995 to now, which makes me doubtful that a new language can achieve the same success in a much shorter span without political manipulation.
This has not been lost on those who might have a political agenda. Whatever we do, we must aware of that business agenda. We must ask why they are introducing this technology? What do they really want to a achieve? What is the future value-add? Is this new language going to provide genuine benefits? Or we can ask that could elicit negative results. What are they afraid of? What are they attempting to protect? Is there a smell of vendor-lock-in or a walled garden?
In this regards, James Gosling, was massive advocate for the Java programming language and therefore now that he longer cares about Java the language, he will be missed by millions, directly and indirectly. That is a shame. It will be up to graceful leaders in the other language communities to lend a hand and be also, sometimes, watchful.
Thanks for reading and listening
The number of Java developers according of Evans Data Corp from 7 May 2010.