back to article What's the top programming language? It's not JavaScript but Python, says IEEE survey

Python is the "de facto platform for new technologies," according to research by the IEEE in its Spectrum publication. The new survey places Python, Java, C, and C++ as the top four programming languages. JavaScript, which typically tops such surveys, is in fifth place. By contrast, StackOverflow reported earlier this month …

  1. David Woodhead

    QB4.5

    QuickBasic 4.5 for me - I still have the manual.

    One of my very few claims to fame is that I wrote the interpreter in compiled QB4.5 for a high level interpreted language (which I also created) used for developing touch screen applications, Mind you, this was in the eighties when touch screens were indistinguishable from magic, and when there were actually a lot more diverse technologies than nowadays. We sold a few copies though.

    Oh, sorry - it's new technologies we're looking at (goes back to shaking fist at clouds ...)

    1. NoneSuch Silver badge
      Thumb Up

      Re: QB4.5

      You're not wrong. QB4.5 has been a god send at times. It's simple, efficient and keeps exe's small. I still use it to this day for parsing data and translation between systems. The code is easy to follow and it has a very small footprint.

      In the early 90's I wrote a 24k program in the first iteration of Visual Basic and I needed five floppy disks to send it out. Each successive programming language gets bloatier and bloatier. In many ways we've gone backwards. My machine coding days are some of my best as I look back.

  2. adam 40 Silver badge

    What do electrical engineers

    ... know about programming?

    You may as well have asked the The Association of Plumbing and Heating Contractors....

    1. Philip Storry
      Coat

      Re: What do electrical engineers

      Yeah! You may as well go and ask the guys who defined the standards for wired and wireless networking, floating point arithmetic, software requirements specifications and the software development lifecycle!

      Oh, wait, that would be the IEEE.

      I'll get my coat, and yours too whilst I'm there...

      1. PerlyKing Silver badge
        Happy

        Re: IEEE sets the standards

        So the IEEE defines the standards. That sounds rather like providing the tools for programmers; by that analogy the guy who made Leonardo's brushes is responsible for the Mona Lisa!

        1. Phil O'Sophical Silver badge

          Re: IEEE sets the standards

          That sounds rather like providing the tools for programmers

          Llike Python, JavaScript, etc.? I'm sure Leonardo's brush supplier could have made a good guess at what he was working on at any given period!

          1. PerlyKing Silver badge
            Happy

            Re: IEEE sets the standards

            Guido van Rossum and Brendan Eich both have degrees in Computer Science, not Electrical Engineering. I don't know about Et Cetera's education ;-)

            My semi-serious point was that while defining standards for arithmetic models and protocols for interaction are difficult and important, they're really a different discipline from programming. Being a great brush maker doesn't make you a great painter; conversely, being a great programmer doesn't make you great at defining wireless communication protocols.

            1. Imhotep Silver badge

              Re: IEEE sets the standards

              A imagine a great many IEEE members are programmers. Many become members in college and their available subscriptions cover software engineering, AI, information theory, internetworking and on and on.

              They provide a great way to keep up to date in your field.

        2. Scene it all

          Re: IEEE sets the standards

          Actually, industry groups create the standards and then submit them to the IEEE for their stamp of approval. Ethernet was created by Xerox and DEC.

      2. elaar

        Re: What do electrical engineers

        To be fair, IEEE consists of Electrical AND Electronic engineers.

        Electronic engineers often know a lot about programming, Electrical engineers not so much, hence why the IEEE is a collaboration between the two.

      3. Ken Moorhouse Silver badge

        Re: Oh, wait, that would be the IEEE.

        They would seem to have a detailed knowledge of Microsoft too, judging by the name.

    2. Imhotep Silver badge

      Re: What do electrical engineers

      I was a member of IEEE and spent my career in IT.

      If you're not familiar with it, it has some excellent publications and it's members are the ones setting and defining standards in the IT field.

  3. Anonymous Coward
    Anonymous Coward

    JavaScript is the most asked-about and most-libraried language, because it is a nightmarish hellscape of unexpected sharp edges that only works when essentially completely replaced with a flash-in-the-pan framework like React/Vue/Angular/Ember/Svelte and supported by a myriad of blindingly obvious single purpose function libraries that really ought not to exist.

    1. Steve Button

      You could say the Taliban are probably a very popular government based on the amount they have been searched for in the last few months, but does that mean they are any good?

      Personally I think JavaScript is slowly catching up*, and not quite as bad as it was a few years ago. And that's probably the best I can say about it, but I'd far sooner reach for Python for many projects (or Go or Rust) although I guess JS is still king for front end? (which I have very little to do with TBH).

      * we've moved away from the Taliban analogy at this point.

      1. NoneSuch Silver badge
        Thumb Up

        I'll look forward to your comparison of Sharia Law to PowerShell.

        1. Anonymous Coward
          Anonymous Coward

          I'll do it for you. One of them is a vicious, primitive, oppressve ideology that causes untold misery and pain to anyone who comes near it. The other has something to do with Islamic fundamentalism.

    2. qneill2021

      JavaScript - creating future programming tasks spontaneously as you develop

      1. RegGuy1 Silver badge

        Ah yes. Javascript, Python and the rest, with their first-class functions. All children of Lisp. Now there's a totally different way to think. Recursive functions anyone? You at the back there, Church. Stop chatting to Turing. What do you think?

      2. Anonymous Coward
        Anonymous Coward

        "If more languages had _smite_ implemented, the remaining programmers would be better than the current average." -- Mike Andrews in the scary.devil.monastery

    3. Adrian 4 Silver badge

      Conversely, Python generates more questions because you never know if the code you have will be compatible with the version you installed.

      Amusingly, it's supposed to be superior to Perl because Perls is a write-only language. Python may be clearer, but it's still write-only because it has a too-rapidly-changing standard.

      1. Richard Plinston

        > it has a too-rapidly-changing standard.

        2 in 30 years?

        Actually it is quite easy to write code that runs perfectly with both Python 2 and Python 3 using the futures module.

    4. John Sager

      I've actually just done a small project using javascript for the first time, but with a Python back end. It's for listing voicemails & calls on Asterisk. I started off doing it all via cgi with Python but to handle buttons & events generally I opted for jQuery & moved the HTML & some logic to the HTML file. It's changed my mind a bit about javascript as before, I saw it as having a terrible syntax. Of course Python is still my go-to language for all sorts of small projects, and it has taken over from C for most things.

      I can imagine, though, that I might have a somewhat less rosy view if trying to do a large website.

  4. elsergiovolador Silver badge

    To be or not to be

    I think the top programming language is English. It is what the most propaganda is being written in and made us behave against our own interests.

    Then we have Python that is powering the machinery of sophisticated pattern matching machines otherwise called the AI that analyse our behaviour and effectiveness of such propaganda.

    Then we have Java Script that is used a carrier of actual programming that is going on (at least online).

  5. martinusher Silver badge

    Misunderstood purpose

    Reading the boards gives me the impression that the motivation behind this is not what language is best suited to solving particular problems but rather what can get you the highest paying job with the least amount of learning. Python's good for a lot of things, its easy to write, flexible and reasonably efficient, but the one thing it can't do is write its own support libraries. JavaScript is popular because its not only the mainstay of website programming but its such a confused, torturous, mess (along with the entire DHTML cabal) that you need droves of young, energetic, programmers to burn out. Then there's the niche languages, all promising to eliminate logic and construct errors by design (ADA, anyone?).

    As for "what do engineers know about programming?", that's simple. We invented it (and we certainly invented the platforms that run the software).

    1. Richard Plinston

      Re: Misunderstood purpose

      > niche languages, all promising to eliminate logic and construct errors by design

      I initially read this as:

      niche languages, all promising to (eliminate logic) and (construct errors) by design

      But I suspect that this should be read as:

      niche languages, all promising to eliminate (logic and construct errors) by design

    2. HildyJ Silver badge
      Windows

      Re: Misunderstood purpose

      "ADA, anyone?"

      Oh, god, I remember ADA from the 80s. And I wish I didn't.

      1. Anonymous Coward
        Anonymous Coward

        Re: Misunderstood purpose

        Why not Pascal - Pas2js spits out JavaScript?

      2. Blank Reg Silver badge

        Re: Misunderstood purpose

        If could be worse, it could be Algol

      3. SCP

        Re: Misunderstood purpose

        I remember Ada from the '80s, '90s, '00s, '10s. Enjoyed it, particularly when Ada95 sorted out several of the weaknesses of Ada80. Didn't get to use the features of the later versions of Ada (the nature of the work did not need them) - but looked interesting.

  6. a_yank_lurker Silver badge

    Beauty Contest

    The various rankings are over glorified beauty contests. The methodology relies on searches, page hits, etc. not on an actual survey of programmers and what languages are used professionally.

    1. Blank Reg Silver badge

      Re: Beauty Contest

      Right now I'm using Java 99% of the time, and I rarely need to search for anything as everything is in the JavaDoc. But 99% of my programming related searches would be for Javascript and Angular issues, and there are many, and poorly documented so finding answers is more difficult

      1. a_yank_lurker Silver badge

        Re: Beauty Contest

        One of the primary languages where I work is rather obscure. Almost any technical resource is either in scattered documentation in house or in someone's head. Web searching is pointless.

  7. Kevin McMurtrie Silver badge

    Probably right

    JavaScript has become fragmented by derivative languages that are transcoded into JavaScript. If you look into the corporate source repos, you find very little authentic JavaScript.

    Python seems to be the new duct tape of the world. Despite it being an excellent scripting language, this is an unhealthy popularity that's going to give it a the same junk code reputation that PHP and Java have.

    1. bombastic bob Silver badge
      Meh

      Re: Probably right

      Python seems to be the new duct tape of the world.

      good analogy.

      Python seems as if it is often used (or insisted upon) where it is really NOT fit for purpose but can be shoehorned in with extra time and tenacity.

      Reminds me of how a DJango server that I took over was doing many things in Python that it should not have. I re-write the worst offenders in C, then passed files and piped stdio to/from them (called them as external utlities) and sped up the process at LEAST ten fold, so that uploads from smart phones took WAY less than a minute to crunch the data (instead of over 3 minutes - imagine waiting 3 minutes to upload files because of Python data inefficiency - YUCK!)

      that is just ONE example. ALSO not a fan of all of those external dependiencies. If you must have pip and a special environment to run your Python program, you're doing it wrong...

      1. Charlie Clark Silver badge

        Re: Probably right

        Rinse and repeat the Django example with almost any largish web framework in any language. Tramlines was written years ago for Zope to allow for better handling of file IO, and Pyramid more or less mandates this.

        This isn't related to the language but to the tendencies of developers to try and do whatever they need to do with the tool they know best.

        1. bombastic bob Silver badge
          Unhappy

          Re: Probably right

          try and do whatever they need to do with the tool they know best.

          and when all you know how to use is a hammer...

          Yeah Python is "fit for purpose" for a lot of things, like a hammer. Just not EVERYthing.

  8. Richard Plinston

    Survey basis

    > Or which have most job opportunities?

    That would seem to favour languages for which there are the most empty desks. The reason they are not filled may be that few want to use that language.

    > how much code is written in each language?

    That would favour verbose languages (COBOL, Java) where everything has to be re-invented for every project. Or, possibly, where developer productivity is measured by number of lines of code written per day.

    > Google Search and/or tutorials

    That would relate popularity of a language to the number of people who don't know it.

    It seems to me that Javascript is high on every list because it it hard to avoid when doing web development even when any other language would be preferred.

    1. Irony Deficient Silver badge

      Re: Survey basis

      Or which have most job opportunities?

      That would seem to favour languages for which there are the most empty desks. The reason they are not filled may be that few want to use that language.

      You might have left out a bit from that last sentence — “The reason they are not filled may be that few want to use that language at the offered wage.”

  9. karlkarl Silver badge

    "perhaps it is time to search for a tutorial?"

    Hah, no need. Python tutorials are shoved down our throat at every turn. When searching for wxWidgets and OpenCV APIs, I know to explictly include "-python" into Google to explicitly strip out the annoying noise when searching for predominantly C++ APIs.

  10. Anonymous Coward
    Anonymous Coward

    Is Python a programming language, or a scripting language, or a shell for a bunch of maths, data processing and machine learning libraries that are all actually written in C?

    1. doublelayer Silver badge

      All of the above. And for each item in your list, it does it sort of fine and has a good reason to be designed like that.

      It's not like some scripting languages I could name which, if used to implement any complex logic become unreadable above a hundred lines. It's not like some programming languages which require the creation of tons of unnecessary constructs when the programmer really wants to automate some simple set of actions. And it can easily wrap C libraries, abstracting out those peculiarities of C which make writing everything in it difficult (string parsing, anyone) while keeping its speed advantages for the intensive bits.

      There is a lot to complain about when criticizing Python, but you have in fact named one of its strengths.

    2. Richard Plinston

      > Is Python a ...

      Yes, all of those, and an embedded language too, if you want that.

  11. Geez Money

    At first I felt like they must have only surveyed professors, since professors love Python. But after looking at their methodology it's pretty obvious what happened, all of their searches are for hits for "X programming" where X is the name of the language. Yeah, I bet "javascript programming" returns less results in most searches than "python programming" for any of several reasons. We can start with the idea that "programming" wouldn't be part of the keyword for most professional developers, but would be for most data scientists and others for whom programming isn't their main job. There's also no animal called a javascript. The formulation "javascript programming" is just generally painfully redundant and awkward.

    I don't much care for javascript personally but a result that runs this far against the grain is highly suspect. I would expect the results to be more in line with every other developer survey if they just compared hits on websites dedicated to programming (like stack) for 'python' vs 'js'.

    Their github methodology is also weird, they count how many new repos are made that use a language. So every Python "hello world" counts for more than, say, the entirety of Linux. This is probably a better proxy for what language people are learning than what language is most used.

    1. Richard 12 Silver badge

      By that measure, YAML wins hands-down

      Most active Github projects have a few github actions defined, which are written in YAML therefore YAML is the most popular language on Github.

      That's obviously wrong, but is basically the same reasoning. Python is now very popular for writing project build & packaging scripts as unlike bash, cmd or powershell you can use the same Python script on Windows, Linux and macOS, with only a small scattering of platform-specifics.

      The actual project is written in something else, be that Java, C, C++, Rust, ECMAscript or whatever, but Python's in the repo so it gets counted anyway.

      1. bombastic bob Silver badge
        Happy

        Re: By that measure, YAML wins hands-down

        Python's in the repo so it gets counted anyway.

        Python DOES make VERY good "glue".

        I also like using Python for sample code for processes that are better described with a sample program rather than trying to do it in prose with diagrams...

  12. Man inna barrel

    What about people just using the language, and not talking about it?

    Whatever metrics are used, based on published data, you have the problem that most programming is done privately, and does not leave traces you can put in your stats. What about the millions of people coding in C, who just get on with the job? How do you measure that? Maybe languages such as Python and JavaScript are talked about a lot, because they have more defects than other languages.

    I still have trouble with Python's syntactic indentation rules. When everything is neat and tidy, the code is very readable, but if you copy and paste code, you have to be careful to correct the indentation, or you can end up with code that compiles and runs, but does something entirely different to what you intended. With curly brackets to delimit blocks, the compiler will pick up obvious nonsense. Despite these criticisms, I find Python to be rather useful in practice, for writing small stuff for my own use. Put it this way, it is a lot better than shell scripts, if there is any real computation involved.

    This brings me to my problem with Javascript, which is its loose type system. I admit I have limited experience here, but I struggled with the language accepting my rubbish code silently, and doing God knows what, instead of pedantically pointing out errors, which would actually have been helpful. One bug was due to a typo, where I wrote code that added an integer to an Object. I still don't know what actually happened, if anything. Maybe someone's cat was incinerated in Estonia.

    There is an idea that dynamically typed languages like Python and Javascript are somehow easier to use than statically typed languages like C++ or Java, because you don't have to write loads of stuff to declare the types of variables and functions. But actually, what you are doing with type declarations is telling the compiler what you want to do, instead of leaving it to make a guess. These days, static type systems are not such a pain, as there is type inference, so you only have to declare some stuff, because the compiler can work out the rest, in a rigorous manner. This seems to work in Rust.

    1. Richard 12 Silver badge

      Re: What about people just using the language, and not talking about it?

      Yup. The indentation rules bite me every time I need to move code around.

      I also haven't found a decent Python editor yet. Plenty of editors at the level of syntax-highlighter, but none doing the auto-complete and code navigation that prevent tyops and make it feasible to get up to speed with a large codebase.

      1. Richard 12 Silver badge

        Re: What about people just using the language, and not talking about it?

        I see the shills are out. Le sigh.

        If there's a Python IDE which you like and does that, please suggest it.

      2. Richard Plinston

        Re: What about people just using the language, and not talking about it?

        > none doing the auto-complete and code navigation

        Try PyCharm. There is a community edition.

      3. bombastic bob Silver badge
        Devil

        Re: What about people just using the language, and not talking about it?

        I also haven't found a decent Python editor yet.

        I use Pluma. It has syntax highlighting/coloring, auto-indent capability (somewhat simple but easy to get used to), and the ability to indent a hightighted block of text using tab/back-tab.

        (gedit can do this too but its interface IRRITATES me)

  13. J.G.Harston Silver badge

    If a language tops searches, maybe that's a measure of how crap it is and how often people need to look up how to rend it into usable code, than how popular it is.

    1. Phil O'Sophical Silver badge

      The Python 2 -> Python 3 change probably accounted for a good many recent searches from people trying to find out which arcane syntax change broke code that has been working fine for years.

      1. Charlie Clark Silver badge

        The number of syntax changes were limited and most of them could be handled reasonably gracefully. It was also fairly painless to forward-proof Python 2.6 and 2.7 code for then eventual transition to Python 3 only. Still, it was only when explicit support for u"" strings we reintroduced that the real gotchas went away

        The arcane syntax, including backticks, was removed before all this. But I still find myself wishing for the return of the print statement.

        Developers still struggle with some of the internals, especially for C extensions, which may require extensive refactoring for no perceptible improvement.

        But worst would be the tendency to add fashionable stuff that really only covers edge cases: type hinting and the awful "walrus" operator are my own pet hates.

    2. Blank Reg Silver badge

      And a higher percentage of Python and Javascript users are not trained programmers so they tend to need more help.

  14. Anonymous Coward
    Anonymous Coward

    Written in What?

    CPython is written in C!

    *

    Lots of OTHER languages are written in C! Lots of language compilers are written in C (including C!)!!

    *

    Surely that makes C the most popular language?

    *

    Just saying!

    1. Charlie Clark Silver badge

      Re: Written in What?

      I think you'll find that, by lines of code, COBOL and Fortran are still top dogs and much of the world would grind to halt without them.

  15. This is my handle
    Joke

    An ex-coworker once riffed on O'Reilly ...

    .... and left a notebook on his desk. Using a dark "sharpie" he wrote on the cover: "Javascript: The Good Stuff". He left the rest of it blank.

  16. Scene it all

    I once wrote a music library application, kind of like Logitech Media Server, that used Javascript to run the UI and Erlang for the back end. The Javascript part was by far the more annoying to work with.

  17. Anonymous Coward
    Anonymous Coward

    What is the point of these surveys anyway?

    Python has seen a rapid rise in these surveys but is it because it's relatively easy to teach the basics in so that GitHub is littered with a thousand and one repos full of half finished code camps and beginners courses?

    And is Google full of queries related to Python because a thousand and one poor souls were sent on piss poor courses to teach them how to program that didn't really teach them anything useful?

    How much Java is actually being written into production by banks and big corporations behind closed doors without ever seeing the light of day and how many Google searches have been avoided by a few ctrl-clicks through a decent IDE?

    What about all the C and C++ that's been compiled into who knows what and is running unobtrusively in the background all around us.

    Anyway, a wise old dev once said to me that the real trick is picking the right tool for the complexity of the task you've been given and that's why no single language is better than any others. Apart from Python. Python sucks.

  18. FlippingGerman

    Definition problem

    "Most popular language" does not to me seem a well-defined concept. Number of man-hours spent writing? CPU-hours spent running it? Projects completed? Most people considering it their favourite language? All of these have problems.

  19. Grinning Bandicoot

    If you use a Thiotimoline based ink in your notes not only will the program update but you can view the flaws before you write it.

    The R-Pi as a package being costed less than $100 USD and extremely handy for experiments that may involve the loss of the data aggregator might account for some of the demand for Python.

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

Biting the hand that feeds IT © 1998–2021