Programming Languages in 2016

According to two out of three major language surveys I consulted for 2016, programming is increasingly becoming synonymous with web development in JavaScript. No doubt this reflects, on the developer side, the rapid march towards web services and HTML applications everywhere in computing.

Other than JavaScript and HTML itself, though, a stable comprehensive application framework has yet to emerge. Complaints on this point are getting louder but with nobody invested in the open Internet platform as such, like Apple is in Mac/iOS, Microsoft in Windows, and Oracle in Java, who would bother spending the resources?

Stack Overflow: Web Developer Central

The Stack Overflow Developer Survey 2016 show how web-centric the programming world has become. Out of 49,525 respondents a full 46% classified themselves as Web developers (28% full-stack, 12.2% back-end, 5.8% front-end). Other than Student, the next most popular answers were Mobile at 8.4% and Desktop at 6.9% – that’s for all platforms combined in each case!

The most popular language for web developers (even back-end) was of course JavaScript, and given their dominance JavaScript was also the most popular Stack Overflow language overall, used by 55.4% out of 49,397 respondents. Following close behind was SQL at 49.1%, another language that web developers frequently have to deal with. Java leads the rest with 36.3%, followed by C#, PHP, Python, C++, C – and two more JavaScript technologies, namely Node.js and Angular. Only the latter two grew substantially over the last few years.

Since June 2015, JavaScript also surpassed Java as the most popular SO language tag and retained that place in 2016. It should be noted that Java-programmed Android is in third place, though, and both combined might still outnumber JavaScript (55,134 + 43,251 versus 62,588 for January 2016) depending on overlap. Other popular tags roughly mirror self-reported language and technology uses.

The most amusing survey section is the list of “Most Loved” languages, defined as share of developers who would like to continue using their present language. The top entries have almost no overlap with popular languages: Rust, Swift, F#, Scala, Go, Clojure, Haskell. The only mainstream languages that got approval were Python and C#, plus the JavaScript frameworks React and Node.js.

GitHub: More Web Developers

The GitHub Octoverse, apparently covering the twelve months up to August 2016, show an even greater JavaScript dominance. Pull requests nearly doubled from the previous period, to 1.6 million. All the other Top 15 languages also grew, but few as fast and all from a smaller basis: Java (63% to 764k), Python (54% to 744k), Ruby (66% to 741k), PHP (43% to 478k), C++ (43% to 330k), then CSS, C#, C, Go, Shell, Objective-C, Scala. Eternal hopefuls Swift (262% to 62k) and TypeScript (250% to 56k) grew very rapidly but still have a long way to go.

Felipe Hoffa conducted another GitHub analysis to settle the eternal question: Tabs or Spaces? One billion source code files in various programming languages show that developers have seen the light and overwhelmingly prefer nice portable spaces over nasty formatting-breaking tabs. The major exceptions are C which has a slight edge in tab use (old Unix habits die hard I guess), and Go which exclusively uses tabs – because Google’s gofmt autoformatter inserts them.

TIOBE Index: What is this “Web?”

The TIOBE search engine index shows a starkly different picture. Java receded a bit from its JDK 8 surge but comfortably retained the top spot in 2016, followed by a surprisingly fast collapsing C and slowly declining C++. C# likewise continues downward, apparently not much helped by Microsoft’s open source offensive. Strangely enough, Visual Basic .NET simultaneously gained in popularity, but I suspect this may be due to projects (or just search terms?) finishing the migration from pre-.NET Visual Basic.

Python, PHP, JavaScript, Assembly, and Perl make up the rest of the field in the sub-5% area. The near-total absence of JavaScript remains the most dubious aspect of TIOBE’s index and casts doubt on its overall methodology.

More on JavaScript

State of JavaScript 2016 collected 9,307 responses to 89 questions. A majority of respondents quite liked the language but complained that the ecosystem is changing too fast and building applications is too complex. This is echoed by Jose Aguinaga’s How it feels to learn JavaScript in 2016. The community’s major problem is not so much the language itself (which these crazy people seem to like!) as the impenetrable mess of rapidly changing frameworks.

Mess or not, the design philosophy behind Facebook’s React, one of the most popular JavaScript frameworks, is quite fascinating. Its creators conducted an extensive interview with ACM Queue. A great read on implementing user interfaces in a functional style, even for non-web programmers.

Bonus Links

Alex Denisov’s Java Papers gives abstracts and links for all the scientific PDF articles that were cited somewhere in the OpenJDK source tree. Not to be outdone, Matt Warren has compiled a .NET counterpart: Research papers in the .NET source.

On other fundamental subjects, Mike James has written two fine introductions to the popular Bloom filter algorithm and its invertible version. Mike Hearn wrote a detailed article on Modern Garbage Collection which specifically aimed at debunking some Go hype but also provides a good overview on current GC technology in general.

Dustin Marx published his own annual review, Significant Software Development Developments of 2016. As the title implies the scope is very broad and covers many news beyond programming languages, but there’s also a section mostly focused on those near the bottom.

And just 19 days into the new year, JDK 9 was pronounced feature-complete. Dustin Marx wrote up a categorized list of the most important aspects. The Java language itself doesn’t change in this release but there are plenty of internal changes, in particular the new module system.

One thought on “Programming Languages in 2016”

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.