Stack Overflow, and technology trends

Stack Overflow, and technology trends

Stack Overflow is an invaluable resource for programmers. John Carmack tweeted in 2013 that SO has probably added billions of dollars of value to the world in increased programmer productivity.

I've found helpful answers there dozens of times, and I wanted to give back a little, so over the past few months I've answered a handful of questions, and plan to keep doing so, when I feel my answers are worthwhile. I have observed (as others have) that SO shares some elements with MMORPGs: reputation and badges provide positive ego feedback, and there is a definite sense of competitiveness, especially among the more popular topics. There are many "high level" users with reputation scores in the 10s and 100s of thousands, and in my brief experience answering questions, I've already been "sniped" on a few occasions by such users before I could finish typing an answer to a new question.

Game or not, I like Stack Overflow a lot. And as a programmer and consultant, I need to be aware of what's going on in technology and keep my skills reasonably up to date. Every question on Stack Overflow has one or more tags which indicate the topic of the question. A quick glance at the most popular tags is a good place to see what's going on if you're looking to brush up your skills, and wondering how much the programming landscape has changed since you last looked.

Between consulting work, I've found time to work on several personal projects over the past few months, and the other day it occurred to me that it would be an interesting project to look at trends for languages and platforms based on their popularity on Stack Overflow, and graph them over time. Stack Overflow has public APIs, and I noticed a popular javascript graphing package called d3.js, so it shouldn't be too hard to cobble something together, right? Much like answering questions on SO, I was not surprised (and even pleased in this case) to find that someone had beaten me to the punch.

Tag Trends is a webapp that lets you interactively graph Stack Overflow tag popularity, and it is very close to what I had imagined. Comparing web programming technologies is a great introduction:

As a fan of "vanilla" javascript (a story for another day), I was pleased to see it at the top, and I really don't feel bad about jquery's apparent (relative) decline. The rapid rise of angularjs, Google's "Superheroic MVW framework", is notable. I had never heard of it before I started browsing Stack Overflow.

Another interesting graph to consider is a set of mobile application development languages and platforms:

Android being the most popular mobile OS, it makes sense to see it and its main programming language Java at the top, and holding steady. iOS is also trending steadily, of course. But the interesting takeaway for me is the slow decline of Objective-C, and the swift (haha) uptake of Apple's home-grown language Swift. I've done a trivial amount of ObjC programming, and I did not care for the syntax and loose class/method association. But Swift looks like a nice, modern language. Many of the newer languages seem to be trending toward the same style, with C-like syntax, and support for closures, exception handling, and other modern features, but without the obtuse syntax of C++ or the excessive verbosity of Java. See also Go, Rust, and Javascript ES6.

Conclusions: Stack Overflow is awesome, the Tag Trends webapp is really interesting (go try it for yourself), and I believe the data provides a good indication of what developers are actually using. Also, there are lots of fun new languages about that are a natural evolution of C, which is great news for C veterans looking to grow their skills.

To view or add a comment, sign in

Others also viewed

Explore content categories