I've been a zone leader with DZone since 2008, and I'm crazy about community. Every day I get to work with the best that JavaScript, HTML5, Android and iOS has to offer, creating apps that truly make at difference, as principal front-end architect at Avego. James is a DZone Zone Leader and has posted 639 posts at DZone. You can read more from them at their website. View Full User Profile

The Continuing Relevance of Java

10.14.2009
| 8913 views |
  • submit to reddit

Over the past few weeks there have been a number of posts on DZone debating whether Java is dead or not - it's as if this becomes a seasonal debate. I was quite pleased to see the latest results from the TIOBE Programming Community Index, which gives some credible metrics to those of you who tend to believe that Java is far from dead.

Just as it was this time last year, Java remains on top with over 19% while C remains in second place about 2.5% behind. An interesting trend that I noticed here was that the amount that Java slipped since 2008 is the amount that C has gained. I suppose it's no surprise that both these languages are at the top of the list - they're fundamental to a lot of development over the past 10 years.

I'm not surprised to see Java continuing to do so well on this list, and here I will outline my reasons for it's prominence in the index. 

The Virtual Machine
With the possibility to run other languages on top of the JVM itself, developers get the best of both worlds -  Scripting, and plain old Java. This ensures that the Java platform continues to have a future in the changing development landscape, with support for popular scripting languages such as JRuby, Jython, Groovy and Scala.
    
Community
One of the things that has always struck me abotu Java is the helpfulness and sheer size of it's developer community. It's the same for a lot of other languages of course, but it's comforting that when you hit a problem you can just do a search on Google and you'll find the answer to your problems.

A Rich History
Java appeared on the software development scene at the perfect time, and from there it gained a continued momentum. Even though these days there's a shift in focus to other languages and DSLs, the rich history of Java, from Swing to JavaEE to JavaME means that it will always have it's place. There is a huge amount of libraries, frameworks and utilities that mean development is sometimes as easy as putting the pieces together. And because there is so much experience with Java, developers have the choice of extemely useful IDEs such as Netbeans, Eclipse and IntelliJ. The investment that companies and the community at large have made into Java puts it ahead of other language options.

Take all these factors into account and it's no surprise that companies and developers rely so much on Java, and why this isn't likely to change anytime soon.

Tags:

Comments

Andrew McVeigh replied on Wed, 2009/10/14 - 6:35am

TIOBE is heavily flawed, it's just a poor search metric. having said that, according to this metric Java has fallen 1.3% in sept, and 2.23% in october 2009. that's not good.

Erik Post replied on Wed, 2009/10/14 - 6:41am

Good points, though I don't think anyone's seriously contesting java's current relevance, or that of the JVM. On the oher hand, I think most of us would agree that Java is falling behind on the language front, compared to C# for example. Pointing at the figures does not change this fact, just ask any COBOL programmer. Furthermore, things like Ruby on Rails don't exactly warrant the lack of innovation in Java-the-language either, if you ask me.

James Sugrue replied on Wed, 2009/10/14 - 6:48am in response to: Andrew McVeigh

That's a good point Andrew - something I should have covered really. Not a good trend. Interesting that PHP is making it's way up the charts though. I guess when you need something done quick and dirty, PHP is the answer.

James Sugrue replied on Wed, 2009/10/14 - 6:50am in response to: Erik Post

Thanks for the comment. I might be the only one here who thinks so, but I'm not sure if Java is really falling behind on the language front. I've yet to see a problem that I couldn't solve with Java as it is, and with the libraries available. I'm definitely missing the examples and cases here that highlight what people need that Java doesn't have - and would appreciate it if anyone could give examples.

 

Simon Martinelli replied on Wed, 2009/10/14 - 7:10am

I agree with James. Why not keeping Java as it is, because like James already mentioned, the common business cases can be solved with Java. Also stabilty is a good thing in enterprise developement. And Java may be the Cobol of this area.

Ricky Clarkson replied on Wed, 2009/10/14 - 7:13am

What makes you think Scala is a scripting language?

Java the language is dead, the VM continues to innovate.  What reason is there to start a new project in Java?

Chris Kent replied on Wed, 2009/10/14 - 8:24am in response to: James Sugrue

It's not that Java can't solve problems, it's that other languages can solve them more easily, with less code or more elegantly.  After all, you could probably solve most problems with COBOL too.   I solve problems with Java every day but I could solve them with much less boilerplate if I were using Scala and had closures, a more powerful type system.  Or with metaprogramming if I were using Ruby.  Or macros if I were using Clojure.  And I'm sure there are equally compelling arguments for Groovy, Python and probably C# too.

I think Paul Graham's Blub Paradox explains why so many Java progammers don't see the need for language changes.

http://www.paulgraham.com/avg.html

Stability in a programming language is a good thing, particularly when it's so widely used.  But too much stability leads to stagnation and unfortunately I think that's where Java is heading because of Sun's lack of courage and design-by-committee approach.

Andrew Arrigoni replied on Wed, 2009/10/14 - 8:30am in response to: Ricky Clarkson

@Ricky Clarkson

 A large, existing developer base. Sure, Java doesn't have a lot of the new syntactical sugar that Groovy does and it doesn't have the programming paradigm that Scala does. Yet, when management looks at the eco-system, they will see lots and lots of Java developers and only so many Scala developers. 

 Of course, myself, I find myself trying to move towards Groovy as the fun factor of Closures has gripped me tightly. :)

Kevin Daly replied on Wed, 2009/10/14 - 8:51am

People seem to forget that Java is a platform as much as it is a language. I think that the ecosystem around the JVM is fine, Java / Scala / Groovy / JRuby etc etc. The Java relevance question is somewhat silly, as well as all the people crying that "Java is falling behind C#".

I think that the solution to all this angst is to leave the Java programming language mostly alone and those that want the productivity of the newer features can use Groovy or Scala. With Netbeans, you can mix and match Groovy and Java with complete transparancy, so use Groovy when you want all of the newer language features.

Shaw Gar replied on Wed, 2009/10/14 - 10:30am

Instead of questioning the relevance of Java, it would be more useful to question its relevance based on the problem domain.

Java is very popular in products industry. I don't mean just the products we see built with in Java ecosystem. Let's take the example of data warehouse. I have seen few products built up on Java, because of its strengths such as standard Data Access technology, stable JVM, and can run on a any platform. I have seen UI built using both Swing as well as Eclipse.

If we take large applications that typically have to interact with disparate data sources, then Java is probably the only sensible choice you can make today.

However, if we reach the area of data driven web application, that is where Java begins to loose the advantages. You need speed, and quick solution with changing requirements. Frameworks like Spring and Hibernate have reduced that pain, but still it's way more complicated than what I can build with .NET.

In the realm of day to day web applications, tools that are not built with an aim of say 5 + years life span, scenario's that don't necessarily require considerations of enterprise integration etc, that's where Java starts looking increasingly irrelevant.

I think Java will continue to be language of choice in product, enterprise needs and steadily loose out in typical web application segments.

One must note that Stability, performance come at the cost of something. In this case we are paying for lack of features in the language. But, still Java solves a lot of other problems in the problem domain it is most sought compared to any other competing implementations.

JeffS replied on Wed, 2009/10/14 - 11:20am

"Java the language is dead"

 hmmm ....

 When I do job searches on Dice, Monster, Indeed, and the like, I see endless listings of "Java", and almost zero on Scala, Groovy, JRuby, etc.

 Sorry, but the proof is in the pudding.

The people who say "Java (the language) is dead" are those that have Closures/lamdas/functional/delegates/dynamic typing ... envy.  These people think they need those things, otherwise they can't get their work done.  While those things are nice, they're not the be all to end all.  I personally like those things in C#, but in practice, not many .Net devs seem to fully use things like lamdas or delegates or Linq.  Anyway, you can't under estimate the value of stability, extensibility, and maintainability, that Java's relatively conservative nature brings about.  The real world proves this over and over again.  

Edgar Sánchez replied on Wed, 2009/10/14 - 11:47am in response to: James Sugrue

Hi James, one element that is becoming a tool of the trade is fluent programming with (lambda) functions, I use it day to to day with LINQ in C# and would come back to imperative collection manipulation only reluctantly. The increasing use of Scala, F#, et al. for commercial projects suggests that functional constructs are not only syntactic sugar or academic delights but real semantic advantages in terms of expressiveness and readability, IMHO Java the language should acquire these semantics/syntax.

John J. Franey replied on Wed, 2009/10/14 - 12:11pm

The matter of debate isn't whether java is dead or relevant.  Under debate is the meaning of 'dead' and 'relevant' as they might apply to a programming language.  I see above several distinct interpretations of 'dead' and 'relevant'.  How foolish it is for programmers, developers and architects to opinionate using such ambiguous terms.  Aren't we usually much more precise?  Even my comment is a time-waster.

 

 

 

Guido Amabili replied on Wed, 2009/10/14 - 12:27pm in response to: Ricky Clarkson

Why not use java and use what instead ?

I like the tools I can use to write java code (NetBeans, the best IDE ever made)

Guido

Shaw Gar replied on Wed, 2009/10/14 - 12:34pm in response to: Guido Amabili

netbeans, the best ever made? It's good for sure, but best ever? That's fanboyism for sure...

Guido Amabili replied on Wed, 2009/10/14 - 1:29pm in response to: Shaw Gar

C'mon, that's not fanboyism, it's simply called truth ;-)

Guido

 

Mark Haniford replied on Wed, 2009/10/14 - 3:41pm

Notepad is better than Netbeans.

Alexander Shirkov replied on Thu, 2009/10/15 - 2:34am in response to: Mark Haniford

Good luck in refactoring with notepad (; Of course, it's "oldschool", but counterproductive.

BTW Java is not dead - that's fact. Go and make job search and you'll see, that it's very fresh and shiny. Sun already mentioned, why they don't want to introduce closures and all these dynamic bells&whistles. I like groovy, but it's not for realtime applications. Performance of most dynamic languages is very poor. Java is not only web - there's very thick layer of middleware applications, which never sees light of browser. Don't transfer your wishes to reality. Long live Java!

Shaw Gar replied on Thu, 2009/10/15 - 4:48am in response to: Mark Haniford

Oh yes, Notepad absolutely rocks. I get code assist, excellent refactoring, auto generation of getters and setters, and displays very useful error messages when I break java syntax. Notespad absolutely rocks, and Oh the Swing GUI builder in Notepad is extradinory, and the inbuilt application server that comes with Notespad, where I can deploy Java EE application runs very stable too.. and what a surprise it's there on every user's notepad!!! empowering them to be great java developers of tomorrow!!!!!!

Jeroen Wenting replied on Thu, 2009/10/15 - 6:12am

People have been screaming that "Java is dead" for longer than Java has existed.
I'veen using Java professionally since 1997 and even before that there were consistent rumbles that "Java is dead" in trade press and on bulletin boards and websites. Usually the intigators are fans of some other language taking a hit from Java and wanting to undermine its acceptance, or (ever more) people who want their favourite feature from some other language included in Java "to save it" (especially true since Sun has shown a high level of willingness to do such things over the last several years).
In my experience Java is far from that. It may not be growing much in acceptance, but given its position as the market leader and almost automatic tool of choice for enterprise applications that's hardly surprising, there's very little it can grow because it already is everywhere that counts. In fact, what is surprising is that even over a decade (14 years now almost) after its launch nothing has managed to seriously challenge it. PHP has been mentioned but is hardly a contender. Its main market is as a competitor to Perl and VB/ASP for small to medium sized applications. Ruby and Python are nice for rapid scripting, but again can't replace a real programming environment and are more useful for writing launchers and small command line tools. Scala is a fringe player for some fanatical Java haters stuck in a Java environmnent and those whose interest is purely academic. Nothing else is even worth mentioning.

Guido Amabili replied on Thu, 2009/10/15 - 8:44am in response to: Shaw Gar

Totally agree, but I prefer the Mac version of Notepad.

Back to the topic of the post...

Guuido

Mark Haniford replied on Thu, 2009/10/15 - 11:03am in response to: Jeroen Wenting

PHP has been mentioned but is hardly a contender. Its main market is as a competitor to Perl and VB/ASP for small to medium sized applications

 

Unfortunately, it's a contender and dominating for everything except that top 1% large-scale enterprise apps.

Armin Ehrenreich replied on Thu, 2009/10/15 - 11:27am

If those data from TIOBE show anything, than that usage of PHP is increasing. Not quite a functional language with advanced features! So maybe it is not about having as many features from other languages as possible but about being a clear and simple language with code that is easy to maintain by many people. And maybe Java did itself no favor by integrating this overly complex generic specification. I like the approach of the Fan language to generics much more. So no, Java does not need any major new programming paradigms to survive, it is the opposite way. And the only way to kill Java in the foreseeable future is to make it more complex by overloading it with features only a small minority has any usage for like the BGGA specification. (This group of people will use Scala at the end anyway).

Mark Haniford replied on Fri, 2009/10/16 - 8:17pm

Not quite a functional language with advanced features! So maybe it is not about having as many features from other languages as possible but about being a clear and simple language with code that is easy to maintain by many people.

 PHP is far from being clear.  But being dynamic sets it apart from Java in that (1) it's a bit more simple when the web crowd doesn't have to think about types as much and (2) you can do dynamic things like create dynamic function calls.

 

Rainer Eschen replied on Sat, 2009/10/17 - 1:12am

The success of PHP is based on the lack of Java support by the ISPs over the last decade. Even today a simple Tomcat environment is not the rule.

Nevertheless, PHP 5 and above show that they can compete with Java. Typo3, Magento, WordPress, etc. show that the 80% rule already works. The Typo3 guys are working on a framework that is comparable to Spring DI. So, it is a matter of time when we have the 90% rule.

If you have a look at the change in enterprise development with Spring in the center, so that a simple Tomcat can still rock, we can expect PHP and Java will converge. Java gets simpler and let us produce faster results, PHP gets more rock-solid. Both already have in common that the quality of architecture and design are the most important part for the result.

A lot of PHP projects are still fast hacks, but this does not prove that PHP is worser than Java. I wouldn't choose Java in every case these days. Java still needs a longtime project investment to be worth the efforts.

Comment viewing options

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