Beating C and Java, Python Becomes the #1 Most Popular Programming Language, Says TIOBE (zdnet.com) 115
ZDNet reports that Python "is now the most popular language, according to one popularity ranking."
"For the first time in more than 20 years we have a new leader of the pack..." the TIOBE Index announced this month. "The long-standing hegemony of Java and C is over."
When Slashdot reached out to Guido van Rossum for a comment, he replied "I honestly don't know what the appropriate response is...! I am honored, and I want to thank the entire Python community for making Python so successful."
ZDNet reports: [I]t seems that Python is winning these days, in part because of the rise of data science and its ecosystem of machine-learning software libraries like NumPy, Pandas, Google's TensorFlow, and Facebook's PyTorch. Python is also an easy-to-learn language that has found a niche in high-end hardware, although less so mobile devices and the web — an issue that Python creator Guido van Rossum hopes to address through performance upgrades he's working on at Microsoft.
Tiobe, a Dutch software quality assurance company, has been tracking the popularity of programming languages for the past 20 years. Its rankings are based on search terms related to programming and is one measure of languages that developers should consider learning, along with IEEE Spectrum's list and a ranking produced by developer analyst RedMonk. JavaScript, the default for front-end web development, is always at the top of RedMonk's list. For Tiobe, its enterprise focus, has seen Java and C dominate in recent years, but Python has been snapping at the heels of Java, and has now overtaken it...
Python's move to top spot on the Tiobe index was a result of other languages falling in searches rather than Python rising. With an 11.27% share of searches, it was flat, while second place language C fell 5.79% percentage points compared to October last year down to 11.16%. Java made way for Python with a 2.11 percentage point drop to 10.46%.
Other languages that made the top 10 in Tiobe's October 2021 index: C++, C#, Visual Basic, JavaScript,. SQL, PHP, and Assemblyy Language. Also rising on a year-on-year basis and in the top 20 were Google-designed Go, number-crunching favorite MATLAB, and Fortran.
"Python, which started as a simple scripting language, as an alternative to Perl, has become mature," TIOBE says in announcing its new rankings.
"Its ease of learning, its huge amount of libraries, and its widespread use in all kinds of domains, has made it the most popular programming language of today. Congratulations Guido van Rossum!"
"For the first time in more than 20 years we have a new leader of the pack..." the TIOBE Index announced this month. "The long-standing hegemony of Java and C is over."
When Slashdot reached out to Guido van Rossum for a comment, he replied "I honestly don't know what the appropriate response is...! I am honored, and I want to thank the entire Python community for making Python so successful."
ZDNet reports: [I]t seems that Python is winning these days, in part because of the rise of data science and its ecosystem of machine-learning software libraries like NumPy, Pandas, Google's TensorFlow, and Facebook's PyTorch. Python is also an easy-to-learn language that has found a niche in high-end hardware, although less so mobile devices and the web — an issue that Python creator Guido van Rossum hopes to address through performance upgrades he's working on at Microsoft.
Tiobe, a Dutch software quality assurance company, has been tracking the popularity of programming languages for the past 20 years. Its rankings are based on search terms related to programming and is one measure of languages that developers should consider learning, along with IEEE Spectrum's list and a ranking produced by developer analyst RedMonk. JavaScript, the default for front-end web development, is always at the top of RedMonk's list. For Tiobe, its enterprise focus, has seen Java and C dominate in recent years, but Python has been snapping at the heels of Java, and has now overtaken it...
Python's move to top spot on the Tiobe index was a result of other languages falling in searches rather than Python rising. With an 11.27% share of searches, it was flat, while second place language C fell 5.79% percentage points compared to October last year down to 11.16%. Java made way for Python with a 2.11 percentage point drop to 10.46%.
Other languages that made the top 10 in Tiobe's October 2021 index: C++, C#, Visual Basic, JavaScript,. SQL, PHP, and Assemblyy Language. Also rising on a year-on-year basis and in the top 20 were Google-designed Go, number-crunching favorite MATLAB, and Fortran.
"Python, which started as a simple scripting language, as an alternative to Perl, has become mature," TIOBE says in announcing its new rankings.
"Its ease of learning, its huge amount of libraries, and its widespread use in all kinds of domains, has made it the most popular programming language of today. Congratulations Guido van Rossum!"
Why (Score:5, Interesting)
If accurate (since all language surveys have problems), then it's mainly because universities teach Python as a beginning language course.
The secondary reason is because Python is nice for small projects. We can hypothesize that there are more small projects than large projects out there.
Re:Why (Score:5, Informative)
Re: (Score:2)
Re: (Score:3)
Pascal was a big language in the 70s [i-programmer.info]. It had a large following on the Macintosh into the early 2000s.
In the 80s and 90s, there wasn't a lot of choice, though. If you wanted to program for Windows, the main option was C then C++. If you wanted a different language, you really had to go out of your way. You couldn't program in Python on Windows. You could program in Smalltalk, but you'd have to pay a lot of money.
Re: (Score:3)
If you wanted to program for Windows, the main option was C then C++.
I think you've obviously forgotten about TurboPascal and QuickBASIC.
Re: (Score:2)
I used TurboPascal in Grade 11... in the early 90s.
Re: (Score:2)
I thought of that, but I feel like they were a minority maybe I'm wrong. There was also visual basic which got some use.
Re: (Score:2)
QuickBASIC for Windows was not a thing, although Visual Basic did evolve out of it.
Turbo Pascal was not particularly popular as such, but its immediate successor Delphi was immensely popular.
It's also worth remembering that much of the code that is written is not shipped publicly - think of all those bespoke line-of-business apps to manage inventory etc. That's exactly the area where VB and Delphi were extremely popular, largely because they offered high-level GUI and database abstractions that were specifi
Re: (Score:3)
Many colleges teach Python in the intro programming class for non-CS-majors.
CS students often start with Java or C++, but some colleges start with Python even for them.
My daughter was a microbiology student and had to learn Python and R.
Re: (Score:2, Informative)
Re: (Score:2)
Yeah, it was an easy language for newbies. Later on, CS department replaced it with Java C++ IIRC.
Re: (Score:2)
Ditto for my friends and me. We also had to take C++, C, and ASM.
Re: (Score:2)
Re: (Score:2)
Why? Pascal was much more enjoyable than C.
Turbo Pascal was the hot shit back then! First thing you could call an IDE.
Re: (Score:2)
Re: (Score:2)
That kinda depends on where. Pascal was almost universally used to teach programming in Eastern European schools. And, not coincidentally, Delphi was the most popular language/IDE for production apps there at the same time.
Re:Why (Score:5, Interesting)
Well, Python is useful for machine learning (ML), but it's not the best. (The best is straight C)
The problem is you need a lot of rapid iteration of ML stuff, which the Python stuff is usually on the training side, not the inference side.
Python however has a lot of rapid coderot. Like stuff build on Python 2.x doesn't work on 3.x, and libraries for minor versions don't work on other minor versions, which means most ML stuff is based on "obsolete" python runtimes, and nVidia/Intel/AMD etc encourage this coderot by releasing optimizations for python and tensorflow versions that don't work on older Python versions.
Like it pains me to have to use an old version of python because the program only works on that version of python and tensorflow. Unless I'm willing to code in C, I pretty much have to never upgrade anything.
Python coderot is substantially worse than Perl for this.
Re: (Score:3)
Well, Python is useful for machine learning (ML), but it's not the best. (The best is straight C)
I'm not much of a fan of Python. I can use it, but I think it's colossally overrated and I'm aware of non Python based DL frameworks, e.g. DarkNet and DLib (respectively C and C++). I prefer C++ for programming by a long way. But I do my deep learning in PyTorch like just about everyone else these days.
Python however has a lot of rapid coderot
It's astonishingly bad. Not only that, they remove "ancient" (i.e. 2 y
Re: (Score:2)
I see Python as being objectively terrible for ML. We have R, after all, if you want an alternative to C.
I can't for the life of me understand Python's popularity.
Re: (Score:2)
R is a horribly designed language. If you want something that's actually well-designed and tailored for ML and statistics, that'd be Julia.
Re: (Score:2)
R has serious problems, no question. It's severe deficiencies, however, are easy to overlook when you're using it interactively with RStudio. It's hard to give up.
Now, I'd drop R in a second if RStudio had support for Julia. If you know of a similar tool, I'd be interested in learning more about it.
Re: (Score:2)
I don't think it's quite there yet, but do keep an eye on https://www.julia-vscode.org/ [julia-vscode.org]
Re: (Score:2)
Python 2 went out of support in 2020. Python 3.0 was released in 2008. That's 12 years. I wouldn't call that "rapid".
The vast majority of Python libraries work just fine across minor Python versions. Unlike the py2/3 breakage (which makes more sense if you consider the two essentially different languages), minor Python versions don't introduce breaking language changes without a migration period spanning several releases, during which the new behavior has to be explicitly requested via from __future__ impor
Re: (Score:2)
The most powerful thing about Python is the rich library, except it's broken depending on which Python versions you're stuck on, what distro you're using, and how old the server you happen to be using in production is.
Re:Why (Score:5, Insightful)
* It has a really great and simple to use built in standard library. Early languages didn't have one really so you can see it lacking in C and most other languages from the pre-2000's era other than Python have either minimal ones or inconsistent formats. Java is likely the main language that was competitive in this regard.
* It has great third-party support. Package managers like Pip make it incredibly easy to build off other work. Thanks to requirements files and virtual environments, it's easy to track this and keep track of dependencies or update them. This was such a problem in the C world that I remember libraries being advertised as self contained header files just so they'd be easier to incorporate into projects.
* Very little boilerplate to get something going. Probably half of the projects in the corporate world and almost all of the personal projects start off as a very low investment proof of concept often built by one or a handful of people. Every bit of fiction increases the chances that a project will never get off the ground and Python removed most of that.
It's not the best thing as a project grows. There are flaws that are well known, but often times by the time those become issues it's likely too late to migrate.
Re: (Score:3)
Yep. To add to the above
- Python code is much more dense generally without any particular effort put into density. I would guess it takes 3-5 times fewer lines of code.
- When something does break, the interpreter gives you the exact line and the failure. This makes it much easier to fix.
- Using an interpreter reduces the feedback time to mere seconds in many cases, as you don't have to wait for compilation.
And yes on the other side of things having it not compiled reduces runtime speed by a lot (~20 time
Re: (Score:2)
People get a little hung up on the conciseness of a language, and find redundancy to be offensive and inelegant. I think if you're trying to slap together something quick that might be true. If you are into formal systems and verification then the opposite is true. Even test driven development tends to push a fair amount of duplication around as you methodically cover your functional requirements.
I think Forth is very compact. You don't have to give temporary variables a name because you can put them on the
JVM vs Python - native vs provided libs pain (Score:3)
* It has a really great and simple to use built in standard library. Early languages didn't have one really so you can see it lacking in C and most other languages from the pre-2000's era other than Python have either minimal ones or inconsistent formats. Java is likely the main language that was competitive in this regard.
I can't argue that many languages have a lot to learn from Python. However, since you're comparing libs to Java, many more python libs call out to the underlying OS, which sounds good at first, but led to huge issues for an application that was written for us in Python. We hired an intern against my wishes for an autonomous project. He was overeducated, but no real world experience and he writes a large module in Python over a summer. It demos well on his personal macbook.
I was annoyed he chose Python
Re: (Score:2)
Having all those bundled libs is a severe detriment too. If a bug or security flaw is discovered in one of those libs (which has happened many times) you need to work out how many copies of that vulnerable lib are bundled with all your various packages, and then try to update them one by one without breaking anything.
Plus your use of old libs means a lack of support for modern features that may be required.
There is also plenty of C code that compiled and ran many years ago, and can still be compiled and run
Have you ran this in production? (Score:3)
Plus your use of old libs means a lack of support for modern features that may be required.
There is also plenty of C code that compiled and ran many years ago, and can still be compiled and run on a modern system without changes.
I think you're missing the point. When you ship something, you want it to run consistently across platforms and time. Calling out to the OS means each OS update has to be regression tested and has a chance of failing. On the JVM, since the app bundles it's dependencies, it runs the same on your mac/win workstation as your server. Switch from in-house RHEL to AWS Ubuntu?...no problem, consistent behavior. Switch to some crazy OS that hasn't yet been invented 5 years in the future?...same behavior.
Wh
Re: (Score:2)
What you're describing with your 'stability' and 'own schedule' is solved by Python venv. An extremely common way of running applications on servers in production.
Re: (Score:2)
Python versioning is a known problem of the language.
Re: (Score:2)
Which makes me wonder why anyone uses it on purpose.
Re: (Score:2)
I have code I wrote in the late 90s that's still running on servers today, on the latest Java version.
While I don't doubt that's true for your code, I have a counter example. I have very little experience with Oracle, but was working on synchronizing an Oracle DB to a Snowflake DB using Oracle's Golden Gate software which is written in Java. Not only did it require a specific old version of Java, it wouldn't run until we uninstalled a newer version of Java from the machine. Setting library paths and environment variables to point to the desired Java version wasn't enough. Fortunately I don't have to deal wi
Your story technically isn't true. (Score:2)
I have code I wrote in the late 90s that's still running on servers today, on the latest Java version.
While I don't doubt that's true for your code, I have a counter example. I have very little experience with Oracle, but was working on synchronizing an Oracle DB to a Snowflake DB using Oracle's Golden Gate software which is written in Java. Not only did it require a specific old version of Java, it wouldn't run until we uninstalled a newer version of Java from the machine. Setting library paths and environment variables to point to the desired Java version wasn't enough. Fortunately I don't have to deal with Oracle anymore. But I was shocked that merely uninstalling a newer version of Java and not doing anything else was all it took to get a crashing Golden Gate process to run successfully.
While I feel your pain about Oracle sucking, your story technically isn't true.
JVMs don't know about each other. One JVM can't read libs from another. They're well isolated. In your case, Golden Gate was reading from a different config you weren't aware of to update and they probably didn't document. I run Oracle client software and yes, it's weird they force you to Oracle JDK 8 or 11, which is an artificial limitation, but that's Oracle going out of their way to be a jerk with their client software.
you can do the same with Java now (Score:2)
When you use a language that compiles to the JVM, EVERYTHING you need is in that jar/war.
If you use Go, everything is in a giant static executable that starts up quickly and runs on a stock system without any third-party libraries or runtimes necessary.
First of all, wars and jars already bundle 3rd party libraries. That was my point. One file has all you need, although we typically don't bundle a JVM since for most of time, people want their applications running in containers for many good reasons, like Jboss or tomcat. You get much more powerful security and management that way.
You can bundle mini JVMs since Java 9 so everything is a giant static executable as well now. I am not a fan, but some "serverless" douchebag advocates have been successfu
Re: (Score:2)
Most of the things you mention are common now for languages. If you think Pip is great, you'd probably really enjoy NPM (which has problems, but ease of use is not one of them). Ruby has RVM and gems, etc.
Re: (Score:3)
I'm h
Re: (Score:2)
The biggest issue I have with Javascript is the lack of a real build in standard library that has consistent conventions. I haven't personally used NPM due to licensing and security concerns. The biggest flaw I see with it is not NPM itself, rather the poor state of the Javascript standard library which is inconsistent and incomplete. Rather than relying on features that should have been built in, authors rely heavily on other third party packages so you end up with many more imports than you expected.
Oh your comment is so nonsense. You like Pip because it has packages, you don't like Javascript because it relies packages. Learn logic.
Also your data is incomplete. Instead of being a Python-lover and defending Python, you'd be better off looking at other languages and seeing what is actually out there. When was the last time you looked at the Javascript standard library?
Re: (Score:2)
JS standard library is still horrible by any objective metric. You don't even have to compare it against Python - even C++ does better, and that's a very low bar indeed.
Python is kinda the other extreme, with standard library that's a kitchen sink a la Java and .NET. Which has its downsides, but can also be very convenient at times.
Re: (Score:2)
If you think Pip is great, you'd probably really enjoy NPM (which has problems, but ease of use is not one of them). Ruby has RVM and gems, etc.
And of course, CPAN. Even in the 90s CPAN had more than most library repositories today!
Re: (Score:2)
Labview is propriety and expensive, and the whole NI ecosystem is some of the worst bloatware I've ever seen. And your spaghetti code gets to look like actual spaghetti. Labview has its place, but I'd avoid it as much as possible.
Labview and Python do have something in common. They are great for throwing together something simple really quick, but are a nightmare if you try to use it for a large project.
Re: (Score:2, Flamebait)
Re: (Score:2)
"indenting determines block" aspect that just runs smack into the face of any rational thinking. [emphasis mine]
Well, that is just an absurd statement.
Re: (Score:2)
Python seems to be interesting in some aspect, but then there is the "indenting determines block" aspect that just runs smack into the face of any rational thinking.
People who haven't used Python much think that Python's indentation rules are going to be a big problem... but it turns out that in practice, they aren't a problem at all.
Re: (Score:2)
They are a constant problem. You've just adapted to the "crap factor".
Re: (Score:2)
Re: (Score:2)
Why? Python seems to be interesting in some aspect, but then there is the "indenting determines block" aspect that just runs smack into the face of any rational thinking.
It is easier to understand if you start with what, instead of why.
They describe the result as popularity, but does it measure that? No, it measures how many problems people have writing it!
So the "what" is actually that python is the #1 source of programmer problems.
Why? Maybe it is just harder than C, once you get past something simple?
Re: Why (Score:3)
With Jyniper notebooks it's dead simple to setup and use and you can even use one liners for statements without requiring an ide, sdk, or environmental variables for computer neophytes who only know how to use apps on their phones.
Studies show kids today don't know what a folder or file is as apps are used to do things like get a picture.
Python is great is for this and college staff don't have to go over how to install all this junk on student laptops and it works on a Mac
Re: (Score:2)
My university requires two semesters of Java before you can touch Python, and then they spend only half a semester on it. The other half is on C#.
Also, python sucks. Whitespace dependancies are absolutely stupid.
Re: (Score:2)
It's not "accurate"! It's literally just "dude entered a few search terms into a few popular search engines, and looked at the number of results he got". Literally!
Re:Why (Score:4, Insightful)
If accurate (since all language surveys have problems), then it's mainly because universities teach Python as a beginning language course.
The secondary reason is because Python is nice for small projects. We can hypothesize that there are more small projects than large projects out there.
I liked APL, and was an APL fanatic. If you are going to use an interpretive language, it is the one to use. Productivity is just fantastic with APL. Just type +/1 2 3 67 763 77 55 768 and the sum will appear on the terminal. The output can also be assigned as result-+/1 2 3 67 763 77 55 result 768
The King of all Dupes (Score:5, Funny)
Perfect non-story for Engagement! (Score:4, Insightful)
This story just never goes away.
Yup. The methodology for determining it is flawed:
The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings.
So yeah, why don't we stop doing a census and just collect data on who visits the hospital to figure out how many people live in the USA and their demographic backgrounds? In order to get noticed on Tiobe, you either represent someones starting their career (analogous to births), Googling an issue (analogous to ER visits) or claiming to work with it. By the last metric, I guess I count as a Python programmer because I touch it a few times a year and do all I can to remove it from my organization for anything that matters or has money on the line.
However, this is the perfect story to get people arguing. People love to say Java/C# is dead, the future is Python, here's proof and people like me react and this gets a long story going. It's like Facebook's engagement algorithms. Slashdot loves it because it causes us to argue.
Although it would be impossible to collect, I'd be much more interested in a metric like the amount of money invested in writing applications in a language or the number of dollars of business processed by a language. I don't give a shit about which language is popular for quick scripts, grad student work, some DevOps glue-code, etc. I want to know what is handling the mission-critical data of major corporations.
When I start a new application where real money is involved, I don't think about the next 6 months, I think about the next 6 years and what will serve the organization best after the original author left and it's changed hands a few times. In our experience, Python really flails after it has changed hands. We have apps in production from companies we acquired...they have great staffs, but constant bugs, lots of errors, constant delays and constant overruns, also a higher cloud computing bill than their Java and C++ counterparts. Want to do something quick? Python is perfectly fine. Want to build something that lasts and gives you less problems? Things like concern for backwards compatibility (see Python2 vs Python3) and strong typesafety really make a huge difference in reliability and keeping budget overruns under control.
Re: (Score:2)
Thanks for this post. I wrote something along similar lines, but this really does hit the crux of it all with much more eloquence.
If I had any mod points to give, you'd have earned them with this gem.
Re: (Score:2)
The one about metric vs imperial is longer living.
Re: (Score:2)
Re: (Score:2)
Planck units or GTFO!!!11 ;)
.
.
There goes the neighborhood (Score:2)
Indeed (Score:4, Insightful)
Indeed, it is popular...like Javascript...like PHP. And it says a lot about the caliber of the programmer.
Re: (Score:2)
It says a lot about how much money is to be made by selling clients on higher quality code! :)
Just make sure you're not taking longer or being more expensive than their perceived additional benefits.
(A good language should enable you to do that. In fact that's a great way to measure if a language is good.)
Re: (Score:2)
... it is popular...like Javascript...like PHP
You just named my two least favourite languages. They are prevalent, but I am not sure they are popular.
When it comes to client-side web programming, it is Javascript or nothing, as far as I know. That means that the language will be widely used, popular or not.
My experience with PHP is that is simplifies creating small web interfaces, but tends to lead to a frightful mess when you try to scale it up. So I think PHP has become widespread because it is initially easy to use, and people put up with it, rathe
Re: (Score:2)
Bullshit headline (Score:5, Insightful)
Python does not "beat" C. In fact, Python is ideal for embedding C modules if you need some heavy lifting. Embedding Python as scripting in C works as well, but is a bit more difficult. For an embedded scripting engine I would go with LUA instead. But in the hands of a master, Python complements C. Of course, glue code and code that is not performance critical is faster and easier done in Python and Python comes with a ton of useful standardized libraries. One problem with Python is that it is most decidedly not a language for beginners. If you do not understand how it works and in particular if you do not understand its OO model, you can crate the most horrible mess with it.
And Java? Well. It is basically mediocre at everything and that is often good enough. It is not a master's tool though. But toady, sadly, most coders are not very good, so Java will stay around. A bit like COBOL and FORTRAN, just not quite as outdated.
You completely misunderstood the title (Score:2)
Very few people should need to write C (Score:5, Interesting)
This is for a few reasons: (1) time spent building a bespoke implementation rather than grabbing something off the shelf is time wasted--not just your time but the time of the people who need to read / audit / adapt / maintain your code; (2) the odds that you are going to introduce a bug or typo in your low-level implementation that will go uncaught for years is infinitely higher than the odds of such a bug making its way into CPython or scikit-learn--this is especially true for "black box" machine learning libraries where it's already often a struggle to figure out what's going on under the hood; (3) the fewer low-level nuances and details you need to worry about the more your attention can be focused on the bigger picture--you're seeing farther by sitting in the shoulders of giants. The amount you can accomplish in a month with 1000 lines of Python under the hood probably involves a few million lines of C source that took likely the best software engineers in the world combined lifetimes to craft.
Well that's it, boys (Score:2)
Time to re-write the Linux kernel and a bunch of other stuff. It's just not popular any more. /sarcasm.
popular != good (Score:4, Informative)
McDonalds hamburgers are popular.
Guido van Rossum (author of Python): "I've learned a painful lesson, that for small programs dynamic typing is great. For large programs, you have to have a more disciplined approach. And it helps if the language actually gives you that discipline, rather than telling you, 'Well, you can do whatever you want.' "
Re: (Score:2)
I've got to give him credit for acknowledging that.
Although, dynamic typing really isn't all that great for small programs either IMHO - it's just less likely to bite you because you wrote all the code and have a better chance of not screwing it up. Sure, it saves some typing but the cost of that is pretty high when it comes to getting the wrong answer or having to spend more time debugging.
Re: (Score:3)
Yes, he deserves immense credit for his humility and honesty. And IMO you hit the nail on the head: Python saves you three seconds of typing, but then costs someone else two hours trying to figure out your code ;-(
Check this out: https://www.zdnet.com/article/... [zdnet.com]
Re: (Score:3)
In the real world, people use unit tests with Python, which replaces the need for typing.
Doesn't replace the need to document what the variable type is so people can read the code later on when the previous developer is gone.
Re: (Score:2)
In the real world, people use unit tests with Python, which replaces the need for typing.
Doesn't replace the need to document what the variable type is so people can read the code later on when the previous developer is gone.
Python, and other dynamically typed languages, require comprehensive unit tests, to catch errors that a compiler for a statically typed language would report. Personally, I prefer a fussy compiler which detects nonsense before you even try to run the code. You then write tests that exercise the logic of the code, rather than picking up lurking typos, which a decent compiler should have found.
Python has an advantage that its type system, though dynamic, is fairly strict. This means that basic types such as s
Re: (Score:2)
which replaces the need for typing.
Yeah no.
Re: (Score:2)
In the real world, people use unit tests with Python, which replaces the need for typing
Ah crap, for a second I thought that Python 3.10.0 had added built-in speech recognition. I guess I'll keep waiting...
Re: (Score:3)
Those unit tests themselves aren't unit tested, now are they?
If unit tests were sensible, it would be sensible to test ALL code. Including writing unit tests for those unit tests, and so on.
If they aren't, there's no point in writing them in the first place.
In reality, unit tests are just upping the statistical likeliness of being right by one single additional set of observations. How many sigma is a data set of ... two? ... It's not six sigma, I can tell you that!
Silly sweeping statements (Score:3)
"Tiobe, a Dutch software quality assurance company, has been tracking the popularity of programming languages for the past 20 years. Its rankings are based on search terms related to programming and is one measure of languages that developers should consider learning, along with IEEE Spectrum's list and a ranking produced by developer analyst RedMonk. "
If you're an electrical engineer, yes - definitely learn python. It seems to be everywhere in the field. People can learn it quickly enough to usefully hack things together without having to know much else about coding or computers.
But frankly, it's silly to look to the bloggers at ZDNet for career advice. You need to look at what dominates the field you're in - or the field you are hoping to get into. If you want to be a weather modeler, for instance, learning python is unlikely to help you get there. It's probably not going to open the door for many web jobs, either.
Re: Silly sweeping statements (Score:1)
Re: (Score:2)
Well, you don't HAVE to... :D ... Arr!
What about Rust? (Score:2)
Trivia will always be at the top (Score:4, Insightful)
"The long-standing hegemony of Java and C is over."
However these meaningless surveys of the "most popular" language will never end.
Pro tip: use whatever language is needed for the situation at hand. If you join a project that is using a language and tool set you haven't used before, then learn that language and tool set.
If you can't do that then you probably have very low talent or aptitude as a software engineer. If you don't want to do that you should be in some other job to begin with.
TIOBE is the wrong metric to measure popularity (Score:5, Insightful)
The index is calculated from the number of search engine results for queries containing the name of the language
https://en.wikipedia.org/wiki/... [wikipedia.org]
A suitably difficult or obscure language could simply top the charts without being the most popular by having a community that encouraged looking up solutions to all problems via search engines. Whereas a more popular language that was easier to use and offered a tighter community of useful libraries would be disadvantaged in by this metric.
If anything, TIOBE just proves more succinctly that there are now more bonafide lazy python "developers" using Copy/Paste from search result (cough StackOverflow) as their primary means of solving all problems.
For literally every survey I've seen that asked developers that have used both Python and Go which they preferred, the result has always leaned heavily in favor of Go. This really just seems like a crappy way to measure "popularity"
Re: (Score:3)
Popularity already is a actively harmful thing to measure.
Because it also *causes* popularity.
Distorting the index from linear to an exponential mapping.
Sensible would be, to list how *good* a language is. For each purpose. Broken down to a weighted set of factors.
But that would take brains. While entering a few search terms into some search engines (that's literally what TIOBE is) does not. While still generating clicks and ad revenue.
Re: (Score:2)
There's also PYPL, which effectively measures how many people are learning the language at any given time, by restricting it to language tutorials rather than just any random questions related to the language. In that index, Python got to the top a long time ago. Hardly surprising, of course, given that it became the de facto standard teaching language. But "how many people know language X?" is surely a valid metric of popularity.
"Most Popular" or "Most Searched for"? (Score:2)
I question that the language with the most searches is necessarily the "Most Popular Programming Language". It is just the most popular language people search for information on and that could be (and likely is) quite a different thing.
The first question is "what is Most Popular"? Most new/changed lines of code written in a period of time? Most people who wrote a line of code in a period of time? The most total person-hours spent programing in the
Re: (Score:2)
It's pointless to argue the merits or "popularity" of language without discussing what they're being used to create. There's no such thing as a language that's best for all things or all applications. Every one of them has all sorts of tradeoffs. Name any mainstream language, and I can probably list both its strengths and weaknesses, and what sort of applications its useful for creating.
For instance, as you said, C is a very simple language, with a tiny standard library. That means that for nearly anyth
Popularity = web search count (Score:2)
One can argue Python is very difficult to understand and you need to search the net to use it, compared to other languages.
Or you can argue Python developers trust random solutions offered by unknown posters on the net and search for them more often compared to other languages.
But is clear is, ZD net is just lazy. They report on easy to find things like web search terms. No salary surveys or open jobs surveys, or conferences and attendance to confere
For now anyway. (Score:4, Funny)
And next month ...
(Seriously, does this *routine* "most popular programming language" survey server any useful purpose?)
Re: (Score:2)
(It gets TIOBE some ad money. So they can keep wasting our time.)
Python hatred (Score:1)
Not really the rigth question: (Score:2)
Weird. (Score:3)
Q: What do these three languages have in common?
A: None of them is anywhere near as widely used as JavaScript, which somehow is the worst language in the world, but yet the most widely used.
Weird.
In our company, Java and C drastically outweigh JS (Score:2)
None of them is anywhere near as widely used as JavaScript, which somehow is the worst language in the world, but yet the most widely used.
Are you sure? We have a lot of JS on the front end, but that UI and services are backed by at least 4x more Java & C code. Same for most big tech companies, except their backends get much larger. It's odd. If JS was just a decent language, it would really dominate. While it has improved, non-compiled languages without strong typing are huge liabilities for long-term investment and ROI.
TIOBE is a shit index, says everyone of us. (Score:2)
The rank of each language is based on the frequency of matches on a search for the name of the programming language, in, according to Alexa Internet, the most important web sites with a search engine.
Even a tiny change in the entered search terms causes a massive change in rankings!
A single forum question is not distinguished from a complex compendium, and counted as "one occurrence"!
And only the first 100 hits are checked for plausibility, which is then extrapolated to the entire count of results!
E.g. Java
And computing around the world slows down (Score:2)
Sorry, but a compiled language is always going to be faster than an interpreted language.
Re:Well, DUH (Score:5, Insightful)
Similar to duct-taping a car for repairs (Score:2)
If they can get it to work and it performs the purpose for them, why would you call that shitty?
I can hobble a desk out of LEGOs or cardboard boxes. By your metric, I got it to work and it performs the purpose for me. I'd rather have a desk made out of metal or wood, though.
Python has strengths, but large applications or long-term usage are 2 areas they are weak compared to their competitors. If no money is on the line or you don't expect it to be around in 3 years, go nuts, use any language you want. If whomever is paying for your salary wants to keep the app around for 10 years, there are man
Re: (Score:2)
Re: (Score:2)
The one thing i'm being told over and over and over again in CS is this:
"You don't write code for yourself. You write it for the next guy."
So, if they write it solely for themselves, then fine. If they are writing it for an organization, then it's shit unless it's written for the next guy.
Re: (Score:2)
Re: (Score:3)
*laughs in Haskell*
C is a toy, mate.
Call me when functions are first class citizens and higher-order functions come natural and when you get algebraic data types and thread sparks and infinite data types and guarantees about types and side-effects. Or when you don't re-invent the memory management wheel from scratch every time you write a program. Or when C isn't single-handedly responsible for the majority of security errors because all the sanity checks have been left out.
C is what you use, if you want to