Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Programming Python

Python Named Programming Language of the Year by 'Somewhat Dubious' TIOBE Index (thenewstack.io) 75

Programming columnist Mike Melanson describes the announcement of this year's programming language of the year: The TIOBE Index, the somewhat dubious ranking of programming language popularity according to search engine results, has announced its yearly proclamation of "language of the year," with the award going to Python for the fourth time in its history [more than any other programming language].

The title, the project leads write, "is awarded to the programming language that has gained most popularity in one year," with Python moving up 2.01% in 2020, which they attribute to "the ease of learning the language and its high productivity," alongside its numerous use cases.

C++ "is a very close runner up" for programming language of the year, TIOBE tells us, "with an increase of 1.99%. Other winners are C (+1.66%), Groovy (+1.23%) and R (+1.10%)...

"What else happened in the TIOBE index in 2020? C has become number 1 again, beating Java. Java lost almost 5% in only 1 year."
This discussion has been archived. No new comments can be posted.

Python Named Programming Language of the Year by 'Somewhat Dubious' TIOBE Index

Comments Filter:
  • by BAReFO0t ( 6240524 ) on Sunday January 10, 2021 @02:57PM (#60921360)

    By TotallyNotTIOBE.

    Remember kids: YOU watch the watchmen.

  • by McLae ( 606725 ) on Sunday January 10, 2021 @03:03PM (#60921380) Homepage
    Not sure if counted by this index, but remember Arduino IDE code is C++ in disguise. Thin disguise, but not described as C++ in the tutorials or references. :)

    So thousands of DIY folks are learning C++ on the QT.

    • I know that Arduino code is embedded in C++ and all its features are available to users.

      But, with very few exceptions (ie Marlin and other 3D printer Firmware images) I haven't seen any example (or application code) that actually implements the the Object Orientated Programming features of C++.

      Take a look at the code in the projects found here: https://all3dp.com/1/best-cool... [all3dp.com] - I've looked through the code for the first 10 or so and I did find one case of object instantiation but that was it. Nobody crea

      • by sjames ( 1099 )

        That varies considerably. I have seen 3rd party BSPs built on Arduino that make extensive use of classes and objects.

        For someone who started with Arduino, there would be some more learning to do to move to full C++ programming in another environment, but there's a lot of overlap.

      • by McLae ( 606725 )
        All of the extensions as library add-ons are classes. Library packages like Wire or code that support some hardware, are mostly classes.

        Sure, the basic syntax is C, and if you just poke around with turning some LED on or off, more like 'C' than "C++".

        But if you want to use almost any other hardware in a project, the access is provided as a class, with source in .H and .CPP files.

        Having retired from doing C++ for a living, and slipping in C++ features not covered in the Arduino tutorials, the standard Ar

        • But if you want to use almost any other hardware in a project, the access is provided as a class, with source in .H and .CPP files.

          Yep. I don't recall seeing any Arduino libraries or hardware drivers that don't use objects.

          They may be out there but they're few and far between.

      • But, with very few exceptions (ie Marlin and other 3D printer Firmware images) I haven't seen any example (or application code) that actually implements the the Object Orientated Programming features of C++.

        Serial.begin(9600);
        Serial.println("Hello, world!");

        That sure looks like C++ to me.

      • I don't see anybody going from doing Arduino projects to being able to create (or maintain) C++ applications.

        To be fair, I see few other people being able to maintain C++ applications anyway.

  • Not bad for noobs (Score:3, Interesting)

    by Tough Love ( 215404 ) on Sunday January 10, 2021 @03:15PM (#60921424)

    Python is ok for noobs. And for many quick hacks is far superior to bash for example, especially in terms of maintainability. Also performance if that matters, thought to be sure, Python is s steaming pile of poo in that regard compared to most compiled languages.

    Python is also way better than PHP or Javascript, you really don't want to be the guy who has to come in after the usual herd of PHP or Node geniuses have had their way with a computer. But Python is still a rambling, awkward, low performing piece of shit and pretty much an embarrassment in terms of computer science and isn't even compatible with itself. Useful, but smelly.

    • by jellomizer ( 103300 ) on Sunday January 10, 2021 @03:32PM (#60921468)

      It is also good for experts.
      Being an interpreter language it has code that runs rather well cross platform. Windows, Linux, OS X....
      It comes with a good set of Standard libraries so you don't need to fall back on third party libraries as often.
      While coding in python compared to C/C++, Java or .Net you spend more time solving the business problem than fighting with the minutia.

      Like many tools with an easy entry barrier it does open up to the problem with a lot of amateurs creating crappy code posing it off as somthing good. But that happened in the 1990s with the likes of VB.

      • Python is good for experts willing or forced to go slumming once in a while. But Python is just an amateurish piece of engineering in many respects. Golang is put together considerably more competently (though it too has its irritations - some arbitrary and apparently pointless language limitations "on principle"). Golang has got a lot of traction because it is more or less Python done right.

      • Python and its surrounding ecosystem is swamp of version dependencies with quicksand underneath.
      • and yet all the big internet presences all use java by many factors over pyhton for large and complex solutions. Python is horrible, given its lack of types that means its a poor tool for large projects, it also means refactoring is hard very hard and of course wont be done which means code dead everywhere. We see this in Python itself, look at the mess that is v2 to v3, just look at the object orientatation support or lack of it.
    • Re:Not bad for noobs (Score:5, Informative)

      by BobC ( 101861 ) on Sunday January 10, 2021 @03:53PM (#60921560)

      Wow, that's plain wrong on so many levels.

      Even lazy Python programmers can get performance within 2x of C++ by following some simple guidelines. Most high-performance Python packages eventually get a C/C++ implementation, yielding the speed of compiled code with the ease-of-use of Python. But even this need is fading away due to JITs such as PyPy and Numba.

      The gem of Python is how it has become a "Run Anywhere" language, available on even tiny embedded systems in the form of MicroPython, all the way up to supercomputers. Python has become the top language for scientific research (displacing FORTRAN) in areas including AI, machine learning, data science and statistics, to name a few. Just the Pandas library alone makes Python worthwhile, with PyTorch doubling down on its power and flexibility.

      The greatest Python "sin" pointed at by those not in the know is the presence of the GIL (Global Interpreter Lock), which is no longer an issue in today's processing environment. Sure, we'd all like the GIL to be gone, and there is lots of interesting work in that area, but it's just not the blocking issue it used to be, so getting rid of it has an ever-decreasing priority.

      I've developed dozens of real-time embedded systems, often custom systems with short production runs targeting tiny niche markets, and I've done the prototyping and bring-up for all of them in Python. I've even shipped several with nearly the entire application written in Python, my pride and joy being an entire communication system for mid-size to small UAVs, including things like spectrum management and automatic antenna pointing.

      The main draw for Python in embedded systems is self-hosted development, where a simple serial terminal and editor can permit me to modify the system and restart it without needing to get a whole toolchain configured and installed.

      And that's a possible negative: A Python installation isn't tiny, but it's not huge either (even with JITs added): It is always smaller than the equivalent toolchain for a compiled language. However, when storage is at a premium (such as in avionics and satellite systems), in some situations I have replaced Python with Lua, but the trade-offs are significant.

      • by nagora ( 177841 )

        Wow, that's plain wrong on so many levels.

        Even lazy Python programmers can get performance within 2x of C++ by following some simple guidelines.

        The simple guideline being to just all a bunch of libraries written in C++ and then tell everyone how you solved the problem in pure Python.

        The gem of Python is how it has become a "Run Anywhere" language,

        Yes - run anywhere that by some freak chance has exactly the right combinations of versions installed to support your code this week.

        Garbage language.

        • by sjames ( 1099 )

          Even in the highest performance situations, surprisingly little of the implementation needs to be moved to C/C++.

          • But enough to be a major pain. Why not work from the beginning in a language that doesn't need this wasteful and annoying extra step. Plus sucks for maintainability.

            • by sjames ( 1099 )

              Because it is vastly faster in the development phase and if you actually design the software rather than just code at it it is actually much easier to maintain and offers a lot more flexibility if changes need to happen later.

              • Python is a good prototyping language, I don't deny it. I've used it for prototyping myself. However those rapidly hacked together Python prototypes often end up being hammered on and beaten into frankenstein's monster abominations actually used in production, where actually the right idea would be to replace the prototype with a properly engineered production design once the prototype has done its job, which is usually to get management by-in. We see this disease all over the net, it's a bad one.

                • by sjames ( 1099 )

                  That's not a failure of the tool, it's a failure of some of those wielding the tool. If anything is rapidly hacked together, it should be considered scratch. Next step should be a properly designed solution that you wouldn't be ashamed to put in production. No reason that shouldn't be in python.

                  Solid development in any language is a discipline. If discipline is lacking, the development can go astray in any language.

                  • Python is a poor platform for production code. It's more of a kiddie's toy really. If you don't know what I mean then you're the kiddie.

        • Someone who does not know how to have multiple versions of a program/language on his computer and how to configure the relevant system variables so that "it just works", does not qualify for commenting on languages he has no clue about.

      • Re: (Score:2, Insightful)

        by Tough Love ( 215404 )

        It's not in doubt that Python performance is crap. Widely proven by benchmarks and perfectly obvious if you ever looked at the internals, which I would be far from surprised to learn that you did not. But on the other hand Python is great for server vendors who want to sell a bunch more servers to do the same work.

        One of the worst things about Python is the legions of fact-free apologists who love to engage of in muggings of any rational analysis of its failings. Python has many drawbacks. But it's a nice

        • by sjames ( 1099 )

          Or perhaps you're just not that good at Python coding.

          That's fine, to each his own.

          • Or perhaps you just can't write some things efficiently in pure python. If you think otherwise then you are exactly the noob Python is aimed at.

            • by sjames ( 1099 )

              I guess YOU can't write efficient Python, or perhaps you haven't yet realized that different jobs call for different tools.

              Then there's that large subset of problems that are I/O bound...

              • Idiot.

              • Then there's that large subset of problems that are I/O bound...
                In our days? Rarely ... did not encounter one since a decade or more.

                Easy to test with a RAM disk, put your I/O bound problem into/onto a RAM disk, and you see: it is CPU bound, not I/O.

                • by sjames ( 1099 )

                  I/O includes serial and network as well as disk.

                  In supercomputing, it's still fairly common for a run to be bottlenecked by I/O, particularly during model initialization.

                  Note too that latency can make a program I/O bound even where there is plenty of bandwidth.

        • Python users don't know how to sound cool by dropping four-letter words?

          I imagine that for someone spending time with C++, four-letter words are just part of one's daily vocabulary?

          When your programming language is much less frustrating, you never learn to talk that way?

      • ...and claiming that Python can get within 2x of C++ in all cases just makes you sound like an idiot. Face it, Python is a slug that, but with significant effort you can work around most but most certainly not all its slow spots. You _are_ going to get bitten by this sooner or later if you use Python for serious work, but what the hell, you built your prototype fast, right? And now management is between a rock and a hard place, they've just got to invest a bunch more money into whatever creaky monument you

      • by hondo77 ( 324058 )

        Even lazy Python programmers can get performance within 2x of C++ by following some simple guidelines.

        Step 1: Learn C
        ...

        • And why would anyone do that if his job is in some physics like meteorology or climate research, and all libraries he needs are written already in C/C++/Fortran and all he wants is to write high level analytics or "business code"?

          Sorry, to say it so bluntly, but: people who mention C in our days, especially as advice "what to learn to newcomers": are idiots and have no clue about programming problems.

          Yes, that rant is intentionally bold.

      • Wow, that's plain wrong on so many levels.

        Even lazy Python programmers can get performance within 2x of C++ by following some simple guidelines.

        ie. Call the underlying C++ libraries as often as possible.

    • ... noobs ... steaming pile of poo ... piece of shit ... embarrassment ...

      You really are eager to pick a fight, aren't you? You pretend to be even-handed by giving minor fake praise first, and then launch into your tirade. You're not even replying to anything, you managed to work yourself into a frenzy all by yourself.

      Please think about what kind of place you want slashdot to be, before you write something like that again.

    • Useful, but smelly.

      It's the new Visual Basic.

    • Python is also way better than PHP

      In practice, there is very little difference between Python and PHP. They both fail only at runtime if you make a type error.

  • Nobody talks about Swift anymore. Not even Apple.

    Also, when we say "Python" which incompatible versions are we lumping together?

    • Nobody talks about Swift anymore. Not even Apple.

      What is there to talk about? Everything is moved over. Most iOS developers use Swift now. The thing being talked about now is SwiftUI, not Swift itself which is widely accepted a this point...

      Nobody talks about Swift anymore. Not even Apple.

      Now this point I find insightful, having done some Swift off and on.. even so I think Python does deserve language of the year, it's gained widespread use.

    • 1. Use Swift to open a full-screen WKWebView.

      2. Run Wasm, compiled from C++ or Rust, in the WKWebView.

      • Swift seems less practical than AppleScript or Tcl. Lately we've gotten so many of these expertly-designed, featureful languages and I struggle to find the practical benefits in them. Specifically in achieving the top goal in software development: getting shit done.

        • I struggle to find the practical benefits

          You struggle to find the practical benefits because there are none.

          The sole purpose of Swift is to lock developers into a single platform.

          Swift is designed to benefit Apple, not you.

  • I have far better and more accurate words to describe their level of dubious than "somewhat".
    It's so dubious I have this in my HOSTS file:

    127.0.0.1 tiobe.com

  • "What is this steaming pile of shit called Python?"

    Yay! Another data point!

  • by uncqual ( 836337 ) on Sunday January 10, 2021 @04:06PM (#60921610)

    Maybe it's just that Python and C++ are counter-intuitive and complex so people have to search for answers rather than intuit or remember them. Perhaps there's a really popular language that's consistent, rich, and concise so rarely does one need to search for an answer to a question so it never shows up in this ranking.

    • Usually indicates a lot of noobs coming in. That can translate to popularity eventually. It's hard to know for sure but what I see is people coming into Python and using it for a project or two before discovering better ways of doing things.

      The poster child for Python is Openstack. Which is the classic huge steaming pile. Rambling and nigh-on unmaintainable. Unstable both in operation and api. Huge use of time to do the simplest things with it. Python's poster child, folks.

      If you are looking for the next bi

  • And I care why? (Score:5, Insightful)

    by AlanObject ( 3603453 ) on Sunday January 10, 2021 @04:07PM (#60921614)

    I will never understand this obsession over trying to declare what programming language is most popular.

    It is a fricking software tool. Not the leader of your little sorority pack.

    I have been doing software for over 50 years now and I have seen trash (even before I knew it was) written in every language I encountered. And I have seen elegant and usable code in a wide variety of languages down to classic machine languages of IBM 1620, 1401 and PDP 8.

    The language is nothing. The artisan is everything. Donald Knuth had it right from the get-go.

    • It's kinda like rooting for your team in sportsball crossed with evangelism. They love the good aspects of their favorite language, and they want everyone else to see the light. Rising popularity suggests that other people are also seeing the good things, and that the evangelism is paying off.

      Unfortunately, like sportsball, the enthusiasm is driven more by familiarity than objective superiority. And like you say, how well you play matters far more than the color of your uniform.

    • While a lot of the interest is tribal, there are rational reasons as well. A large part of the utility of a language is in its eco-system. If you are investing in a project you don't want to find that you can't port it to the platform you want or that and important API is not available. Unpopular languages are less likely to be widely supported.

  • Why does every fucking thing needs to be a contest? Do i get a prize? Am i supposed to feel snug being part of a large group?

    Really is any sane person going to change their choice of software tool based on some index or the number of github commits?

    • Programming language popularity is a good first approximation indicator useful for keeping your career and skills relevant to the market. You have to ask yourself in this order: (1) What are the popular languages being used today?
      (2) Why are they popular? What makes them interesting?
      (3) What domains are these languages used in?
      (4) How much does that domain typically pay?

      If you don't care about things like your career or money or interesting things, then sure, feel fine to stick to your favorite la

      • Programming language popularity is a good first approximation indicator useful for keeping your career and skills relevant to the market.

        Simply picking up a language demonstrates nothing useful about your skill set.

        You have to ask yourself in this order:
        (1) What are the popular languages being used today?

        Ask your friendly "meh career" lemming who wastes everyones time pushing whatever they heard on the Internet is hip and cool this second instead of focusing effort into endeavors which translate to positive outcomes for employers. Every shop has at least one.

        (2) Why are they popular? What makes them interesting?

        What does it matter? When you go down the path of arguing knowledge of popular language is a useful indicator of career success if the answers are "because the sky is blue"

        • Simply picking up a language demonstrates nothing useful about your skill set.

          Of course not, but being up-to-date about programming languages says you can continue to learn after you've finished your CS degree.

          When you go down the path of arguing knowledge of popular language is a useful indicator of career success

          I didn't say that. I meant that knowing what's popular is a good initial guide to keeping your career and skills relevant.

          Somewhere there is a (5) do I have requisite domain knowledge... you know the thing that actually matters.

          Yes, of course. My intention was that if you see that a new language / library / domain is popular, you have to ask yourself: If this new area is popular, should I invest the time to learn about it to increase my skills and value? I have a "background proces

      • Actually you not need to ask yourself anything of that.

        You already can program and can use a few languages?

        Then learning a new one is usually a matter of days.

        That might not be true for niche languages like Haskel, OCaml, ML, Lisp, Prolog.

        But for every other one it is. Seriously if you are a C programmer and can not learn Javascript, C++, Java, C# in 1 or 2 days: you simply suck. And that counts for all those languages visa veers. And I'm seriously tempted to include Swift and Dart and moreso Go and Rust.

        Wh

  • Was that Python2 or Python3? And which sub-version? Because aint none of them have decent compatibility with other versions. Its an absolute maintainability MESS!!

    • Luckily, the rating wasn't for the most maintainable programming language, just the most popular one.
      • by darkain ( 749283 )

        I think its mostly popular nowadays due to people having to convert mission critical legacy code off of a now unsupported language! (btw, that is literally the only reason I learned Python and am now developing in it, otherwise I'd still be using better languages)

  • Python is rising due to two things:
    1. Python is the de facto language for using machine language libraries like TensorFlow and PyTorch.
    2. Python is the probably the most popular language for university CS curriculums.
    3. Putting those two together: if you're a computer science student, you undoubtedly want to get into a well-paying and interesting field. AI/ML seems perfect. So learning Python and using Python for work go hand-in-hand.

    Anecdotally, I'm now a big fan of Python. I used to work extensively in C

    • Python is not a bad choice when regarded as and used as the scripting language it is. For example, it's OK at setting up neural nets if that's mostly one-time setup. But people try to use Python as a systems programming language (e.g. Openstack) then it just pukes.

  • Are there going to be more riots?
  • McDonalds hamburgers are popular. So are the Kardashians.
  • ``C++ "is a very close runner up" for programming language of the year, TIOBE tells us, "with an increase of 1.99%. Other winners are C (+1.66%), Groovy (+1.23%) and R (+1.10%)...''

    One "reporter" over at Dice fawns over the TIOBE rankings like they are gospel (it gives him something to write about every month) yet in other articles on their site, the predictions are that languages like R are dying. Anything for clicks, I guess.

  • VHDL and Ada above Typescript and Kotlin
    Logo above Typescript?

    Give me a break.
    Someone has an error in their analysis scripts.

  • Programming language? That's an even SILLIER name for a python than Monty.

Any circuit design must contain at least one part which is obsolete, two parts which are unobtainable, and three parts which are still under development.

Working...