
C# is the language of the year, Python of the decade - tshepang
https://sites.google.com/site/pydatalog/pypl/python-blog/cisthelanguageoftheyearpythonofthedecade
======
misnome
I recently started using C#, having not programmed for windows in years, and
have to admit I'm greatly impressed by it. It really feels modern, well
designed, and very flexible and powerful, in too many ways to list.

Unfortunately, I'm finding the .NET libraries that I'm using not quite so well
designed - Working with windows forms specifically. Fortunately, a lot of the
third party libraries seem pretty well designed, though seems to be a general
love-affair with overly verbose XML configuration files. Perhaps I'm just
spoilt by the elegance of UIKit (well, most of it), and the clear benefits
from a ground-up design.

I know there is Mono for other platforms, but don't know how well it is
supported/what the performance characteristics are like, but it seems a
language that would really, really benefit with a truly platform-independent
(i.e. not a thin win32 wrapper) set of libraries; GUI and otherwise.

~~~
nahname
C# truly is one of the diamonds in the Microsoft software dirt heap. It is
unfortunate that there isn't something Microsoft sanctioned like UIKit for
dotnet. However, I think ReactiveUI (<http://www.reactiveui.net/>) is quite
close and reasonable popular.

This does lead into the other serious detriment for dotnet, open source. There
is very little going on there because the majority of the community doesn't
actively engage with new libraries or frameworks that don't come out of
Microsoft itself. Hence, why I say it's too bad something isn't sanctioned.

It probably doesn't help that if Microsoft did deem it worth supporting
something like ReactiveUI, their history shows that they would just rebuild it
themselves. Effectively destroying the OSS.

Overall, Microsoft is improving. Just look at the changes they are making to
support ASP.NET MVC as an open source project. They are just a lot slower than
everyone else right now. Their research department might help them keep a few
things ahead (like C#), but for the most part they are behind the curve.

~~~
Locke1689
FYI, C# is not an MSR project.

~~~
noblethrasher
No it's not. But generics came straight out of MSR while LINQ was heavily
informed by Cω, an MSR research language.

------
just2n
I don't think I can agree that "{{language}} tutorial" as a measure of
"growth" is valid. When I am looking to learn a language, I don't Google for
tutorials because you end up with mostly worthless information and maybe a
single result that has any value -- and 9 times of 10 that result is on the
website of the language, so my query becomes "{{language}}". Further, as I'm
learning a language, I'm more likely to Google for a language or API reference
than I am for tutorials on how to do particular tasks X, Y, and Z. That leads
me to write queries like "mdn {{some DOM/HTML/JS/CSS thing}}", which oddly
enough, are also the same kinds of queries I write when using a language I'm
entirely proficient with.

So in that case, I don't think a general "{{language}} tutorial" accurately
represents the growth of a language. Perhaps interest, but this isn't limited
to programmers, either, which makes me feel like it's even more misleading.
For instance, the only time I entered "python tutorial" into Google was when I
wanted to see a quick few basic programs to get an idea of whether or not I'd
like the language. I don't really use Python personally (<rant>never will,
it's terrible</rant>), but I've hacked around in it at work, and I never once
used "python tutorial" to get my work done. I think one was "python reference
urllib" which took me directly to the python reference page for urllib.

~~~
tinco
You missed out on a statistics lecture.

It does not matter whether you or anyone else in particular searches for
"{language} tutorial" as long as there is a significant amount of people who
do, and that amount of people is roughly the same percentage for every
language to get an accurate estimate of language popularity.

And for estimating popularity growth the percentage does not even have to be
the same across languages.

For these estimates to work the only thing you need is something that clearly
identifies user interaction with that computer language. The internet is big
enough to allow this to work for even very small percentages.

That said, I don't agree with "{{language}} tutorial" as a measure of language
learning popularity. This is because a lot of the growth from the Java
programming world comes from formal schooling. Almost every college or
university teaches Java, it could be that the percentage of people learning
Java through tutorial is significantly less than other languages.

edit: downvoted because I am very wrong for a reason stated in that nice
comment below >_>

------
Sandman
Isn't the title a bit misleading? According to the chart, Java is the most
popular language of the year (and the decade, if you take a look at
[https://sites.google.com/site/pydatalog/pypl/PyPL-
PopularitY...](https://sites.google.com/site/pydatalog/pypl/PyPL-PopularitY-
of-Programming-Language)).

~~~
jasonlotito
First line of the article: "C# had the highest growth in popularity this year
(2.3 %), and Python the highest growth this decade (8%)". One of their key
metrics to determine popularity is growth.

~~~
Drakim
Wouldn't a language that goes from 0 users to 1 user within this year easily
win this sort of measurement?

~~~
jQueryIsAwesome
Obligatory xkcd <http://xkcd.com/1102/>

~~~
gtani
oblig. Zed shaw

<http://zedshaw.com/essays/programmer_stats.html>

------
laveur
In addition I would like to point out that according to TIOBE C is the number
one language of the year and C# dropped a place.
[http://www.tiobe.com/index.php/content/paperinfo/tpci/index....](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)

~~~
meaty
That's inline with what I'm seeing. Were dropping .net slowly as it's simply
unpredictable to manage costs and the staff quality in London to be honest is
shit.

------
venomsnake
It all depends on the definition of popular. This is not to be confused with
widely used.

Much more interesting (and catching the Zeitgeist) metric will be:

"Languages (and tools) the top 5% developers prefer to use when left on their
own"

From anecdotal evidence Python is indeed somewhat high ranked there.

------
tinco
Quite deservedly so, you can't argue with statistics!

Anyway, I saw something interesting in the graph. If you just look at C and
C#, then in 2011 you notice that where C made a sharp decline, C# made an
almost equally sharp incline.

Are these movements correlated? What happened in 2011 that made a bunch of
wannabe (since they look for C tutorial) C programmers suddenly turn to
wannabe C# programmers?

I realise it may very well be two randomly occuring uncorrelated events that
causes these jumps. But I'm very much interested in what kinds of events move
the worldwide interest in programming languages.

~~~
meaty
Probably the end of older generation COM C++ stuff that is being pushed to
.net (server 2k appears to have finally bit the dust in corporates) and
reasonable maturity of WCF.

~~~
tkellogg
> reasonable maturity of WCF

Being a user of WCF, I'm sorry to say, it's terrible. Don't ever make the
mistake of thinking WCF is fit for production.

This goes for pretty much the whole C#/.NET ecosystem. The Microsoft tools are
severely lacking in good design principles and the open source tools are
amazing and life changing but don't have the mindshare to be revolutionary.
This is mostly just a fact of Microsoft being unfit for open source workflows.

Instead of WCF, try ServiceStack (or SignalR if it makes sense). Instead of
ASP.NET MVC, try NancyFx or FubuMVC.

~~~
MortenK
The entirery of the centralized European visa, asylum and police systems runs
on WCF and C#. These systems are used constantly every day by a large part, if
not the majority of European embassies, consulates, immigration ministries,
foreign ministries and police departments. Not ready for production?

~~~
tinco
That something is used in production does not mean it is fit for production.

Do you have any sources that confirm that this system is in fact reliable?

That all of Europes police departments, foreign ministries and embassies use
this for international communication puts it at the scale of a smallish web
application.

The people that use these systems come from a system where data like this is
requested by telephone and supplied per fax. If WCF were slow and unreliable
they'd probably still take it for granted, everything beating the old way of
doing stuff.

~~~
MortenK
If these systems were not reliable the 500 million tourists visiting the EU
last year would not have been able to get a visa or not be able to pass border
control points. That's just the visa specific parts, so yeah you could say
it's somewhat reliable.

The users being used to telephone and fax being the reason they are okay with
WCF? Maybe in the 80's, but it's been a while since then.

We are talking 10 mill+ daily transactions as a low brow estimate. A
transaction in this case being a bit more complex than the page viewing of a
cat picture. These are systems with dev and maintenance teams of hundreds and
hundreds of deveLopers globally, working for 5-10 years. To refer to this as
the scale of a smallish web app, well...

~~~
meaty
That's not much. We handle that every 7-10 minutes and these are complex
quoting, transformation, credit scoring and CRM functions. WCF has been a big
problem for us.

~~~
MortenK
That's great that you handle such an amount, congrats I guess? But you are
seriously saying that 10 mill+ transactions every day is similar to a smallish
web app?

And would you really say that a technology handling such an amount of
transactions in such a critical setting is not ready for production?

------
RyanZAG
Far more interesting than the language itself is the "Regional Interest" for
the different terms on the Google Trends site:

[http://www.google.com/trends/explore?hl=en-
US#q=Java%20tutor...](http://www.google.com/trends/explore?hl=en-
US#q=Java%20tutorial%2C%20PHP%20tutorial%2C%20Tutorial%20C%2B%2B%2C%20C%23%20tutorial%2C%20c%20tutorial&date=today%2012-m&cmpt=q)

India is far ahead of every other country for all of these tutorial searches.
eg for Java, India is search index 100, while USA is only search index 11.

------
arikrak
I'm not sure why people don't also look at job sites to see language
popularity. I quickly compared a few languages here
[http://www.zappable.com/2012/12/job-market-for-
programming-l...](http://www.zappable.com/2012/12/job-market-for-programming-
languages/) but one could do a more in-depth analysis.

I created a chart with some more languages in this Google Doc:
<http://bit.ly/UBuI02>. Java seems to be by far the most popular, though C#
seems to be pretty high-demand too.

One could probably compare different job sites to see why they have somewhat
different rankings. Also, I wasn't sure how to search for C (and even C++)
without getting C# results too.

------
sigzero
I am looking at the chart and I see C# as third and Java as first.

~~~
rtkwe
They're using a mildly questionable 'growth as popularity' for their measure.
It has its uses, but does skew things quite a bit.

------
bengotow
I don't understand how searches for '{language} tutorial' is a better metric
than TIOBEs. The results of a metric like that would likely under-represents
Objective-C in particular, because Objective-C classes are namespaced with the
NS prefix and don't require additional search terms. For example, to find code
for doing string reversal in C#, I'd need to search for 'C# String Reversal
Tutorial' but for Objective-C, I could just search for 'Reverse NSString'.

------
carson
From the #code2012 poll on twitter C# is 8th where it was last year:
<http://www.ioncannon.net/projects/code2012/> Not that it is any better a stat
than Google searches but the number one language from the poll was Javascript
and I tend to think that from a use standpoint that is probably "the language
of the year" if there is one.

------
ojr
This is misleading simply for the fact that java and python are taught heavily
in college over php, college students that need extra assistance will "google"
tutorials, php is not taught in many colleges, if you add wordpress tutorials,
drupal tutorials, and joomla tutorials to the mix you will see a totally
different picture

------
nextstep
Perhaps C# is a particularly terrible language and people need to search for
tutorials more.

------
shuma
This is because every university in the world teaches Java first to newbie
programmers

~~~
pixie_
Is it really though?

------
wjgeorge
we're 3 years into the decade. lets review in 7 years, ok?

