Programming Trends on StackOverflow
dodgycoder.net
dodgycoder.net
As someone who never goes anywhere near Windows programming, I'm quite pleased about the direction this trend has taken.
To put it another way, as the site matures, more questions about x will tend to correlate to the inverse of x's formal repositories of knowledge.
A user who finds an answer to their ASP.NET question on StackOverflow, doesn't ask a new question.
Contrast that to Java which had Android, which people don't seem to bother tagging as Java? And that's about it I think? And Java grew and stabilized, so it really is probably just down to their initial users consisted overwhelmingly of .Net developers.
Some drop in ASP.Net/C# popularity wouldn't surprise me either though.
I was a Windows / Microsoft tools only developer for many many years and only recently switched to Javascript / Node.js and OSS tools for our business applications.
My usage of S.O. almost exactly parallels what you see in that graph over the time period and I'm personally aware of a great many other Windows developers moving away from it recently.
The reason for myself has absolutely nothing to do with Joel or Jeff and everything to do with Microsoft pushing out the smaller professional developers who supported them and by extension Windows for decades in favour of policies that benefit only the very big software shops and students / dabblers and then recently with Windows 8 basically giving us all the final push away in many, many different ways.
As for your last sentence; as a professional software developer of well over 20 years who 'goes near' Windows programming and everything else I can get my hands on I can't fathom how anyone can take pleasure in less opportunity and a smaller market and fewer interesting platforms to work with.
There's also aa absolute version of this, which is a simple stacked area chart. It's not so useful here, because the relative popularity of tags is much more interesting than the absolute numbers, which are largely a function of StackOverflow getting more users in total. See for yourself: http://cl.ly/image/101e1y1q3i19
[1] There's also a thing called a "stream graph", which is related but not the same: http://en.wikipedia.org/wiki/Streamgraph
What struck me however was how little the popularity of the largest languages changed in terms of their question frequency.
http://www.asymco.com/wp-content/uploads/2013/06/Screen-Shot...
RE: dishonesty, see for example http://www.leancrew.com/all-this/2011/11/i-hate-stacked-area...
RE: inefficiency, note how bad the trend lines become near the top as the noise accumulates from the curves below. e.g. the galaxy tab curve on the left. I am reduced to visually converting areas into numbers (something humans are quite bad at) and searching for the previous data point, etc.
The one major thing this chart has going for it, though, is that it makes me want to play some old school video games.
Yes, the author's fictitious example sucks.
The chart I linked shows the data points as discrete, so it's actually the stacked column chart the author claims to prefer and eliminates the confusion between height and thickness (that said, I don't object violently to that specific issue since I know how to read the charts).
Why convert curves to numbers? If you just wanted numbers read tabular data.
Tufte uses the equivalent of stacked area charts in one of his most famous examples (Napoleon's attack on Russia). Is it the width or the height of the bar that connotes the strength of the army?
http://www.google.com/imgres?imgurl=http://cartographia.file...
Tufte's great. You can quote him on both sides of most arguments. Displaying information well requires judgment, not just a bunch of rules.
Please note that in the (excellent) Napoleon chart, cross sectional thickness is used to convey the size of the army. Not only is this intuitive, but it is masterfully hinted by the way the line shrinks. Stacked area charts (as detailed in the article I linked) however are unintuitive - a slowly increasing trend stacked on a faster increasing trend will appear to decrease - this is very undesirable.
The chart you linked seems to want to say "The PC(+tablet) market is increasing, but Window's user base is stagnant". Either unstack the data or throw away/combine the irrelevant data. If you want to compare the Galaxy Tab to other Android tablets (as this chart seems to want to do as well) you will need a better chart or a second chart. The top of left chart is visual noise.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
I suspect it's because of the failure of Microsoft in the mobile space.
Reference: https://www.youtube.com/watch?v=3-5nExkCvAY
I love C# and I love working on Windows. But no way I'm going to pay money for there "privilege" of publishing open source software!
(you can't install Win 8 apps from anywhere except the store. Must you limited subset of APIs. Must pay yearly subscription to let people download your software. Screw that.)
However, that is probably also true for many other languages, and from a 30,000 foot view, this does look like either a shift in language popularity or a shift in the makeup of the SO visitor population.
Perhaps, given this data is from a Q and A site, these languages have just gotten so amazing in the last three years that developers are collectively asking fewer questions because they're running into fewer critical / main sequence blocking issues. Maybe these languages have moved to only being deployed by established and professional shops, leading to less of the entry level developer "noise" questions on SO
[e]: sibling comment explains these trends, quite convincingly, as site demographics.
I'd love to see this data compared to a similar set from github. Although public repo stats would suffer the same selection bias as SO posts.
The initial audience of the site was, ergo, primarily windows developers. As popularity grew, more developers from the broader community showed up, driving the proportion of windows questions down.
Considering there are 58.1k close votes to review at the moment... that's loads of dupes.
My personal experience has been that I rarely need to ask new C# or MVC related questions these days. I really have a hard time coming up with something has hasn't been discussed already. I think Stackoverflow eventually hits a saturation point and people begin to consume more than contribute.
However, the problem is there are lots of noise sources. Is the tech complicated/confusing so lots of clarifying questions are asked? Are there lots of updates and releases? It the tech a lot larger in scope, such that it takes more questions to cover it? Is it in very heavy use and people are typically well versed in it so there are fewer questions? etc.
All in all I'm afraid it is hard to draw any meaningful conclusions from this, and easy to be mislead.
Personally i think that what happened is that RoR just didn't scale to bigger projects. Java isn't perfect by any means but right now there isn't anything that scales out as well. And by scales out I don't necessarily mean performance, I mean team size.
Ruby is an amazing language (as far as mutability-by-default languages go), but it is far too web-centric...which seems to have turned into a self-fulfilling prophesy.
It would be interesting to see the tags compared to each other by their relative bucket. As in IOS/iPhone/Android or web frameworks Django/RoR/Play/etc compared.
Also I'd be interested in knowing how the java popularity is without android (postings without the android tag).
2) This visualization is bad.