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."
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."
TIOBE named index of the year (Score:3)
By TotallyNotTIOBE.
Remember kids: YOU watch the watchmen.
Does TIOBE count Arduino usage? (Score:4, Interesting)
So thousands of DIY folks are learning C++ on the QT.
I'd challenge that Arduino users are learning C++ (Score:3)
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
Re: (Score:2)
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.
Re: (Score:2)
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
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
LOL.
Not bad for noobs (Score:3, Interesting)
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.
Re:Not bad for noobs (Score:5, Insightful)
It is also good for experts. .Net you spend more time solving the business problem than fighting with the minutia.
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
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.
Re: (Score:3)
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.
On the Down Side (Score:2)
Re: (Score:1)
Re:Not bad for noobs (Score:5, Informative)
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.
Re: (Score:2)
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.
Re: (Score:2)
Even in the highest performance situations, surprisingly little of the implementation needs to be moved to C/C++.
Re: (Score:2)
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.
Re: (Score:3)
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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)
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
Re: (Score:1)
Or perhaps you're just not that good at Python coding.
That's fine, to each his own.
Re: (Score:1)
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.
Re: (Score:2)
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...
Re: (Score:1)
Idiot.
Re: (Score:2)
If that's your best rebuttal, you lose.
Re: (Score:2)
You've got no shame. Garden variety drooler.
Re: (Score:2)
Then there's that large subset of problems that are I/O bound... ... did not encounter one since a decade or more.
In our days? Rarely
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.
Re: (Score:2)
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.
Re: (Score:2)
Well, obviously I was referring to desktops and hard disks :P
Not only that (Score:2)
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?
Re: (Score:1)
...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
Re: (Score:2)
Even lazy Python programmers can get performance within 2x of C++ by following some simple guidelines.
Step 1: Learn C
...
Re: (Score:1)
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.
Re: (Score:2)
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.
Re: (Score:2)
C libraries actually.
Re: (Score:2)
... 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.
Re: (Score:2)
Steaming piles of poo like Python get me going, I'll admit it. Doesn't make Python not a steaming pile of poo.
Re: (Score:1)
Considering that you obviously never have used Python, the steaming pile of poo is: you.
Re: (Score:2)
Useful, but smelly.
It's the new Visual Basic.
Re: (Score:2)
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.
poor Swift (Score:2)
Nobody talks about Swift anymore. Not even Apple.
Also, when we say "Python" which incompatible versions are we lumping together?
Apple doesn't just talk, they use. (Score:1)
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.
Re: (Score:2)
1. Use Swift to open a full-screen WKWebView.
2. Run Wasm, compiled from C++ or Rust, in the WKWebView.
Re: (Score:2)
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.
Re: (Score:2)
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.
"Somewhat" dubious? (Score:2)
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
According to search engine results (Score:2)
"What is this steaming pile of shit called Python?"
Yay! Another data point!
What does number of searches indicate? (Score:3)
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.
Re: (Score:3)
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)
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.
Re: (Score:2)
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.
Re: (Score:3)
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.
So what (Score:2)
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?
If you care about your career (Score:2)
(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
Re: (Score:2)
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"
Re: (Score:2)
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
Re: (Score:2)
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
Py2 or Py3 (Score:2)
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!!
Re: (Score:2)
Re: (Score:2)
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 great for machine learning AI (Score:2)
Anecdotally, I'm now a big fan of Python. I used to work extensively in C
Re: (Score:2)
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.
Great (Score:2)
Popular != Good (Score:2)
What a crock (Score:2)
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.
Yeah, Sure (Score:2)
VHDL and Ada above Typescript and Kotlin
Logo above Typescript?
Give me a break.
Someone has an error in their analysis scripts.
Programming Language? (Score:1)