Java “Losing its Mojo?” I Think Not!

Wired has an article titled Is Java Losing Its Mojo? While the article seems to contradict itself in some ways, I have to take issue with the general theme. As someone who pays attention, I simply haven’t seen this happening. On the contrary–It seems to me that Java continues to grow. Just peruse the job boards.

Just to experiment, I did some searches on Dice.com. Here is the list of languages and number of posts on Dice:

  • C++: 17335 (almost all of these listings are C/C++)
  • Java: 17318
  • Javascript: 11240
  • C#: 8980
  • Perl: 4835
  • Python: 4000
  • PHP: 3640
  • Ruby: 2483
  • Objective C: 1868
  • Cobol: 686
  • Fortran: 44
  • Lisp: 40
  • Visual Basic: 1446

tpci_trendsWhile its fun to look at, the above list is essentially meaningless. It compares apples to oranges. I included scripting languages in my search because the TIOBE Programming Community Index does. Why? I don’t have no idea! Comparing the use of Javascript to C, C#, Java or C++ is silly.

I’ve been working this week on push notifications for iOS. One may immediately think this means diving into Objective C. The client is written in Objective C, of course, but the server isn’t, and almost all mobile applications have some sort of server interface. Next up, I’ll be working on the same for Android (all Java, server and client).

Before I even thought about writing any code, I did a few searches to see what was out there to make life easier–so that I could incorporate libraries that already exist and likely perform much better than anything I could put together in a few days. There is a wealth of Java support for interfacing with APNS (Apple Push Notification Services). Between GitHub, Google Code, the Maven Repository and RedHat offerings, including FuseESB support, I quickly found more options than I could have imagined. Apache Camel has an APNS component, easily usable with FuseESB.

While the Wired Article, Is Java Losing Its Mojo?, asserts, “…Java has stagnated in recent years,” this fails to take into account the ever-growing open source support, OpenJDK and the coming release of Java 8.

Looking at GitHub, Java is the third most used Screen Shot 2013-04-11 at 9.14.13 AMlanguage on the list (Javascript and Ruby top it, but the related projects are unlikely full solutions, and hardly a relevant comparison). In the case of Javascript, the GitHub projects available fall more into the utility category. I’m as big a fan of jQuery as the next guy, but we cannot say that Javascript is more popular than Java–it doesn’t make sense as a comparison.

This is hardly scientific, I know. To assert that Java beats out all other compiled languages in usage based on GitHub has its problems. It only tells us that more people are using Java on GitHub.

Perhaps there is some confusion when these things are reported, and the journalists fail to understand that web apps and native apps are different things (and the remaining confusion about the different between Javascript and Java is really odd).

Another article from Developer World, Java Retakes the Lead in Language Popularity, completely contradicts the Wired article. According to the Developer World article (based on the Tiobe Programming Community Index):

Java had a popularity rating of 18.387 percent for the month, followed by C at 17.080. Rounding out the top 10 were: Objective-C (9.803 percent), C++ (8.758 percent), C# (6.680 percent), PHP (5.074 percent), Python (4.949 percent), Visual Basic (4.648 percent), Perl (2.252 percent), and Ruby (1.752 percent). Python is rising and rivaling PHP to become the most-popular interpreted language, Tiobe said. Tiobe assesses popularity by examining language-related search activities in search engines like Google as well as on sites like Wikipedia. Ratings are based on the number of skilled engineers worldwide, courses, and third-party vendors.

Both articles reference TIOBE, which is funny, but I think they were looking at different months. The problem inherent in any of these surveys is that the context is not understood. Objective C has seen a massive rise in use, but this has everything to do with iOS. C remains very popular, but this is because it is used heavily in OS and embedded applications. PHP is popular for small web services. C# is the obvious choice for native windows programming.

Determining the popularity of a programming language is absurd as determining one’s favorite tool for home repairs. If someone were to ask me what I like better, a screwdriver or a wrench, without any context, I’d be very confused. A screwdriver is useful for many things, but it doesn’t help very much when I need to change a tire.

Regardless, Java remains extremely popular, and it will for years to come. It is a language that has adapted very well to changing needs.

Wired: Is Java Losing its Mojo?
Developer World: Java retakes the lead in language popularity
TIOBE Software: Tiobe Index

Advertisements