Some Say Rumors of Javas Demise Have Been Exaggerated
- Business requirements have changed. The pace of change has increased.
- Development authoring is limited to programming languages. Even though the Java platform supports additional programming languages such as Groovy and JRuby, the underlying platform limits innovation to the traditional services provided by Java. You can invent as many new programming languages as you want, but they must all be implementable in the underlying platform.
- Java bungled the presentation layer. Swing is a nightmare, and JavaFX is a failure. JSF was designed for pre-Ajax user interfaces even though some implementations such as ICEfaces incorporate Ajax. There is a steady stream of new UI approaches reflecting Java's lack of leadership in the presentation layer.
- Java frameworks prove complexity. Hibernate, Spring, Struts and other frameworks reveal Javas deficiencies rather than its strengths. A future platform shouldn't need a cacophony of frameworks just to do the basics.
- Java is based on C++. Is this really the best way to develop enterprise business applications?
- Javas new boss is the same as the old boss. Oracles reign is unlikely to transform Java. Oracles recent Java announcements were a disappointment. They are focused on more features, more performance and more partnerships with other vendors. So far, it appears that Oracle is continuing with Suns same failed Java policies.
- Java has never been the only game in town. C# is not the alternative. It is little more than Java Microsoft style. But, there are new developer tools such as Microsoft Lightswitch and WaveMaker, and traditional but updated 4GL tools such as Compuware Uniface and Progress OpenEdge. And dont forget about business rules platforms, BPM and event processing platforms that enable faster change offers by enterprise software vendors such as IBM, Progress, TIBCO and Software AG.
Meanwhile, a RedMonk ranking of programming languages from last week shows Java as the top programming language according to their methods of calculating. In a Feb. 8 post, RedMonks OGrady said:
As recently as a year ago, Java was widely regarded as a language with a limited future. Between the increased competition from dynamic languages and JVM-based Java alternatives, while the JVM had a clearly projectable future, even conservative, enterprise buyer oriented analyststhe constituency most predisposed to defend Javawere writing its obituary. As we argued at FOSDEM last February, however, these conclusions were premature according to our data. One year in, and the data continues to validate that assertion. Apart from being the second-highest growth language on GitHub next to CoffeeScript, Javaalready the language with the second-most associated tags on Stack Overflowoutpaced the median tag volume growth rate of 23 percent. This growth is supported elsewhere; on LinkedIn, the Java user group grew members faster than every other tracked programming language excepting C# and Java. This chart, for example, depicts the percentage of LinkedIn user group growth for Java- and JVM-based alternatives since November of 2011.Still, there are obviously times when a development team needs to introduce a new language into their environment. Jay Fields, a software developer at DRW Trading, offers advice. Fields said introducing a new language is likely a multi-year affair for any moderately sized organization. He said he had to take on several roles and to become an expert and other things to alleviate his teammates concerns. Said Fields: I eased my teammates adoption fears by making the following commitments.
- If you want to work on the code I'll work with you (if you want me to work with you).
- If you don't want to work on the code I'll fix anything that's broken.
- If the initial pain of working with a new language becomes unbearable to you, I'll rewrite everything in Java on my own time.