Open Source

Will Go give Java a run for its money?

According to new data, Java and JavaScript dominate developers' allegiance. This could change, however, as more applications move to the cloud, where Go resides.

Programming

While Apple and Facebook race to introduce new programming languages to capture developers' imaginations and creativity, tried-and-true Java reigns supreme as developers language of choice. Interestingly, while general interest in Java (along with peers like C# and PHP) seems to have been waning for some time, a new generation of developers keeps turning to Java and JavaScript to get stuff done.

But the question is whether this will persist as more apps move to the cloud where Google's Go programming language is such a perfect fit.

Java: The once and future king?

Java never seems to get old. While originally designed for interactive TV in the 1990s, Java today powers enterprise applications, Android development for mobile apps, and just about everything else. Java pays well: with over 9 million Java developers globally, the median salary for a Java developer in the US is $83,975 (USD). That's real money.

Perhaps it's this very general purpose nature of Java that gives it such staying power. What's particularly interesting about Java is that it's not merely a mainstay with older developers, but it dominates development among the "cool kids" on GitHub and Stack Overflow, as Redmonk analyst Stephen O'Grady's analysis shows (Figure A):

Figure A

Figure A

Java popularity.

In case you're struggling to parse the plot above, O'Grady breaks down the rankings in this way:

1. Java / JavaScript (tie)
3. PHP
4. Python
5. C#
6. C++ / Ruby
8. CSS
9. C
10. Objective-C
11. Shell
12. Perl
13. R
14. Scala
15. Haskell
16. Matlab
17. Visual Basic
18. CoffeeScript
19. Clojure / Groovy

It should be noted that problems abound with the data. For example, as O'Grady's colleague Donnie Berkholz points out, "Language detection [in GitHub repositories] is based on lines of code, so a repository with a large amount of JavaScript template libraries (e.g. jQuery) copied into it will be detected as JavaScript rather than the language where most of the work is being done."

Even so, Redmonk's data maps closely to O'Reilly's analysis of popular programming languages (via book sales), not to mention Indeed.com job postings (Figure B):

Figure B

Figure B

Popular programming languages.

Will Java hold onto its lead?

Across a variety of measures, Python, Go, and Scala (in particular) show considerable growth relative to Java and JavaScript. For example, Python is booming among employers, perhaps because it continues to eat into R as a general purpose language that serves an important role in big data applications. (Even so, O'Grady notes that R, despite its relative complexity, has jumped several spots in the rankings, moving from 18 to 13.)

Go, for its part, is also soaring, as Berkholz's analysis shows. As he describes, "Go, a seemingly very minor player, is already used nearly one tenth as much in FOSS [free and open-source software] as the most popular languages in existence." Go makes it easy to code for the cloud and has taken off as a result.

While Go didn't make the top 20, over the last two Redmonk reports, it's jumped seven spots to sit just outside the top 20. This programming language feels like it's prepared for an extended run. As Iron.io describes in a blog about its transition away from Ruby, Go has a number of factors in its favor:

"We looked at other scripting languages with better performance than Ruby (which wasn't hard) like Python and JavaScript/Node, we looked at Java derivatives like Scala and Clojure, and other languages like Erlang (which apparently AWS uses) and Go (golang). Go won. The fact that concurrency was such a fundamental part of the language was huge; the standard core library had almost everything we needed to build an API service; it's terse; it compiles fast; like Ruby, Go is fun; and finally, the numbers don't lie. After some prototyping and performance testing, we knew we could push some serious load through it."

And while the Iron.io team worried about finding talent that knew Go, "we soon found out that we could get top talent because we chose Go." Talented engineers want to work with the latest and greatest.

Unseating Java?

Will it be enough to displace Java at the top of the programming language heap? Unlikely. But given that Go was written expressly for cloud architectures, and more of our applications are moving to the cloud, it's very possible that fit-for-purpose (Go) will make a big dent in general purpose (Java) over time... as the cloud becomes general purpose.

Go, after all, makes it relatively easy to deliver concurrent operations, plus offers other features that fit the provisioning models of clouds. It's an optimal language for the kinds of applications we increasingly build, both within and outside the enterprise.

True, Go didn't make TechRepublic's list of the "best programming languages to learn in your spare time," but it's increasingly the language developers will need to learn on their employer's time.

Share your thoughts about Go in the discussion thread below.

About

Matt Asay is a veteran technology columnist who has written for CNET, ReadWrite, and other tech media. Asay has also held a variety of executive roles with leading mobile and big data software companies.

Editor's Picks