back to article Developer survey: C# losing ground to JavaScript, PHP and Java for cloud apps, still big in gaming

A new developer survey has shown the popularity of C#, the primary language of Microsoft's .NET platform, slipping from third to sixth place in three years, though usage is still growing in absolute terms and it is particularly popular in game development. Research company Slashdata surveyed over 17,000 developers globally for …

  1. karlkarl Silver badge

    The data is strange...

    It says that CSharp is more used for games? I know for a fact that C++ is still more used in games. Even with Unity aside.

    Does the fact that Unity and UE4 are both written in C++ not count?

    Likewise desktop applications are very much C++ rather than C#. Mostly to avoid the requirement for bindings...

    This data seems to be missing out on a lot of complexity.

    1. cornetman Silver badge

      > Does the fact that Unity and UE4 are both written in C++ not count?

      The survey is counting developers and I suspect that there are a lot more users of Unity compared to developers of the engine, and those users would be writing mainly game script. That seems to make sense to me.

      Disappointing to see Rust being the laggard at the bottom of the table though and surprising to see the big uplift in C++: I though C and C++ were in steady decline.

      1. karlkarl Silver badge

        Ah I see. Fair point.

        I think in some ways that is what got me. The importance of C and C++ is as high as ever because it almost underpins everything (i.e even Rust via LLVM) and yet the number of developers commonly using it day to day, I thought was going to be fairly low. Either due to skills shortage, time constraints, etc.

        And that is why I assumed the data must be referring to SLOC rather than developer count.

      2. NetBlackOps

        Rust was designed for system programmers so it isn't a total surprise at its placement on the list. For games and applications, C++ is my weapon of choice, at the moment. On the other hand (I also have a degree in economic, sue me), I'm also using C++ for AI/ML, but that's due to the fact that the extent tools don't support my approach at all.

        1. Anonymous Coward
          Stop

          >Rust was designed for system programmers [ ... ]

          No it wasn't.

          Rust was designed for developers who can't handle pointers. Java - Python - Go lineage.

          That's not system programmers. System programmers use C and assembler. Yes, even today.

          Sorry, but that's the way it is.

          1. Anonymous Coward
            Anonymous Coward

            That does not really say much about what the language and what it was designed for, does it?

            1. Anonymous Coward
              Anonymous Coward

              > That does not really say much about what the language (sic) and what it was designed for [ ... ]

              It's hard to tell what Rust was designed for. Certainly not systems programming.

              This is Eric S. Raymond's take on Rust. And I agree with him.

              Rust lowers its AST to LLVM IR. After that point in the transformation chain it relies on LLVM for code generation. Binaries produced by Rust are unjustifiably larger in size compared to equivalent binaries produced by C or C++.

              1. Tom 7

                TBF he did only spend a week on it. Anyone who is under 50 and thinks they can get a vague feel for a language in under 6 months needs to do more programming.

                1. Anonymous Coward
                  Devil

                  > Anyone who is under 50 and thinks they can get a vague feel for a language in under 6 months needs to do more programming.

                  Really.

                  This is Hello, World! in Brainfuck:

                  ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

                  Do you really need 6 months?

                  1. ElPedro100

                    Upvoted because I love Brainfuck for code golfing but I certainly wouldn't want to write any kind of serious application with it no matter what type!

              2. Robert Grant

                > This is Eric S. Raymond's take on Rust. And I agree with him.

                To be fair, that was almost 4 years ago.

        2. cornetman Silver badge

          I thought that Rust was developed for Mozilla's Servo browser component.

          It has been touted as a possible future replacement for C and C++ for low level and systems programming because of its security guarantees and theoretical efficiency.

    2. StrangerHereMyself Silver badge

      It doesn't really matter since in the coming few years I foresee most game developers moving over to Rust due to its quality and stability (no more memory related snafu's).

      Even though game engines are written in C++ doesn't mean they can't be called by C#. See C# as a high-quality scripting language as it were for developing the parts of the game which are less performance constrained.

    3. bombastic bob Silver badge
      Devil

      This data seems to be missing out on a lot of complexity.

      The TIOBE index has always (in my opinion) been a more accurate indicator of language popularity, and it has consistently shown a predominance of Java and C (with occasional jockeying for 1st place) followed by various other languages (including C++). C-pound is generally much lower, currently at around 4.1 percent.

      Currently Python is bumping up, challenging Java, which has dropped significantly. I suspect this is only temporary, though. There was a temporary downward bump for C in mid 2017 for some reason, possibly due to introduction of new languages in certain highly visible public projects (I'm thinking Rust but I can't tell from the chart).

      And for October 2020, closely following C-pound at 4.1%, is VB at 4%, and JavaScript is at a pathetic 2.1%. This is a _bit_ different from the values in the article, which put JavaScript and C-pound at significantly higher percentages.

      Programming language surveys can easily be corrupted by improper sampling, and the way the questions have been worded. I think TIOBE's statistics, which have been collected and tracked for DECADES, are a much better representation of where things are REALLY going.

  2. Anon321

    PHP / JavaScript & Python

    PHP / JavaScript & Python are about as Complex as

    Java or C++ / MFC , Win32 Programming.

    You need Developers with 10 Years Experience.

    1. Tom 7

      Re: PHP / JavaScript & Python

      Only for the simple stuff. I've been doing this shit for 45 years and I'm still learning. Languages need to be complex because the problems space is complex. Having said that everything can be done in 7 instructions of the Manchester Baby with a slightly larger storage screen.

      1. MacroRodent
        Mushroom

        Re: PHP / JavaScript & Python

        No. Languages do not need to be complex. They need to be well-designed. In my experience, complex languages just create time-wasting problems for developers. (C++ is the worst of the worst of the worst in this respect).

      2. Electronics'R'Us
        Holmes

        Language complexity

        To solve a complex problem does not require a complex language; it requires a well designed expressive language that is appropriate for the application space.

        I would not try to use JS in a bare metal project with a microcontroller (where C truly excels and yes, C has its issues but they are manageable) and I would not try to use a purely interpreted language where performance is a major issue.

        The appropriate language for the appropriate problem is far more important. The problem may be complex, but what we are trying to do is describe the solution in an elegant manner. There is a reason we speak of the elegance of simplicity.

        Adding complexity to a language invites problems (or sending it to the land of rm in a couple of cases) as it becomes harder to actually describe the solution.

        So give me an elegant language, not a complex one (and one where I can understand a function without having to dig through multiple files).

        1. Tom 7

          Re: Language complexity

          But if that complex language is complex because it was designed to solve the problems your elegant language wasn't it turns into the elegant solution.

          The appropriate language for the appropriate problem requires appropriate programmers. I used to write in whatever language the people I worked with wrote in and found whichever language I wrote in if it lacked a feature I felt was necessary for the project I'd try and construct it in the language we were using, or build the tools to enable it.

          Elegance is a fashion choice.

  3. Anon321

    Java & C# & Lotus Notes

    Companies will use Java for Large Mission Critical Apps.

    Due to the Fact that there are Several Suppliers of Java Software.

    Netbeans, Weblogic, Jboss, Eclipse, Open Java, Tomcat. e.t.c.

    Companies will use C# for Small and Medium Sized Non Critical Business Apps.

    This is More True Now since we have Cloud Servers that Companies can

    buy and run themselves like an Exchange Server. No need for Infrastructure Guys.

    C# is like Visual Basic. For the Earlier Versions I could write a Translator that would

    map C#.Net to VB.Net. A Change in C# would show in VB.Net immediately and

    a Change in VB.Net would show immediately in C#. An Overlay Translator.

    Although C# / VB.Net is easier than Java. Majority of Companies struggle to

    program in it. Universities don't teach Programming Properly. It Takes about

    5 Years for C#.Net / VB.Net and about 10 Years for Java or C++ / Win32 or MFC

    Windows programming. 1 or 2 Semesters isn't enough. So for that reason there

    is a Need for Lotus Notes / MS Access type of Programming.

    1. druck Silver badge
      Joke

      Re: Java & C# & Lotus Notes

      Do

      you

      get

      paid

      per

      line

      of

      code?

    2. karlkarl Silver badge

      Re: Java & C# & Lotus Notes

      "Due to the Fact that there are Several Suppliers of Java Software."

      You should check out how many C compilers exist in the wild. Including the embedded ones, you will probably arrive at over 100!

      1. Anonymous Coward
        Anonymous Coward

        Re: Java & C# & Lotus Notes

        "...check out how many C compilers exist in the wild... you will probably arrive at over 100!"

        To me honestly, it's more like 2 or... a bazillion. It's not really a fair comparison as all you have to really do is target in C, but in Java you have to target, then that target targets which makes Jave more like an "app" and can add an element of babysitting.

        However, is "Several Suppliers of Java" actually a good thing? Over the years (since ~2000) I feel that the variants of JVM's has built traps for customers more so than the "Java Trap" itself. I couldn't imagine if you have licensed them all for different projects then a day comes where you have to completely exit Java... if a COBOL exit looks messy, then what does a Java exit look like?

    3. Charlie Clark Silver badge
      Facepalm

      Re: Java & C# & Lotus Notes

      C# is like Visual Basic.

      Sort of says it all really.

      1. jilocasin
        WTF?

        Re: Java & C# & Lotus Notes

        Not really. C# is more like a more modern, slightly less verbose Java.

        1. Charlie Clark Silver badge

          Re: Java & C# & Lotus Notes

          I know that, but the OP obviously doesn't.

        2. a_yank_lurker

          Re: Java & C# & Lotus Notes

          Both Java & C# are overly verbose for my tastes.

    4. Pascal Monett Silver badge

      I appreciate any support given to Lotus Notes development, but pairing Notes with Access indicates that you don't understand how one of the two work.

      It's not because we call it a database that it is the same thing on either platform.

      1. ElPedro100

        Agreed and anyway Lotus Notes isn't a language. Any half decent Notes/Domino programmer will need to know Formula, LotusScript, Java, JavaScript and whatever else has been introduced since I moved away from it 5 years ago.

      2. Anon321

        Notes & Access

        I do know what Notes and Access are. Notes is a Document database Store where Access is more of a Relational Database. Notes is Easier than Access Programming. Framesets and Pages is an Easier way of Making and Navigating an Application as Compared to how MS Access works. Access Page Design and Application Navigation is more Flexible and more complicated like Visual Basic.

        However, do Companies really need Pinpoint Graphics. All they need is A Functional Application that Works.

        Notes is not a Relational Document Store and it NEEDS TO BE. Sales Order Documents NEED to be RELATED to Companies being Shipped to.

        What's happened is IBM has been going to Companies for Software Development Work. Those Companies in order to Ruin IBM have been Asking them for All sorts of Exotic things they don't need. However, doing this to waste IBM's time and Money whilst they themselves work on something more productive. So IBM has been working on Full Java and Eclipse Programming, Not developing Notes.

        YOU'D BE SURPRISED AS TO WHAT YOU COULD DO WITH A RELATIONAL DOCUMENT STORE.

        You've got Two Choices. Use RELATIONAL NOTES for Something Simple or Use Visual C# for more Complex Work. Pay for Two Years work or Five Years. Your Choice.

    5. Anonymous Coward
      Anonymous Coward

      Re: Java & C# & Lotus Notes

      It's almost like you aren't actually competent with C# or VB.NET because you seem to be missing the whole point of IL and .NET, in general.

      And yes, there are plenty of companies doing mission-critical apps based on .NET. I would know because I've built quite a few - ones that you have directly or indirectly used, assuming you live in a first world country.

      The main reason Java is used, frankly, is because it's what's taught to the offshore body farms which provide cheap labor. Even at that, the vast majority of the time they screw that up. I have some rather direct firsthand experience with the matter having worked in large consultancies and for two companies that consume services from large consultancies or body farms (Accenture in the former, Infosys for the latter). In a very recent head to head, .NET Core was used and one change was made to released code for defect fixes vs. 50+ for Java, in spite of .NET Core comprising about 80% of the code base. So let's let that sink in.

      C# is not quite as much of a commodity because those firms don't want to go retrain 10s of thousands of devlopers from writing bad code in a better language when they can write bad code in their existing language.

  4. I code for the bacon

    Don't you...

    Remember the adage "There is a God, but he drinks", seeing how quite a number of well-designed and powerful languages have been in existence for many years, and the most used is... JavaScript.

    1. bazza Silver badge

      Re: Don't you...

      Yes, JavaScript’s popularity is a dismal state of affairs. Though the figures do also include those using TypeScript, which to MS’s credit does attempt to restore some rationality to that world.

      I think that the rise of Web tech for cross platform applications is worrying. There’s some good ones eg VS Code, but even that’s now beginning to be enormously bloated and showing signs of creaking when things get difficult. Web stuff basically sucks, and if something like C# can become properly cross platform (WPF please) then that may end up being the best choice.

      1. NetBlackOps

        Re: Don't you...

        So far, na gonna happen. WPF remains Windows only, so you are stuck, unless you like Xamarin.

        1. Anonymous Coward
          Anonymous Coward

          Re: Don't you...

          There will MAUI (Multi-Platform Application User Interface) coming with dot net 5 and general release in dot net 6 to enhance (replace?) Xamarin.Forms.

          Just need to see how cross platform that really is.

      2. Tom 7

        Re: Don't you...

        I tend to think of TypeScript as MS's attempt to prevent JavaScript being good. In the early 21st C Mozilla came up with real OOP things in their JavaScript2. I installed it in my browser and within a week or two I'd created an introspective GUI toolkit that, embedded in VB Active Server Pages let me run riot. MS and Apple saw to it it wasnt accepted and no-one seems to be able to agree that fixing JS is possible because having an open-source working browser language will just kill off most of their land grab attempts.

        1. Anonymous Coward
          Anonymous Coward

          Re: Don't you...

          Javascript is more than capable of preventing itself being good without any assistance.

    2. Tom 38

      Re: Don't you...

      Javascript being at the top of the pile just reflects that the platform most developed for these days is the web, plus it also has the lowest barrier to entry. As well as the (I imagine) few people who are doing server side node development in JS, this survey also captured anyone doing anything web related who uses Python+JS, Ruby+JS, Java+JS, C#+JS.

    3. Kubla Cant

      Re: Don't you...

      The weird thing is that JavaScript is shown as most popular in "Web, Cloud".

      Web, obviously, and I know people write server-side applications for NodeJS. But I'm surprised, not to say disappointed, to find a misbegotten browser scripting language leading the field in the cloud.

      Python is apparently most popular in IoT apps. If I was a Python enthusiast I'd keep that quiet.

  5. Anonymous Coward
    Facepalm

    Gartner

    Surveys like this are like beauty contests and have no more meaning than Gartner Trends reports.

    They might be fun to argue about but it's not like any of us, or anybody else (except, maybe, clueless suits) are going to switch to a language because of this survey.

    1. Len
      Happy

      Re: Gartner

      True, though isn't one of your future employers going to be swayed by surveys such as these (and Gartner)?

      1. karlkarl Silver badge

        Re: Gartner

        Hah, very true. Though I doubt they will know how to access a comments section to read the arguments.

  6. lowwall

    This one goes to < 11

    C# is least popular in data science, machine learning and mobile, the report added. The categories of web and cloud are not mentioned in the context of C#, indicating middling usage, whereas JavaScript, Java and PHP score strongly in those areas.

    Reminds me of something. Oh yes, here we go...

    Ian Faith: The Boston gig has been cancelled...

    David St. Hubbins: What?

    Ian Faith: Yeah. I wouldn't worry about it though, it's not a big college town.

  7. StrangerHereMyself Silver badge

    C# will bounce back

    I don't see JavaScript as a real programming language in the first place. In addition, many web designers, of which there are many, use some JavaScript in their day to day work which skews the numbers. Also, some of the brave ones (or stupid ones depending on your frame of reference) are using JavaScript to develop LOB (line of business) applications using NodeJS. This too increases its marketshare.

    However, now that Microsoft has introduced Blazor I foresee that a lot of the web client development will bounce back towards C#. So I'm not worried at all.

    In my opinion C# is the greatest computer language ever created (I also like Rust a lot, but don't like the syntax, which IMHO is different just to be different and with no good reason) and I look forward to using it for decades to come.

    1. Sceptic Tank Silver badge
      WTF?

      C# is the greatest computer language ever created

      I take it you've never attempted to write a math library using generics? What a disaster.

      1. StrangerHereMyself Silver badge

        Re: C# is the greatest computer language ever created

        I mostly use it for LOB applications (both web and desktop) for which it is perfectly suited.

        What I'm really craving for is a language with the features or Rust and the syntax of C#.

      2. Tom 7

        Re: C# is the greatest computer language ever created

        Don't use generics then.

      3. a_yank_lurker

        Re: C# is the greatest computer language ever created

        JS may not be the best designed language but it is a real programming language and there are plenty of poorly designed languages. C# is fine language when it used where it is best; this is actually true of any language. The real advantage of C# is the ubiquity of Bloatware-as-a-disservce in business and that the Rejects of Redmond designed it to readily support Bloatware.

        On a more philosophical point, there is no single 'best programming language'. There are languages that are very good various usages. And all reek at some usages. So the intelligent programmer and designer try to use the language(s) that are the best fit the usages they regularly see.

        1. StrangerHereMyself Silver badge

          Re: C# is the greatest computer language ever created

          Java, Pascal and C# are general purpose computer languages, whereas the many domain languages, such as LISP, Haskell and SQL, are only useful in a specific set of problems. C, C++ and Rust are systems programming languages, intended for low-level programming (operating systems, device drivers), but we're misusing them as application programming languages.

          JavaScript is really a scripting language and as such not a "real" computer language, although it's being abused these days to fit that role (badly I might say).

    2. James Anderson Silver badge

      Re: C# will bounce back

      After some 50 years of coding in several languages.

      Real paid work in COBOL, Assembler, Fortran, Rexx, C, perl, bash, Java, python, javascript, php and a bunch of obscure 4GLs.

      Plus some dabbling in lua, VB, Groovy, GO, C# etc.

      I can honestly say that in spite of some failings the javascript/php combo is the best web development option.

      Java is OK -- but J2EE is hell on earth.

      Of the new languages "GO" is favourite, really useful easy to write clear working code and a nice set of libraries that do most of what you want., although for serious low level coding C is still tops.

  8. Sceptic Tank Silver badge
    Windows

    Agile C#

    Microsoft seems to be using some form of agile methodology in their ASP.NET team because every time there is a new release of the lib a great deal of thing are broken. The time and effort required to go and fix code that was working, every time there's a new version of ASP.NET makes it utterly useless. I'm guessing that's why a lot of developers are fleeing the scene there. In the Bill Gates years MS used to be all about backward compatibility. That made financial sense for the time and money invested in software development. Looks like the newer generation as MS simply don't understand that, and that time lost constantly having to re-work you code to satisfy their whims eats into project budgets and company competitiveness.

    1. StrangerHereMyself Silver badge

      Re: Agile C#

      I guess the didn't read the chapter on Unit Testing in the Agile book.

  9. Len

    Python least popular for web?

    I am a bit surprised to see that Python is least popular for web. Isn't that what frameworks such as Django and Flask are for? I thought people were raving about how quickly you could get advanced web apps off the ground with those.

    1. James Anderson Silver badge

      Re: Python least popular for web?

      Python does not perform! It eats cpu and memory.

      Plus with fifteen different frameworks to choose from it just seems easier to stick with php which was specifically designed to serve web pages.

      1. Len
        Thumb Up

        Re: Python least popular for web?

        OK, thanks. I wasn't aware of that. And is that still the case with the latest version of Python and Django/Flask? One would assume fixing this would be a bit of a priority.

        I am just an outside observer on this topic, though trying to understand these things as I do some times need to make ballpark decisions on these things.

      2. Charlie Clark Silver badge

        Re: Python least popular for web?

        Python does not perform! It eats cpu and memory.

        In comparison with? Benchmarks? 10 years ago maybe but that was largely down to how it was used rather than the language itself. Now it has similar requests/sec stats as other languages performing the same tasks, especially if run through the PyPy JIT.

        Python is in use in lots of big websites but the server-side, whether it's Python, PHP or whatever, has become much less important than the frontend and the heap of JS frameworks that do most of the rendering directly in the browser.

        1. StrangerHereMyself Silver badge

          Re: Python least popular for web?

          Wasn't YouTube orginally developed in Python?

          1. Charlie Clark Silver badge

            Re: Python least popular for web?

            It certainly did use Python but not AFAIK for the web server, otherwise the APIs might be a little less strange. Python was certainly used for the "plumbing" and this is one of the things Google found Python wasn't so good for was the moving of massive amounts of data between systems. It was one of the main drivers behind Go, which compiles nicely and makes certain forms of parallelisation easier. Though it's also true that most companies will never need to do the same kind of thing on anything like the scale that Google does.

            Python still is in use because it generally provides good, reliable solutions developed within an acceptable timeframe.

            1. StrangerHereMyself Silver badge

              Re: Python least popular for web?

              i always cite YouTube and Python as an example that the most important thing in web application performance is CACHING.

      3. Anonymous Coward
        Anonymous Coward

        Re: Python least popular for web?

        ...Python does not perform! It eats cpu and memory.

        I was wondering why my machine feels lighter than it used to.

  10. itzumee

    Why...

    ... did they lump TypeScript and JavaScript together?

    1. Anon
      Trollface

      Re: Why...

      Yes, JavaScript should obviously have been lumped together with Java instead.

  11. Anonymous Coward
    Anonymous Coward

    JavaScript

    Hate it with a passion.

    You can open any web page and see the reams of JavaScript libraries and code to see how much it's in use.

    No-one seems to writes optimised, elegant code anymore for web pages, considering low bandwidth people or those with screen readers and AA/AAA accessibility requirements.

  12. poohbear

    Cherry picking

    This report cherry-picks certain industries... : mobile, desktop, IoT, cloud, web, games, augmented and virtual reality, and data science and machine learning.

    Missing: legacy corporate code that still gets maintained daily, and probably assorted other categories.

    So this is STILL not an accurate picture of the development world.

    1. sgp

      Re: Cherry picking

      And if it picks data science: where's R?

      1. Tom 7

        Re: Cherry picking

        Rising out of control in most cities.

  13. Anonymous Coward
    Anonymous Coward

    PHP is a crime, my boss made me put laravel code into a Lambda Function and now I am looking for another job.

  14. Xavylon

    Powershell C#

    While this article may have brought up some relevant observations of C#'s use in the traditional sense of development, the article understandably negates a commonly taken for granted use of the C# syntax in the area of Dev Ops: namely Powershell.core. As can be referenced by the phasing away of the MCP programs by Microsoft, the same company has bartered for a new direction of software creation. Current trends are moving away from compiler-based development ushering in a new trend of what may be called "modular" development. Powershell.core is one of the leading implementations of this trend as the platform can be ported virtually to any Windows or non-Windows machine such as Linux. In fact, many of the common libraries of the .Net framework have been conveniently incorporated into the Powershell.core syntax. The deployment of many Azure services are also bound in PowerShell modules. So long as orchestration technology remains an industry need in the areas of IoT, Cloud services, APIs, and micro-services, it will be a safe bet to say that C# will continue for many decades to sound off as a popular language for IT solutions.

  15. BrianProgrammer

    There was a survey?

    After checking with my team, none of us knew that slashdot even ran a survey. It's not like slashdot is the penultimate source of C# knowledge. If this was the same result from other sources (Like JetBrains, where trending lines are more important than hard count), then I would consider this news.

    I know, lets mine stack overflow for their activity per lang and see who has more activity, and complexity, that may be a lot more accurate.

    Bottom line, based on other comments, and my own investigation, I qualify this piece as another hit piece in line with the decade of C# or .NET falling from grace statements that I am getting tired of hearing. After 10+ years of hearing how much the industry hates or is getting rid of C#, I am shocked that anyone gives credibility to these types of articles.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like