Phillip Trelford's Array

POKE 36879,255

Has C# Peaked?

Microsoft’s C# programming language first appeared in 2000, over 15 years ago, that’s a long time in tech.

Every month or so there’s a “Leaving .Net” articles, the last one I bumped into was “The collapse of the .net ecosystem” from Justin Angel:


The article shows, through a series of charts, the level of interest in C# peaking and then falling.

This is what I’d consider to be the natural continuum of things, where languages have their day, and then slowly decline. In the past C was my primary language, then C++ and so on, why should C# be any different?

Disclaimer: This is not a leaving .Net post, just some of my own research that I thought I’d share, with a focus on the UK as that’s where I live.

Job trends

Indeed.com provides statistics on job placements with specific keywords, lets look at C#:

csharp jobgraph

This chart appears to show job adverts peaking between around 2010 and 2012 and tapering off fairly heavily after that.

Google trends

Google trends lets you track interest over time based on a keyword, here I'm looking at C# in the UK:


On this chart the peak seems to be earlier, around 2009, perhaps the trend can be seen earlier in the UK, but again the decline in interest is clearly visible.

TIOBE

Questions around the validity of TIOBE’s numbers abound, but here it is anyway:

TIOBE Index for CSharp

Here the peak appears to be around 2012, although the drop is perhaps less pronounced.

PYPL

Yet another popularity index this time tracking google trends for “C# tutorial” in the UK:

PYPL CSharp UK

This chart shows uses a logarithmic scale, however what we might surmise, if the numbers are to believed, is that interest in C# appears to fall off a cliff towards the end of 2014.

Stack Overflow

The recent stackoverflow developer survey also shows a significant decline in interest from 44.7% in 2013 to 31.6% in 2015. Developer’s current preferences are also quite revealing:

image

 

Where’s everyone gone?

This is only conjecture, but from my experience of .Net oriented developer events over the years in the UK, C# has always had a significant focus on the web and ASP.Net. My suspicion is that with the rise of thick-client JavaScript and mobile, significant numbers of developers have been migrating naturally towards those ecosystems.

Should I panic?

Probably not, there’s still plenty of C# jobs out there for now, and hell, some of the best paid jobs nowadays are for maintaining C++ and even COBOL systems. But if the numbers are anything to go by then we can say that C# interest has peaked.

That said who knows what the future will hold and perhaps like C++ there’ll be a renaissance in the future, although C++’s renaissance never really brought it back to the levels of it’s heady hey days.

Then again perhaps it’s more pragmatic not to dwell too heavily on the past, accept the numbers, and look to a new future. If you’re skills extend beyond one language then I guess you’ve probably got nothing to worry about, otherwise perhaps it’s time to pick up a new language and new paradigms.

And I’ll leave you with a question: Do you think you’ll be using the same programming language in 5 years time?

Comments (85) -

  • Giacomo Stelluti Scala

    6/16/2015 12:29:47 PM |

    I think that market is a thing and technology is another.
    Sorry but I've disagree that 15 years is a long time in technology, but I can agree if you link a technology to its market acceptance.
    For example, even Apple switched from proprietary to *nix based kernel and Unix is a really old compared to C#; as you know pervades various flavors of Linux and still stands on his feet.
    Also the JVM revolutionary language Clojure (that I really like) is based on (if not I'm wrong) the second oldest language invented: Lisp (the first I think was Fortran).
    More over if a (software) firm has an high investment in a large C# codebase and have hired various C# engineers, I don't think that company will convert all the code just to because all people tweet that the last cool thing called XYZ is the future and everything else is dead.

    As last note you know that as developer, the import things are concepts and language is only a means (or at least this is my view). No developer should be scared of learning a new language also should love learn new things!

    This is only my point of view... And I want to point out that is not against your thoughts, but against this senseless trend of seeking the "last big thing" at all costs! Sorry but this thing is making me sick.

    Regards,
    Giacomo

    • Phil

      6/16/2015 2:38:20 PM |

      Hi Giacomo,

      Thanks for your comment, and I think I agree with your sentiments, i.e. I don't believe companies with a large investment in a particular code base whether it's C#, C++ or Java should throw it all away for no other reason than it's just not shiny anymore. That's not something I've ever advocated. A more pragmatic approach is to consider starting new projects or replacing older problematic projects using the most appropriate toolset available.
      I also agree that developers should not be afraid of learning a new language or a new paradigm, in fact it should be seen as an exciting prospect. Taking your example of Clojure, it looks quite different from Java or C#, but has a lot of pragmatic capabilities that, in your own words, are founded on strong computer science fundamentals. A similar message can be given to other modern functional language flavours like Scala and F#, or recent systems programming languages like D and Rust.

      Cheers,
      Phil

  • Steven Goodgrove

    6/17/2015 4:15:41 AM |

    Hi Phil, great post. Some good observations.

    I fully expect that in 5 years time I will still be programming in C#. Being something of a programming language nerd, I've kept my eye on all sorts of languages over the years and I've seen them grow and fall in popularity. C# though does manage to merge quite a few paradigms nicely, has great performance on .Net and the .Net libraries are hard to beat (first class support for everything from unicode, to encryption to web development etc). I'd like to say I'd be working in F# and compiling to .Net and JavaScript, but I can't realistically imagine the masses moving away from curly braces and imperative style.

    The only reason I could see me moving away from C# is, as you allude to, because of JavaScript. I'm firmly in the strict-typing camp, but JavaScript is (in spite of its problems) actually a very practical language with some support for functional programming, it is a very flexible language. It is also becomming the lingua franca both client side and server side and it is impossible to ignore and possibly impossible to stop its momentum.

    • Phil

      6/17/2015 5:30:21 AM |

      Thanks Steven, yes, I think you're right, the curly brace languages will continue to dominate in the numbers game. I do think there'll be lots more interesting things happening from the functional camp, and there'll be plenty to do for those willing to look outside.
      The continued rise of JavaScript is also interesting, with ES6 there's actually quite a powerful language with some pretty cool new features.
      Cheers,
      Phil

  • Stephen Roughley

    6/19/2015 3:27:26 AM |

    Hhhmmm... In the UK at least, the jobs market tells a different story (or does it?). Taking a look at http://www.itjobswatch.co.uk it seems MS devs are still some of the most in demand, and it is known in the UK industry that there is a huge shortage of competent .NET developers. Is that because developers have grown bored of .NET and moved on or is the technology still so in demand that there just aren't enough? Or maybe recruitment websites are for some reason drastically skewed towards .NET?

    • phil

      6/25/2015 1:58:44 AM |

      Thanks Stephen,
      There's been a lot of talk about there being a shortage of "competent developers". I think this is an interesting question on many levels and would perhaps make a good subject for a new article.

  • ImYourGod

    6/19/2015 9:33:09 AM |

    Another stupid article based in absolutely nothing, ja ja ja

    • phil

      6/25/2015 1:59:14 AM |

      Thanks for dropping by.

  • Anonymole

    6/19/2015 9:53:50 AM |

    It's not so much that C#'s popularity is starting to wane, but that developing in Microsoft tech is no longer desirable. C# is the defacto language for writing MS apps. But who wants to write MS apps now that there are so many variations and no clear direction from Redmond? Angel talks about the betrayal against developers that MS has subject via their ever-changing tools, design and deployment options.

    I'm being forced -- yes forced -- to write Windows Phone 8.1 right now. And I hate it. Winform, WPF, Silverlight, WinRT, Winphone 7, 8, 8.1 and now Universal all of which have splattered their examples and documentation all over the net, I hate coming to work and having to struggle for every tiny bit of functionality. And with only ~2.5% of the mobile market? Hell to that! I'm sure I'd be better off learning java/Android and/or iOS. And even when you figure out how to implement something in WinPhone Universal (after having to write two different UIs), it NEVER looks as good or behaves as well as on Android or iOS.

    MS has effectively screwed it's developer cohort. Well, screw them back!

    • phil

      6/25/2015 2:00:59 AM |

      Thanks Anonymole,
      Sorry to hear that, your situation sounds very frustrating, I hope you find a happier place in the future.

  • Serkan Camur

    6/19/2015 10:03:32 AM |

    i can say as a Turkish developer; C# is very popular in Turkey because our business applications needs to publish as very fast and which is so easy for learning...
    http://www.serkancamur.com

    • Phil

      6/25/2015 12:25:32 AM |

      Thanks Serkan,
      Great to hear C# is doing well in Turkey Smile

  • Jamie

    6/19/2015 10:29:49 AM |

    I used to spend most of my time writing C# and now spend most of their time writing Javascript.  Why is this? Because a lot more of the code needed to run a web site lives in the browser now instead of on the server. People like Justin Angel have hypothesized about the decline of interest in C# as being a result of Microsoft's failures and so on, but the reality is probably a lot simpler: you just don't need as much code running on the server to build web sites.

    Nobody writes new desktop applications any more. Really, nobody.

    Fewer web apps are written using ASP.NET or even MVC. We make SPAs that communicate with REST services. Only the data services need to be written on the server.

    So what about C#'s principal competitor, Java? Looking at the Google chart with Java makes Java look like it's about to wheeze it's last breath. It goes from a high baseline metric of 100 in 2004, to 28 today. Overlaying C# shows C# at a high of 18 in 2004 to 8 today, So C#, always being the underdog, is only half as "hot" as it was back then, whereas Java is less the 1/3. Yet nobody's accused Java of being on the way out.

    Also FWIW - the PYPL one doesn't seem very accurate, possibly because of limited UK data, when I choose "Ruby", nothing at all appears, I presume because there isn't even enough data.  Looking at US data on their web page, they show C# actually at an all-time peak in 2015, and overlaying Ruby (after an initial huge spike when it was invented) follows almost the exact same trend as C#.

    Bottom line - it's not going anywhere. Every single big business has a huge infrastructure built in either C# or Java. But as the web evolves, more code runs in the browser, and we also have a server-side option that didn't exist a couple years ago (Node) that falls in the Javascript column.


  • Steve Naidamast

    6/19/2015 10:30:04 AM |

    Shame on me!  I prefer VB.NET to C#, though I am fluent with C#.  I am one of the dinosaurs you read about these days and came out of the DBASE world of the 1980s and early 1990s.  Before that I was a main-framer.

    Let's not forget something about the usage of languages.  Yes, C# may be on the wane, and VB.NET increasingly demonized (though I still haven't understood the technical reasons as to why) but they are also languages that are far more mature and robust than the new "kids on the block" and just about anything they can do both VB.NET and C# probably can do better since the technologies they support have not radically changed all that much.  The Internet is still the Internet desktop applications are still desktop applications, and mobile applications are for the most part, in my opinion, mostly crap as they serve nothing more than "sound-bite" interest on the part of most of their users.  The mobile eco-system is highly saturated with every Tom, Dick, and Harry attempting to make their next success in it while the reality for most mobile real-world applications will always be for those in the field that need easy-to-use tools for information tracking and transmission.

    All that being said, many of the new languages cannot support the wide-array of requirements and capabilities that Java, C#, and poor VB.NET can since so many of the new languages have narrow focused points of view in their emergence.

    Take Ruby on Rails for example.  It is already claimed to have peaked and is in decline but Python, its competitor, is still quite capable in a multitude of environments.

    PHP that has remained a web-based language is beginning to see itself possibly fade into irrelevance as the more general development languages supersede it.

    Yes, the major languages may be in decline but until something radically occurs in the technology world such as the shift from mainframes to microcomputer technologies they will remain a foundation for all developers who need languages that can be used for practically for anything.

    Say what you will about COBOL but it was a great language and is still in use on not only mainframes but on micro-computers as well thanks mostly to the Micro-Focus Corporation...

    BTW, Fortran was not the first computer language.  I believe it was Auto-Coder and Assembly, the latter of which is still being used quite a bit.

  • urlonz

    6/19/2015 10:33:25 AM |

    There are 2740 C# jobs in 30 miles of Arlington VA. What down turn?

  • Siderite

    6/19/2015 10:33:36 AM |

    Did you wonder if you should write this article in English or in Chinese? I mean, Chinese is definitely peaking right now.

    • cariaga

      6/21/2015 2:52:01 PM |

      you totally got a point

  • Pete Hansen

    6/19/2015 10:36:15 AM |

    What does the valid points in this article mean for a good programmer?

    ALMOST NOTHING!! I am currently teaching my self a new programming language in 60 days (not 21 days as a famous book series once claimed since I tend to go relatively deep into the details). And I do it by simply using common sense and YouTube.

    And by the way - one of the most significant ideas behind the .NET framework was that it should not matter "what so ever" what programming language you are good at.

    Personally I learned also German in 60 days as well and I don't consider myself special and so can you.

    Falling in love with the syntax of a programming language is like a shallow love relationship I never do it and if you are a "kick ass" programmer you are probably better than me so neither should you....

    If you need to learn something - especially in the time frame the charts are showing - just do it and have fun in the process you will do great in your new job.

    Take care.  

    • Robert

      6/24/2015 3:08:27 PM |

      @Pete If you really learned German in 60 days then you should definetely consider yourself special. I am a native speaker and I needed decades Wink

    • Robert

      6/24/2015 3:14:53 PM |

      When I wrote "definetely" I was definitely thinking of #define although I'm not a C++ developer.

  • Pavel Surmenok

    6/19/2015 10:37:11 AM |

    If you look at indeed.com trends, it shows similar trend for other major languages: Java, C++, Javascript. ANy ideas why?

    • phil

      6/25/2015 1:56:49 AM |

      Thanks Pavel,
      If you look at newer languages like Swift, you can see a rise. I'm guessing as mentioned in the article that it's a shift to mobile apps (particularly iOS and Android) is part of the trend.

  • Savin Dwarf

    6/19/2015 11:03:44 AM |

    I think the conclusions you are drawing from the data are problematic.   Your analyses is based on the number of jobs posted, search trends, tutorial trends, etc.  Their are only two conclusions that can be made from the information:
    1) The number of job openings that specifically require C# have declined.
    2) The number of people wishing to increase their knowledge/skills in C# has declined.

    In the case of 2) above this is most likely the result of a diminishing pool of older programmers with experience in COBOL, C or C++ and other legacy application programming languages that found the need to reinvent themselves in order to stay employed.

    Number 1) is most likely as a result of the number of organizations that have significant numbers of programming staff with no knowledge of modern technology has been diminished.

    In marketing terms the peak interest in C# was primarily as a result of converting available market (existing programmers that needed to acquire C# skills) as opposed to brand new never-programmed before people (converting potential market to available market.)

    For your inferences to be true we would need to show that a new language has been gaining converts at about the same rate of the drop in C# converts.  But I doubt that is the case.  

    Do you have any information that shows new languages are the cause of the drop in C# searches and jobs?

    Sorry for length of the above -- its what happens when economists and market analysts step into these types of conversations.

    • phil

      6/25/2015 1:55:06 AM |

      Thanks Savin,
      The main conclusion I draw is that interest in C# appears to have peaked (in the past). We can clearly see that interest in C# rose, nobody seems to be disputing that.
      If you're interested in seeing how new languages have affected C#'s popularity then perhaps you might enjoy doing you own analysis, I look forward to reading it.

  • Reelix

    6/19/2015 11:35:18 AM |

    C# will die.  
    Like PC died oh so many times when mobile devices became popular.  
    Like PC gaming died when consoles became popular.  
    Like Facebook died when Google+ became ..... popular.  
      
    The question is not if C# will die - It's when will it die next ;)

    • phil

      6/25/2015 1:50:22 AM |

      Thanks Reelix,
      At no point does this article say that C# will die. The title and question was "Has C# Peaked?"
      I don't think C# will die, like C++, Java and COBOL I expect we'll C# code being maintained for decades to come.

  • Pat Capozzi

    6/19/2015 11:55:23 AM |

    To paraphrase, there are lies, dammed lies and then there are statistics.  I have been in this game since before all you were born and I can assure you the demand for good C# developers is currently off the charts.  The only other language with similar scale is Java and there is considerable noise that it is hamstrung in its development by its connection to the dummies at Oracle.  It is just getting it version of LINQ.  That is pathetic.

    If I posted on Dice right now, I would have multiple offers stacking up within days.  The only comparison for this demand is early in the year 2000.  I have worked at a lot of big companies with different technologies and one thing is SURE... C# and the MSFT technology stack is the most productive and the smart companies know this.  

  • Dave

    6/19/2015 11:55:34 AM |

    Eh, then please explain why I keep on getting head-hunted for .net, in particular, C#, jobs. I'm not tied to a particular language -- there's quite a few of which I'm fond -- but the C# camp is far from dead, if recruiters are anything to go by.

    • phil

      6/25/2015 1:48:22 AM |

      Thanks Dave,
      Happy to hear you're in demand in the marketplace.

  • Jason

    6/19/2015 12:06:46 PM |

    All we can do is wait another few years more to see where the numbers end up.  Since MS decided to open-source .NET and make it available for developing on Linux as well, there can be some major adoption of a well-established language from the World's biggest company.  Also, as Windows 10 (for PC & Mobile) popularity arises after release, more companies and solo developers will need to use C# to develop apps for the ecosystem.  

    • phil

      6/25/2015 1:47:37 AM |

      Thanks Jason,
      Definitely interesting times ahead Smile

  • Jarek

    6/19/2015 12:21:39 PM |

    There is one very big issue with this article - it does not compare c# to any other language. And if you compare c# "trend" with other languages - such as Java or JavaScript - you will notice a very similar chart. Does it mean that programming languages are a thing if the past? Hell no. It only means that more and more "regular" people (I.e. non-programmers) are using internet on a daily basis...

    • Phil

      6/25/2015 1:46:30 AM |

      Thanks Jarek,
      If you're interested in digging deeper, perhaps you should write your own post, I look forward to hearing about your analysis Smile

  • Pedro

    6/19/2015 12:40:02 PM |

    Nice article.

    I believe than popularity (in terms of novelty, word search or academic research) is one thing and adoption (in terms of use for business/serious projects) a very different one.

    In this regard, I agree many newcomers like Swift are getting lot of attention lately. But, C# are still widely used, as many other oldtimers (like c/c++) and won't go anywhere for quite some time in the long run.

    In terms of search popularity, it could get a new short-term spike when v6 gets release soon and a huge one once "serious" native compilers for c#  (that is, different than NGen) enter the game with first release versions. Roslyn project will open new possibilities also, and the move to open source, if managed smartly, could bring innovation/improvements to the lenguage.

    Time will tell ...

    • Phil

      6/25/2015 1:44:57 AM |

      Thanks Pedro,
      Agreed there's still huge investments in C/C++, Java and C# out there in large enterprises and they're not moving anywhere fast soon.
      Yes it will be interesting to see the effect of C# 6 and .Net Core, and how Microsoft and the .Net ecosystem evolves and embraces open source more.

  • Denis Silvestre

    6/19/2015 12:52:52 PM |

    The choice of the language ("technology" I'd rather say since a language is a set of syntax, semantics and a compiler while the technology includes running platforms, allowed IDEs and frameworks/libraries) strictly depends on the domain.

    C# is a good language designed for Web, Webapps, User interfaces... anything that has a direct feedback with the user. Now its popularity is sloping down because the big boom originatd by marketing caused a gold-fever (as it happens for anything IT realted nowadays, smartwatches, Ruby on rails, Python and so on) that exhausted the domain.

    As far as I can see now there is a huge NEED of engineering in machine-to-machine and industrial automation, other than actual algorithms (you know, that pieces of code that actually cruches numbers to produce other numbers to produce ehm... magic substantially). Now these kind of applications don't need bloated frameworks with redundant-similar-but-different classes, slow JIT compiling, tons of runtime checks and so on - much of the industrial automation still fights day-by-day with RS232 and its kin for example. What is needed is crude performance, flexibility of the language, sometimes even realtime performance. So the wave is flowing back to native developers instead of the much marketed .NET.

    • Phil

      6/25/2015 1:41:46 AM |

      Thanks Denis,
      Interesting perspective with respect to industrial automation.
      I think you're right as there's a greater diversity of language and platform options I think people are choosing the ecosystem which is best suited to their task.

  • Robert J. Good

    6/19/2015 1:17:03 PM |

    Hi Phil,

    Thank you for an objective take on data, so many bloggers/journalists put more abstract emotion than quantitative facts! I did see some well versed comments about the drop in C# might be because the need for native apps is increasing, and people (I say mistakenly) jump to objective-c/etc. instead of Xamarin .net x-platform tools.

    The programming world is split into Java and .Net...and everybody else is a distant third. Why? No other languages that I know of are truly cross platform to: Web sites, web services, windows desktop (win32), database runtimes, windows store/universal apps (win, phone, xbox, pc, tablet 8/10), iOS, Android, OSX, Chrome, Linux...heck, SCO Unix for that matter.

    I can see F# overtaking C# eventually, but .net is .net. People starting in the tech industry often ask me...what should I do? I always say go T-SQL data engineer, go no-SQL for unstructured data, or go Java/.Net programmer.

    Everything else is a niche as far as I'm concerned, few jobs and fewer runtime platforms.

    Robert

    PS. In OC, Ca.: 87 .net, 101 Java
    vs. 14 ruby, 25 iOS, 40 Android, 38 PHP, 15 python

    • Phil

      6/25/2015 12:22:59 AM |

      Thanks Robert,
      Appreciate your comment, I agree there are huge ecosystem around JVM and .Net, and as such they're a safe bet.

  • Vincent

    6/19/2015 1:29:37 PM |

    I'm C# dev and even don't blink when somebody buries C# Smile  It's so good, mainstream language that nobody in health mind will leave it. .NET has A LOT of libs and tools to keep fast, robust development. Who cares how many times people search C# or ask questions on SO? Less questions on SO means language is MORE INTUITIVE AND LESS PROBLEMATIC. So yes, in 5 years my C# will be with me even if MS produces nothing new.

  • stefano

    6/19/2015 1:29:39 PM |

    I'd like c# because it's simple and strong at same time.
    Like Charles Petzold I think it's one of the beautiful today laguage.

  • Jim

    6/19/2015 4:28:44 PM |

    I think the .Net framework is tough to beat.  It is crazy powerful but I think the trend is definitely moving client side with javascript and frameworks like Angular.  You still need a back end though and a Node.js programmer would be hard pressed to do half of what .net will do in double the time.

    ASP.net was a mess and MVC still has quite the learning curve.  More so, Javascript is taking people away from strongly typed classes which most .Net developers are married to.  I think you will see a change in the language and a rise in popularity as people realize they can use the power of .Net but shed the clunky ASP junk.  My new direction in programming is to only use an HttpHandler as a web api, Newtonsoft and use the real power of .Net instead of buying in to  the whole MS forced way of doing things with ASP and MVC.    Then write the front end in Angularjs.  

    Non .Net programmers think of drag and drop developers when they think of .Net programmers but the framework has so much more to offer

    • Carsten

      6/21/2015 9:38:05 PM |

      Have you not heard? Angular is dead ... ;)

  • Jeff Lewis

    6/19/2015 9:15:18 PM |

    There are a number of core problems with your analysis.

    Let's hit one of the basics first: you suggest that a 15 year old language is a dead one. Thing is - Javascript is almost 20. Java is also 20 years old. Yet both of these are gaining popularity.

    The core flaw though is oddly, the same error that people who go on about the 'end of the PC era' make. The demand for C# and .Net hasn't so much died as other things came in along side it. It's not that they lost marketshare (if I can use that term), an entirely different market exploded next to them that looks similar - and of course, that's the web.

    C# is alive and well there in the back end - but it has no place in the front end - and you really don't need as many back end programmers and front end ones. So not surprisingly, the explosion of web development doesn't lead an *increase* in C# programmers - it leads to an increase in HTML/CSS/JS jockeys.

    To show how big of an impact this has had - Microsoft themselves, when rolling out "Metro" apps, originally planned only on HTML/JS and Visual C++ for programming. They had to cave in when the reaction to that was loud and angry.

    Ironically, the huge shift to web programming has actually caused a lack of C# programmers. I get calls almost daily from headhunters desperate to find anyone who can do ASP.Net (see - web AND C#).

    Finally, a lot of your metrics seem to be based not on actual number of programmer - but on 'interest'. Interest is kind of a fickle thing. Look at the Stackoverflow chart - if that's to be believed, we should all run ot and become Swift programmers... well, except it's still a new language and well, it's not widely used yet and getting into the iOS programmer market is entering a small and crowded market... but hey...

    So, no - I'm not going to rush out and become Python fanatic or a Swift fanatic just because of this article. When companies stop trying to hire me - then I'll worry.

    • Phil

      6/25/2015 12:18:01 AM |

      Thanks Jeff,
      The title of this post is "Has C# Peaked?", _not_ "Is C# Dead?", and at no point do I suggest that C# is dead, and there is a section that says should I panic with the answer, probably not, thanks for reiterating this.
      Your points on web and client-side programming also appear to echo the article, and I'm happy to hear that your finding the job market for your existing skills buoyant right now.

  • Catbert

    6/19/2015 9:48:33 PM |

    .Net languages will be around until I see snowballs down here. They're made of luscious, encryptable XML metadata. Its not about privacy. Its about security. Do you actually trust your spy ridden government with any your data? Ever heard of Lois Lerner? How about Eric Holder?
    Indeed is describing their own demise. My HR minions aren't using job boards anymore. Its a waste of resources. They're infested with recruiters. Better talent comes knocking.
    I'll await while you async.

    • ben

      6/20/2015 1:51:15 AM |

      Latest figures show C# much more popular.. Javascript which i have used for 2 years is terrible for large apps its a hacky get it done quick sort of style.

      I think with dnx and corefx C#  is about to undergo a new era .

      • Catbert

        6/20/2015 9:54:00 AM |

        ECMAScript 6 is a major makeover to support the 21 HTML5 APIs. Includes a class specification like angularjs that should make your JS DRIer.
        Look to Cordova. Do it now. Its... something wonderful. Beware the Baha Ullah son, that set you up! And offer all the exits.
        Contemplate this on the Tree of Middle Management.

  • Mateusz Kierepka

    6/20/2015 2:24:06 AM |

    In my opinion, the main problem is not the language C # and .NET. Both are great.
    The main problem is Microsoft, and what the company is doing not what it says. What it does:
    1) More high-profile projects are related to JavaScript (Win.js, Visual Studio Code and typescript),
    2) Xbox one only uses C ++ (there is no support for .NET),
    3) Everywhere in first hear about openness for other platforms,
    4) At the end, support for WPF, ASP.NET, libraries like XNA, Xamarin is odd, inconsistent with the lack of vision.

    • Phil

      6/25/2015 12:10:56 AM |

      Thanks Mateusz,
      I'd agree that Microsoft appear to be allowing more diversity of programming language on their platforms, and to add to your list the recent announcements about support for Objective-C. I don't think diversity is a bad thing for a platform, and I guess C#/.Net will just need to compete on their own merits.

  • Kevin

    6/20/2015 3:45:14 AM |

    This is what i thought.. I was asking this on a forum in linkedin early February this year. I noticed in freelancing site like elance/upwork, jobs posted in stackoverflow, angelist, crunchbase etc. i can see that C# posting has decline, Startup company tends to use Ruby, PHP, and Node.js.
    "Android saved Java".

    In my opinion, C# or .Net will be fine for next few years considering what they are doing it now, open-sourcing, cross-platform (can create/run program on Linux/Mac), and I think THEY should more focus as well in mobile development. I cant find any decent FREE IDE working in C# that can run on Android, iOS, Windows Phone except for XAMARIN. If XAMARIN is free or open source, then C# or any .Net (VB) will be back on track.

    • Phil

      6/25/2015 12:07:56 AM |

      Thanks Kevin,
      I'd agree that Android seems to have had a very positive effect on Java's numbers, potentially significantly more than say Windows Phone.
      Xamarin is a fantastic platform, as far as I know Xamarin Starter is free for small applications and I think the price for Indie developers is competitive: http://xamarin.com/faq#pricing

  • moffata2

    6/20/2015 3:55:06 AM |

    I search less now than I did when I started, doesnt make it less popular just better! Now I'm learning Unity with c# and its unreal!

    • Phil

      6/24/2015 11:55:33 PM |

      Thanks moffata2,
      Yes, new people coming to the language will typically search more for related articles.
      Great to hear you're learning Unity, it's a great system!

  • Greg

    6/20/2015 5:09:51 AM |

    While nobody appears to dispute the findings, it should be pointed out that once you remove mobile, the numbers are a completely different story. Further, as to the demise of any language, C, C++, C# and even COBOL and FORTRAN endure. To my knowledge, the only language that appears to have dropped off the map in my lifetime is Pascal. Also, regarding the popularity of Swift, its increase, understandably seems to be at the expense of Objective-C. I should think C# will be around quite a while.

    • Phil

      6/24/2015 11:53:19 PM |

      Thanks Greg,
      Agreed, I think like C++, COBOL and Java, we'll be seeing C# around for a long time to come, many large enterprises have large investments in it. This post was titled "Has C# Peaked?" not "Is C# Dead?".
      On Swift, it'll be interesting to see with the recent open source announcement from Apple whether it moves beyond iOS and into Linux.

  • CodeStorm

    6/20/2015 6:00:42 AM |

    Coming from, I guess, the more traditional background of C/ C++… I had a go at learning C# almost 10 years ago and, I can categorically say… I’m glad that I did!

    First and foremost, C / C++ will ALWAYS be my preferred language of choice but, C# has, over recent years, proved its worth in gold in developing sophisticated applications incredibly quickly with respect to the older languages.

    And, having recently jumped into a lot of web development work, I’ve taken up other languages like JavaScript and Razor, in addition to C#, when developing MVC / WebAPI projects.

    So… I’m glad to have learnt a number of languages and, I think in this Day and Age, that’s a Good Thing!

    Technology is moving Fast… One cannot stay still forever! Some developers may despair at the thought of having to learn yet another language or languages but, I think that’s a bit short sighted!

    Constantly learning new stuff keeps you intellectually sharp… And, no matter what the current trends may be, there’s always going to be more stuff to learn later on down the road.

    In any case, C# is here to stay… And so are older languages like C / C++

    This article, although interesting, really doesn’t affect anything and, I certainly don’t buy into this idea of “What’s the popular language that I should learn?”

    My advice to that question is, learn as many languages as you can... Don’t worry about the current trends because trends in software development don’t last.

    Learning how to code… No matter what language you use, is the most important thing because you can easily transfer those skills if you decide to learn additional languages.

    • Phil

      6/24/2015 11:50:03 PM |

      Thanks CodeStorm!
      Great advice, and great to here your enthusiasm for learning Smile

  • Luiz Felipe

    6/20/2015 10:01:54 AM |

    This only shows a general trend in fragmentation in all languages. There's a down slope on every language trend and it's caused by diversification of languages.
    You don't learn languages anymore, you learn paradigms and use languages as tools. There are between three thousand to five thousand languages and only about twenty paradigms.
    I don't have any problem with this, I know and use at least ten different languages in a weekly basis.
    This is the demise of the one language only programmer.
    The modern programmer should know at least five different languages and the really exceptional one can learn one language per month until he can program in any language, that happens when you grasp the principal programming paradigms.
    Except for C++, because it's so complicated, and it has subidioms that are like sublanguages and there are twenty or more of them, you never stop stumbling on new things that you didn't know. The real true multipurpose language, that is.
    Long are gone the days of "general purpose languages", and we can expect that "general purpose processors" are going that way too, because we need more performance and it appears that Moore's "law" is going to halt soon, or at least it's slowing down.
    So we need more specialization on tools and less generalization and that is happening to hardware and software and programming languages. And if you can use only one tool you are going to exclude yourself to a niche, it'll be thought for the "one programming language programmer" to fit, except for C++, but C++ got to compete with just everyone.

    • Phil

      6/24/2015 11:48:07 PM |

      Thanks Luiz,
      I agree with your sentiments that there appears to be more diversity in programming languages over time, and people being able to pick more specific ecosystems for specific problems, for example the continued rise of the R programming language for statistics.
      C++ is an interesting language, I've heard the phrase it's five languages in one somewhere before Smile
      I'd also agree that learning new paradigms, at least for long term personal growth, is probably more interesting than learning new languages in the same paradigm with similar features.
      Great to hear that you're embracing and living as a language polyglot, good on you Smile

  • rg

    6/20/2015 4:10:53 PM |

    What you are seeing is more a wave than collapse.

    That is to say you are only taking a snapshot of the big picture.

    As Windows moves online and your going to see lots of change.  I have personally saw three applications that make anything we do web related today look completely like MSDOS in comparison.

    Smart client / Server software unifying all smart devices.  Thats the future and its not as far off as people think.

    C#, Mono, .NET will be the forerunners of all of this as there simply is no other game in town.

    But lets go back in history so we can see the big picture here.

    1.  Date 9/11 - We all get that right?  And for the most part we understand some of the causes such as Cold War fought on others lands.  Exploitation by many sides on and on.

    2.  How does the Internet connect into it all besides being a tool that was used and/or is used for evil intentions?  Many ways.  Could write a book on that alone.  9/11 sent off big flares globally.  Nations needed to be able to monitor and regulate what citizenry can and cant do and more.  Communication limitation is essential for governance even amongst what are coined free nations.

    3.  Data centers are established in various places around the globe.    Where all IP traffic can siphon through.  Took years.  GeoIP comes along.  The ability to filter / find based on locale.  Also gets sold as corporations needed create the connectivity, cellular, this/that, mapping on and on.

    4.  Microsoft release the base editions of Visual Studio free to download.  C# and VB lay slower than PHP in as far as ASP.NET goes.

    5.  EMCAScript and client side (browser side) technologies advance.

    6.  The Open Source PHP community takes benefit with perhaps 30 or 40 projects being sorta viral.  Magento, Joomla, Drupal, Wordpress, Prestashop and other categories as well.  Did you know Wordpress powers about 22% of the Internet and want 50%?

    7.  Smart client mobile technologies take off.  Microsoft buys Nokia.

    8.   Video Gaming takes giant leaps, PS/3 and Xbox 360.  Producing protocols and mechanisms for highly complex data to work smart client / server.

    9.   Cloud computing is born.

    10.  (quite a bit inbetween as technology moves yet faster again)

    11.  The Mono Project kicks full gear platform independent .NET

    12.  Microsoft takes it literally diamond gem .NET and open sources the lions share in support of Mono.

    Ok...  I skipped some.  But the pattern Microsoft has been following is not happenstance and react on a dime.  Its well planned, well laid out and in conjunction with governance of nations GLOBALLY (supported).

    Windows Online is next.  With it, we start the do anything anywhere anytime phase of front line Internet (cutting edge).  Smart client / server applications + cloud.  Why does anyone think Microsoft bought Nokia?  Windows Mobile is a very distant third to iOS and Android.  That will all flip as MS gains distinct advantage via Windows Online, smart client / server + cloud technologies.  Not speaking Azure per se, "cloud" general term as host providers will either be in it or gently fade to history.

    It has taken YEARS for C# / .NET to outperform PHP.  It now does just that.  Its almost a match for Java.  I am sure within a few more generations it will be faster.

    Mono / .NET has all connectivity to mySQL, Oracle, SqlLite and pluthers more.

    The PHP programmers will be flippin' over to C# .NET.  Many already are.

    A recent poll by Stack Exchange showed this.

    Video Gaming technologies are those that are and will continue drive the smart client / server technologies.

    As Windows Online solidifies, game changes.

    As it becomes the "This is what people use" (and I am sure Apple will get its niche) then comes?  Regulatory measure.  Dont have 18 bazillion different things operating out there.  Old school will fall to the new school as its the consumer of the technology that drives it.  Business?  It will link in.  What we think of traditional applications (stand alone and networked) will interface in, eventually changing as well into these new paradigms.

    We can be SURE that another language WILL come over the Horizon from Microsoft.  More than likely already in the works.   But before a ultra high performance managed language comes into developers hands the transition need take place between the old way and the new way of computing and smart devices / unification thereof.  Then a platform is now in place that can be specifically targeted towards higher performance and even more capabilities.

    The Windows Online "timeline of life"  will be the timeline that kills off much, like PHP etc.  GO! or something similar may emerge from Microsoft at "the right time".  To start moving the next incarnation of computing beginnings.

    But for the next "stage" of computing C# is it.  Again, literally no other game in town that can DO everything need be DONE to create smart device unification and begin movement towards regulated Internet.  The Online Windows platform will derive into a "can do this, cant do that".  The public will embrace it as it gives them far far far more capability than they have today, mass market, a WHOLE lot less expensive to their wallets at least short term.  Many of the big players in applications already made or are making cloud based moves, it will continue.

    We are on the cusp sorta kinda of a new age in computing and smart technologies.  There will be much innovation and many (many) will fall by the wayside in time.  The Open Source community will in many ways hand the Internet to Microsoft.  But its really not that "Oh my goodness" type thing.  Its far more than that.  There are cultural issues, issues of security, issues of advancement and much much more.

    Amazing in so many ways and very "How mankind-ish" in many others.

    • Phil

      6/24/2015 11:40:45 PM |

      Thanks rg,
      Some interesting opinions there and a very long comment. Have you thought of starting your own blog?

  • Robert Blair

    6/20/2015 9:45:19 PM |

    Only recently I was helping a first-year developer, just out of college, debug some code in a large .Net system.

    This system is mostly coded in VB.Net, some parts are in C#, and there are some telephony modules in Delphi.

    This young developer was really impressed that I had been coding continuously since 1979. He looked at me in awe - "Wow", he said, "that's like, even before PC's existed!".

    "True", says I, "I learned to code on a TRS-80, my first pro coding was on a PDP-11".

    "Things must have changed SO much since you started coding", he say, "How could you cope with all the changes?".

    "Well", says I, pointing at the screen in front of us, showing a bunch of VB.Net code open in VS 2012, "I started out coding in Basic, and here I am, more than 30 years later, coding in .... Basic".

    • Phil

      6/24/2015 11:37:19 PM |

      Thanks Robert,
      Good for you! BASIC was my first programming language too Smile
      I've been playing with VB.Net recently on some open source projects and I don't understand why so many C# developers are so down on it. It is basically the same language with different syntax, in fact VB.Net has some additional features like XML literals.

  • Fritz

    6/20/2015 10:39:21 PM |

    I think the main problem is the lack of support on Linux. Mono is just a 2nd class citizen on Linux and companies and developers don't trust it.  Will be interesting to see if Microsoft's decision to open source .NET makes any difference. I certainly hope so, as both language and framework are a joy to develop with.

    • Phil

      6/24/2015 11:34:09 PM |

      Thanks Fritz,
      Agreed it will be interesting to see how the Linux story for .Net can improve with the open sourcing of .Net. Time will tell Smile

  • GF

    6/21/2015 9:56:35 PM |

    C# will fade when Microsoft will no longer consider it to be the easy, fast development tool for Windows, and goes back (if ever) to either a compiled langage like C++ or JVM-like langage.. which C# already is.

  • Marcel Kincaid

    6/22/2015 2:06:38 AM |

    I wish Code Project wouldn't feature statistically innumerate idiocy like this.

    • Phil

      6/24/2015 11:31:42 PM |

      Thanks for popping by

  • Matthew Harris

    6/22/2015 7:34:42 AM |

    I think the problem with the stats is that they only show % of total jobs. In 2010 I could get away without doing any JavaScript. The mobile platforms hadn't got going so none of their languages were being advertised as jobs.

    The industry must be getting bigger and more jobs per year are advertised so even if C# had increased in total jobs advertised it could still show a downward trend on those graphs.

    The TIOBE index for June shows it being  top 5 language and rising.

    Everything is compared to % though no firm figures seem to be shown for the totals so all we are seeing is how they are all scrapping it out.

    • phil

      6/25/2015 2:03:22 AM |

      Hi Matthew,
      Thanks for the feedback, I agree it would be interesting to analyse totals too, is that something you'd consider doing? If so I'd love to read it.

  • Walter Weizenauer

    6/22/2015 8:07:05 AM |

    This is an extremely interesting discussion in so far as it involves the future of the industry and our individual futures.  What I am missing from nearly all of the comments is that the significant piece here, in my opinion is the platform not the particular language.  For myself my primary attraction to C# is the similarity to C++ and Java.  C# is inextricably linked to ASP.Net and the windows operating system.  The decline here is inevitable but I foresee a slow decline.  The primary advantage I see is that C# ASP.Net provide a very solid rapid application development platform.  The open source alternatives are better in many ways but if I needed a project completed in a highly competitive environment, maximizing efficient time and development cost, ASP.Net C# and VB is the way to go.

    I just can't escape the sense that Windows is a legacy system and desktop computers will have disappeared from offices the way they have already disappeared from homes.

    Right now I see a tremendous software lag for the new smart phone technology.  We must not judge all technology and its future by something like the IPhone. I did and that was a mistake.  

    • Phil

      6/24/2015 11:25:45 PM |

      Thanks Walter,
      I agree with your sentiments of a slow decline for C#. Large enterprises have large investments in large projects using C# which they are likely to continue to maintain.


    • TheUnhandledException

      6/29/2015 4:13:53 PM |

      I don't think C# is linked to Windows at least not the desktop.  Today 90%+ of the C# work is for server side web development.  Windows as a desktop could disappear and that isn't going to change.  It is too early to say if .Net Core and ASP.NET 5 will catch on outside of Windows Server and IIS but even if it does I don't see back end work slowing down anytime soon.  Honestly I don't know of any C# developer who wrote a "windows desktop app" in that last couple years but that doesn't seem to have changed the demand.  

      As older windows apps especially LOB enterprise apps are replaced with "web apps" it makes more sense to move it to ASP.NET and salvage the existing business tier code than to rewrite it from scratch in a new language.

      Now if you are a C# all I know is WinForms developer I would be very scared but honestly does that developer even exist anymore?

  • Wynter

    6/22/2015 12:53:00 PM |

    My only thought is that we can't really say people are leaving until we know where they are migrating to? Every language has it's core target audience and many are still in use despite being outclassed or outmoded by a newer version. The programming universe is pretty diverse, but to steal from Tolkien there is  no "one language to rule them all".

    Code on!

    • Phil

      6/24/2015 11:30:33 PM |

      Thanks Wynter,
      I think some of the figures here are tracking interest in the language, which in part equates to new people coming in to the ecosystem.
      I'd agree with your statement "the programming universe is pretty diverse", and I think what we're seeing is even greater diversity over time, which I think is probably a good thing.

  • Thomas

    6/23/2015 8:30:39 AM |

    Where to begin, this is classic abuse of statistics for some click bait. Your PYPL diagram is pretty much level for years, and then "falls off a cliff for 2015", well we're only half way through the year, I bet for 2016, the line is at 0!!!
    As for using keywords to gauge trends, have you stopped to think that people aren't researching the language, they're using it now, therefore there is less need to Google "C#". They're probably googling plinq expressions, of lambdas or some other slightly more in depth concept.
    Speaking as a C# programmer, among others, C# has probably the largest standard library, massive industry buy-in and a strong pipeline of new features coming up.

    • Phil

      6/24/2015 11:19:29 PM |

      Thanks Thomas,
      The PYPL statistics for the UK are surprising. However if we look at the same statistics for India and others we see a more modest decline, which would suggest that the values are for the whole year.
      As mentioned in this article there have been question marks raised around the validity of TIOBE's values. Keyword searches do not give a perfect picture, however that seems to be what most of the language indexes appear to use. I think they, along with the other values presented, do give some indication of interest. New users of a language are likely to search for information about it.
      Here is a question for you: in the statistics shown would you agree with rise of C# interest before the peak?
      I agree that the .Net standard library is extensive, and new features like .Net CLR are interesting, time will tell if it reverses the trend.

  • Simon Farmer

    6/23/2015 4:10:25 PM |

    The author completely missed a huge and relevant part of C#'s growth - and that's Unity3D.

    • Phil

      6/24/2015 11:05:32 PM |

      Thanks Simon,
      In London the Unity meetup appears to be the active group featuring C# content, where Unity3D and Mono that it runs on is definitely a positive story. However on it's own it doesn't seemed to have reverse the overall trend seen in the statistics.

  • Erik

    6/27/2015 12:10:35 PM |

    You are drawing the wrong conclusions, and your analysis of the data is faulty.

    First, let's consider the validity of "percentage" statistics.  These depend heavily on the overall total of the pool of data.  It's guaranteed that there were less languages in the pool in 2000 than there are now.  So right off the bat, without weighting to take this factor into account, you can't draw any conclusions about the popularity of any given language today vs 15 years ago, since the baselines have changed.  This makes the numbers highly questionable.

    To illustrate this.  Let's make up some numbers.  Let's say, in 2000, there 1000 developers, and 2 languages.  Let's say C# and Java.  Let's say that the numbers were split 40/60.

    Now, fast forward 15 years and there are 200 languages and 1 million developers.  C# may now have 10 times as many developers using (and liking it), but its overall percentage may now be 10... OH MY GOD C#'s popularity has declined!  Or not.

    Lets also look at tutorials.  By their nature, tutorials spike when a new technology (or version of the technology) is introduced.   Right now, we're waiting for a major shift in C# to be released.. That would be C#6, which is the first major change to C# since 2009's LINQ was added.  One could expect that new tutorial writers are waiting for C#6 so they can publish their new tutorials.

    Then, let's consider that a language like JavaScript would be far more popular because it crosses many other language boundaries.  If you're a web developer, developing in C# and ASP.NET, you would probably also be using JavaScript, but a developer writing in Ruby on Rails would also be using JavaScript, as would a Java JSP developer, and so on...   So this makes some languages show up as a much higher percentage of popularity, and causing the other individual co-languages to drop, even though *nothing* may have changed in C#, Java or Ruby development.   Gone are the days when someone could write in one language their entire career.  Now they have to cross boundaries and be good at many languages.

    Finally, let's look at the shift in development from Desktop and thick Web app development to Mobile and Web Service oriented development.  In addition, let's look at the fact that since all these new technologies are.. well new, there are going to be a lot of interest in them, and lots of tutorials.  This doesn't say anything about their long term usage, or even if they're actually being used as primary development tools.  Interest != Common usage.  Lets also consider that languages like Swift are a blip.  Swift is used in iOS development almost exclusively, yet iOS only accounts for a tiny percentage of all development....  Explain that conundrum.

    The only conclusion we can draw from this is that it's dangerous to draw conclusions from it.

    • phil

      6/27/2015 4:51:38 PM |

      Thanks Erik,
      I can't see any significant uplift in searches for "C# tutorial"  around 2009 to correspond with the introduction with LINQ. The only prominent spike appears to be around 2005 which would correspond with C# 2.0 and generics. Also when describing C# 6,  Mads Torgersen, C# program manager at Microsoft,  has said that it "will mostly provide many small features". This seems along way from your comment "That would be C#6, which is the first major change to C# since 2009's LINQ was added".
      In other places your comments seem to reflect those of the article, for example  "Gone are the days when someone could write in one language their entire career." Which is interesting considering your opening statement "You are drawing the wrong conclusions, and your analysis of the data is faulty."
      I also find it curious that you say "iOS only accounts for a tiny percentage of all development", in which case you may find the figures from Apple interesting: http://www.apple.com/about/job-creation/
      Finally you remark "the only conclusion we can draw from this is that it's dangerous to draw conclusions from it". I live in the UK, where it is not dangerous to write articles,  or to express or debate opinions. I am sorry if you find these things dangerous to do in your region.

  • JerkFace

    6/27/2015 2:26:25 PM |

    Clickbait article. Whatever brings in the page views right? You should right for 24 hr news stations.

    • phil

      6/27/2015 4:53:03 PM |

      Jerkface, thanks for the tip, I'll keep it in mind and thanks for popping by.

  • TheUnhandledException

    6/29/2015 4:31:19 PM |

    Peaked as in reached that max % of marketshare?  Probably.  In 2005 C++, Java, C# (.Net), and PHP combined was probably 90%+ of the potential job listings for developers.   We aren't going back to that.  The landscape is far more fragmented today and I don't think anything is going to change that.  Still C# has a position.  I do wonder what is the total # of developer jobs today compared to a decade ago?  How much does that translate to in term of # of employed developers (not % but raw numbers).  At least in Northern VA the C# job market is very tight.  Maybe it is because C# isn't edgy like Swift.  Sure Swift is more popular but even using indeed's numbers it is popular in the sense it went from 0.1% or listings to 0.2% of listings.  99.8% of listings are still non-Swift jobs.  

    Also I have to think at least in the case of indeed the downward trend from the peak is not due to C# decline.  Take a look at the chart for Java and C++ they show the exact same trend.  Peak around 09 downward trend to 14 and then a small pop in 15.  The fact they so closely mirror each other makes me think either indeed's data is skewed or if it does really reflect global demand that is reflecting a larger macro-economic effect (large enterprise putting off enterprise scale applications due to economic slowdown?).

Comments are closed