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
- C#: 8980
- Perl: 4835
- Python: 4000
- PHP: 3640
- Ruby: 2483
- Objective C: 1868
- Cobol: 686
- Fortran: 44
- Lisp: 40
- Visual Basic: 1446
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.
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.
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.