Is Python Becoming More Popular Than Java? (techradar.com) 107
Python has reached "a new all-time high" on TIOBE's index of programming language popularity. TechRadar reports:
Java's days as the world's second most popular programming language could be numbered according to Tiobe's latest programming language rankings which show Python is becoming increasingly popular among developers.
The firm's Index for October 2020 shows that Java has been overtaken by C as the world's most popular programming language when compared to the same period last year. Python remains in third place but it's quickly closing the gap between it and Java.
According to Tiobe CEO Paul Jensen, C and Java have held the top two spots consistently for the past two decades. However, the 25-year-old programming language Java is approaching its "all time low" in popularity as it has fallen by 4.32 percentage points when compared to where it stood in October of last year. Tiobe ranks programming languages in its popularity index based on the number of hits each language gets across 25 search engines.
RedMonk's rankings already show Python as more popular than Java — the first time since 2012 that Java isn't one of their top two most popular languages. And TIOBE's CEO says "Let's see what will happen the next few months."
Here's their October rankings for the top 10 most popular programming languages.
RedMonk's rankings already show Python as more popular than Java — the first time since 2012 that Java isn't one of their top two most popular languages. And TIOBE's CEO says "Let's see what will happen the next few months."
Here's their October rankings for the top 10 most popular programming languages.
- C
- Java
- Python
- C++
- C#
- Visual Basic
- JavaScript
- PHP
- R
- SQL
And coming in at #11 is Perl.
Please, define popularity! (Score:5, Insightful)
The number of programmers. ...
The number of open source projects.
The number of lines of code.
The economic value per line of code.
The number of university classes talking about that.
Please define.
Re: Please, define popularity! (Score:2)
... and if not everyone agrees, please retract.
Re: Please, define popularity! (Score:1)
Don't you know? :)
Words are always defined as what fits our wishes, agenda and mindset best. And every other definition is "not the generally accepted one" and "biased" and ours totally is "neutral" because brains are totally fucking able to do that!
Re: (Score:1)
Re: (Score:2)
Like most things in life, popularity is one of zeal and enthusiasm.
Attachment to those more regular metrics is how other social popularity contests may have slipped past your attention.
Re: (Score:3)
I think it's measured by "Number of open source projects".
I'm willing to bet MOST of us programmers are hired for companies, and work for internal projects. C is always at the top of these lists, and yet, business software, AFAIK, is very rarely written in C (plain C, C++, whatever). Java is the leader, with .NET a close second. Python has its place too.
Startups usually go for appity app apps, written in Java or JS (React Native). Or, whatever varian of C that Apple uses for iPhones.
I mean really, just look
Is Self-abuse more popular than interpersonal sex? (Score:2)
Judging by the raw statistics, yes. But I don't think it says what people prefer. It's just that some people have the skill needed to perform at a higher level (java I mean) and some make do with what they can do (Python).
It takes a lot of practice to reach a level where Java is actually comfortable and accessible while python is easier for a quick and dirty one-off job without the stress of achieving Java fluency
Re: (Score:2)
Re: (Score:2)
> The number of lines of code.
It can't be lines of code, because 100 lines of Python is the equivalent of 1000 lines of Java.
Re: (Score:2)
Ultimately I would say it's defined by a combination of supply (programmers who know the language very well) and demand (companies/organizations/open source projects that are looking for programmers who know that language). Lisp is actually pretty popular among geeky p
The reason (Score:1)
Re: (Score:2)
The writing was on the wall when Oracle bought Sun. It's just taking longer than expected.
The web going with JavaScript instead of Java was also a serious blow. I'm actually surprised JS isn't higher in the ranking. Business loves them some web apps.
Re: (Score:2)
Re: (Score:2)
is that people move away from java because of its licensing issues.
The only reason people use Java these days is because of Android and/or entrenched business apps.
Everybody else realized it was crap 15 years ago.
Oracle full of lawyers (Score:2)
Oracle has indeed been lawsuit-happy. Why would anyone trust them with Java? They made Microsoft look good in comparison, which is quite a feat.
I think probably true, but Java not going anywhere (Score:5, Insightful)
I can believe Python is becoming more popular than Java, as for quite a few years now Python has been the favorite of people just getting into programming. That is finally having a follow-on effect where it will surpass other languages.
However I don't see how Python becoming more popular than Java really means Java is going away. To me the uses for each seem pretty different (like all kinds of enterprise uses that Python is not great at replacing) with not a lot of overlap, so I cannot see how that ever happens.
I think the rise of popularly is because Python has crushed it in terms of experimental and research programming, especially with the rise of advanced neural network use... Python is just simply king there, and that field is rapid expanding. So Java wouldn't even have to lose many steady users for Python to surpass it in use.
Re:I think probably true, but Java not going anywh (Score:4, Interesting)
Not really comparable (Score:2)
Python is a much more approachable language than C or Java, but it has many of the same qualities as Basic
I honestly don't see it. I think python is actually kind of harder to learn than some other popular mainstream languages (though not harder than C). Think of the whitespace block rules alone, doesn't seem at all friendly to someone just learning programming.
Furthermore, while you could do some mildly fun things in Basic it really wasn't good at anything beyond the most simple stuff. Python is actual
P.S. Matrix manipulations and ease of programming (Score:1)
That last part, I meant to say something more like "may not be other language suited as well as Python to doing matrix manipulations" - obviously lots of other languages do a pretty good job, I think jusy think Python with Numpy makes things nicer toward with than other languages I've used.
Never used R at all though, maybe it's even better, seems like it would ale be well suited.
Re: (Score:1)
How about MATLAB, Fortran, and Julia for matrices?
Personally, I usually use C++ with Eigen for numerical linear algebra. Have rank-revealing QR decomposition, will travel...
Re: (Score:2)
How about MATLAB, Fortran, and Julia for matrices?
I've used both Matlab and Fortran, Python is easier to use for working with matrices (I think anyway).
Can't speak to Julia...
Note that I'm not talking about performance, that's totally different - just talking about ease of writing code that works with matrices.
Python edges it out over Matlab for me (which is obviously very food) because of all of the other things you can do in Python, and stuff like Jupyter Notebooks are more flexible and nicer to use than
APL! (Score:2)
First language I learnt, at school in late 1970s.
Then went to uni and had to write Pascal. Never understood why any program should need more than one line of code.
Java 11 finally allows java source files to be executed directly. So no need for javac, ant etc. Makes it feel like an interpreted language.
User defined operators, not just limited to the C++ ones, would be a good addition.
Re: (Score:1)
Ah, now I get what you were saying originally. That makes sense.
I've really only used python for doing symbolic algebra / calculus with sympy (calculating partial derivatives for Jacobian matrices, of all things), and for making beautiful graphs with matplotlib. I only know barely enough of the language to get by with those two things, but they're both great.
I don't use python for much else because it's slow, and I'm a lot more familiar with C++.
Re: (Score:1)
I don't use python for much else because it's slow
Even there though Python has done a really good job hooking into GPU acceleration (still probably slower than C++ but way faster than you'd expect from python).
I'm not really a big fan of python myself so like you I was just able to get by with what I was working on, but I could for sure see the appeal compared to matrix manipulation in other languages.
A shame really as I like so many other languages but python was just never one I could get to where I like
Re: (Score:2)
>Python edges it out over Matlab for me
For me, matlab lost the plot when I found I could not make matrices out of Galois field elements and do Galois field arithmetic on them.
In python the matrix library I had didn't do that, but adding it was trivial. Just feed it elements from my Galois library and the duck typing dealt with the rest. I discussed my pains with the matlab BCH library in an earlier post.
Re: (Score:2)
Yes, duck typing is very useful for mathematical code. That said, if you're doing maths in Python it's worth looking into Sage. (I address that remark as much as myself as at you, so I can't be very specific, but AIUI it uses Python as glue between some fairly powerful symbolic algebra packages. I've dabbled a bit, but to really make progress will probably have to wait until my next break in employment).
Re: (Score:2)
Sage isn't so useful for me as far as I can tell. I'm not really trying to do mathematics. I'm trying to take mathematics from papers and turn it into algorithms in hardware to put on chips. That's why GF arithmetic (of the sort that maps nicely to bits) and matrix operations are relevant to what I do. My homebrew matrix library will output the resulting individual operations in HDL format. So I can make it work in python first, then output the logic operations in a form that can be plonked on silicon. I'm
Re: (Score:2)
>Never used R at all though, maybe it's even better, seems like it would ale be well suited.
Good choice. Never use R. It's convoluted, poorly documented and getting data in and out is a nightmare.
Re: (Score:2)
Think of the whitespace block rules alone, doesn't seem at all friendly to someone just learning programming.
If whitespace is so bad for expressing groups of ideas. why did you use it in your very comment? { does this make it easier to understand what I'm saying (if I surround it in various brackets but not whitespace); also can we agree that whitespace is understood and useful? }
Re: (Score:2)
Nobody complains about the offside rule in Haskell, now that the "if-then-else in do" issue has been fixed. A lot of people complain about the lexical syntax of Python.
Despite what a lot of people claim, I find it very hard to believe that "whitespace as syntax" is the real problem. I think it's the specific way that Python does it and the way it interacts with the rest of the language.
For example:
- Python's syntax makes it look like a block-structured language, but it doesn't have block-scoped variables, w
Re: (Score:1)
Re: (Score:2)
Java is the new COBOL.
Lords of Java (Score:2)
Hmm... Time to remake Battlestar gallactia. Larry Ellison can play Baltar
Re: (Score:2)
Indeed. This ranking is silly. It's like saying Philips head screwdrivers are more popular than flat head screwdrivers. They are for different purposes.
Re: (Score:2)
I see people around me switching to python, from PERL, matlab, R and others. It's seems to reflect well on a language when it can pull in users from those other more domain specific languages. I stopped using R and do what I did in R in Python now, because its library support for statistics is good, I've been able to add the more esoteric bits with ease and the graph plotting support is better.
I've been using Python for a long time (pretty much from when it first came out - and I quickly made a decision to
Re: (Score:2)
I can believe Python is becoming more popular than Java, as for quite a few years now Python has been the favorite of people just getting into programming. That is finally having a follow-on effect where it will surpass other languages.
In terms of number of users, maybe.
Not because it's "best".
Re: (Score:2)
If there are programming language wars, Python is just winning them. I remember how Python supplanted Perl as the go to scripting language. Then Ruby came along and seemed like the next natural evolution... until it didn't. Python has survived and thrived for decades and even in its old age is increasingly becoming the language of choice for many programmers.
Many programming languages are popular simply because they are the language you need to use to hack something. C is necessary for almost all systems pr
Re: (Score:1)
But Python has thrived without a system specifically designed or it. People just prefer it.
Maybe it's a wrong impression I had, but I thought for quite a while early on that python was used pretty much just for systems programming scripting tasks, so it had that specific role... and then it was a few years (maybe 5/6) ago that suddenly it seemed to break out into much wider general programming use, which I have to assume is related to one or more of the advanced libraries like numpy. Like you say though, p
Excellent (Score:2, Insightful)
Python is a far more modern language design that Java, and its tool-chain is far lighter than the mess that Java is. At the same time, it offers both advanced constructs and it is pretty nice as glue-code for C modules. Writing C modules is also pretty easy, provided that you are a good C coder.
And, most importantly, no Oracle! Of course, there is some SJW infestation in Python and that is worrisome. But it will take quite a while until these morons have ruined the language and they may not be able to do so
Re:Excellent (Score:4, Informative)
public long getWindowId() {
if(Platform.isWindows()) {
WinDef.HWND hwnd = User32.INSTANCE.FindWindow(null, SEARCH_TITLE);
return Pointer.nativeValue(hwnd.getPointer());
}
if(Platform.isLinux()) {
Display display = X11.INSTANCE.XOpenDisplay(null);
Window root = X11.INSTANCE.XDefaultRootWindow(display);
return getWindowId(display, root);
}
throw new IllegalStateException("Unsupported platform: " + Platform.getOSType());
}
Re: (Score:2)
hahaha, you're confused. This was a "popularity" poll, meaning it gives younger developers and wannabe's a hard on. This is not the poll of what is used, nor what will get you a job.
Re: Excellent (Score:1)
"Python is a far more modern language design that Java"
+1 Funny
"Of course, there is some SJW infestation in Python"
-5 Attacked the SJW straw man
Re: (Score:2)
Java's tool chain is pretty simple: javac.
Actually much more simole than the C tool chain: cc.
As javac easily compiles a directory tree - and cc not so much.
Seriously, while setting up a complex project is not easy, it is 100 times more easy in Java today, than it was 30 years ago with C, cc and make. AND: projects got 1000 times more complex durin that time.
Re: (Score:2)
Seriously, you have no clue what you are talking about.
Ever tried to review java code without the editor it was written with?
Re: (Score:2)
Yes, as more or less everyone uses a different IDE, and it looks the same - more or less - in every IDE, no idea what point you want to make.
Re: (Score:2)
What does "more modern" mean? And why does that make it better?
Re: (Score:3)
Python is a far more modern language design that Java,
Oooh, now there's an interesting definitional question. Python's syntax is certainly more recent (it's 1980s Occam compared to Java's 1970s C), but Python's type system is much less modern (1960s pre-Scheme LISP, as opposed to Java's 1980s Modula-3).
I certainly hope so ! (Score:1)
The JVM continues to be a resources hog, but remains very popular with other languages (Scala, Clojure. Groovy, Kotlin) compiling to bytecode in for the JVM. Java in particular provides enough safeguards that many people who should not be programmers are able to write code that does not crash. In particular it has allowed many a pointy-hair-boss to try his hand at programming and conclude that it is easy, simply because the resulting code does not crash. It does not generate the correct results either, but
Re: I certainly hope so ! (Score:2)
Well, either you can provide safeguards, OR yo can be lean.
C++ tries to have both, and falls flat on its face every time for how many decades now?
The only way past that that I saw, is have it have all guarantees at compile time. But then you get a GHC situation, where you a drowned in incomprehensible type errors and all the slowness being condensed into the compile process. ;)
Re: (Score:2)
C++ tries to have both, and falls flat on its face every time for how many decades now?
Maybe you're thinking of another language. This throws an "out of range" exception on my version of C++:
vector<int> a(10);
a[11] = 666;
I can turn the checking off with a compiler switch but it's been on by default for a decade.
Also notice I didn't use malloc or free or any memory management functions. The compiler takes care of that.
Re: (Score:3)
> in particular provides enough safeguards
> that many people who should not be programmers
> are able to write code that does not crash
Precisely. Think of how bad the average programmer is and then realize that half the programers are worse than that.
Java lets the corporate world have quite a bit of almost-working software. It's not going anywhere.
They're all still going to "catch Exception e" in production, of course.
Re: (Score:2)
Surprisingly, sometimes that is exactly what you want Ë_Ë
Re: (Score:2)
These days, production systems run Python in a container because getting the right version and dependencies set up on an arbitrary distro is a pain. The JVM is less of a hog than a container in terms of disk and about about equivalent for RAM. Performance between a container and a JVM is theoretically in favor of containers, but in practice it's a wash.
Re: (Score:2)
Sysadmins like to stick everything in a container. There are no reasons you have to containerize Python. It's got a very good, light-weight virtual environment built in.
Re: (Score:2)
Sysadmins like to stick everything in a container. There are no reasons you have to containerize Python. It's got a very good, light-weight virtual environment built in.
It depends on the situation. I may want to run an application on a version of python newer than what's on the machine presently. I don't want to upgrade it as there might be other dependent apps that could break. So I could either install a whole new version of python separately on that machine or whip up a simple dockerfile to pull down the exact version I want.
Containerization is like anything else: it's a tool. Sometimes the tool is appropriate and sometimes not.
Re: (Score:2)
You can do that no problem. I *always* recommend people install their own Python so they don't mess with the system one. Venv handles different versions of the interpreter no problem.
Sure, you can use a container if you like it better. OP implied different versions of Python were difficult to use without a container, and complained about containers.
Re: (Score:2)
The performance myth of the JVM again.
Lol, it is 2010 and not 1997.
Not the same category. (Score:3)
Python is a scripting language. Those are for quickly cobbling things together.
Python is nice at that.
But if you are trying to use it as a full programming language, for anything important, big and long-term, You're Gonna Have A Bad Time(TM).
And Java is already a bit of that, to be honest. It might be all enterprisey nowadays, but it started out as a simple interpreted language for home appliance automation by the user.
Back then, it was implied that the average person passed middle school though and didn't pride himself on being too retarded to know what a function is. So Java was considered almost too simple and limiting for the average user.
Question: (Score:2)
But if you are trying to use it as a full programming language, for anything important, big and long-term, You're Gonna Have A Bad Time(TM).
Does Python have [competitive] GUI and business logic programing capabilities?
Something comparable to Microsoft's Visual Basic that can be employed to interface GUIs to database server backends? If so, examples please.
Re: (Score:2)
Are there languages that do mot have "business logic" programing capabilities? Or GUI?nPlease update me, for a moment you scared me!!
Re: (Score:2)
WTF is "business logic programming capabilities"? Python has a pretty capable random number generator, yes.
It's also got a good backend-agnostic database interface built in, and lots of other ones available. There's support for a bunch of older GUI systems like Tk and Wx, and more current ones like Qt. I think most people likely just use some form of HTML renderer though; you can go the micro framework route (there are a bunch), or something self contained like Electron.
Re: (Score:2)
Java has had JIT compilation almost its entire history as a publicly-usable product.
Re: Not the same category. (Score:3, Funny)
Re: (Score:1)
Real programmers doing real work aren't using Python for anything other than minor utilities here and there.
Re: (Score:2)
And nevertheless the biggest MMO - Eve Online - is both server side and client side mostly written in Python.
Re: (Score:2)
Python is a scripting language. Those are for quickly cobbling things together.
Python is nice at that.
But if you are trying to use it as a full programming language, for anything important, big and long-term, You're Gonna Have A Bad Time(TM).
This.
eg. Try running some python code that was written 10 years ago and see what happens.
Re: (Score:2)
I can run python code that I wrote 22 years ago, unmodified. I know, because I did it the other day.
I wrote a commercial backend in Python in 2001 based on Zope (most of you have no idea what that even is but it was a CMS written in Python by a company called Digital Creations, and open sourced before open sourcing was popular). It served our needs well.
At my job today we use java almost exclusively for server side work, almost always using Spring/Spring Boot/RxJava. It is efficient, fast, and effective,
Re: (Score:2)
I can run python code that I wrote 22 years ago, unmodified. I know, because I did it the other day.
I should have qualified that for the pedants:
Try running that code on the latest version of Python, or on a randomly chosen internet user's machine.
Re: (Score:1)
Re: (Score:1)
Re:That salary range was for juniorish developers (Score:4, Insightful)
You are looking for juniors, with experience, that know how to write tests, package, and have a CS degree.
Here's the thing: You're what's wrong with the industry. Not the "juniors that can't do shit", but the idiots like you that want to demote "experienced programmers" to juniors, and call actuall juniors "shit".
Re: (Score:1)
Re: (Score:1)
Re: (Score:1)
In what context? (Score:2)
Re: In what context? (Score:1)
Hopefully (Score:3, Interesting)
Re: Hopefully (Score:2)
Re: (Score:1)
Re: (Score:2)
Actually, pretty much the only cross platform issue I've seen with Java applications is making assumptions about which way the file separator "/" or "\" slopes.
Re: (Score:1)
What has? Maybe perfect cross-platform running is an impossible dream. In that case, then almost cross-platform becomes the next best alternative.
Re: (Score:2)
Yes it does run on Mac OS as on Windows, for example.
Idiot.
Popluar? Or most used? (Score:4, Insightful)
Most used probably because managers are insisting that a round peg be shoved into a starfish shaped hole. Python, everyone uses Python so we must also use it. Python programmers are cheap. So what do people do? Learn python. Use Python despite deep flaws. Use Python despite there being better tools for the job. Use Python! We command it!
This happened with:
Basic
C
Lisp
C++
VIsual Basic
Java
C#
and a host of others I probably missed.
Now it's Python's turn.
Re: Popluar? Or most used? (Score:1)
answer is no (Score:2)
For 95% of you, Python is not the language that likely will make you a living, nor is it among the most used. It's just a "what is your favorite marvel heror" type of poll. Python can't replace Java or C nor C++ in the next ten years, for example.
Re: (Score:2)
Python will be dead and buried and C/C++ and Java will still be there. Python is a toy
Re: (Score:2)
seems useful for some things, our data scientists at work use it. makes it a quick and dirty Fortran with good math library and web platform support or something....
by USERS or PROs? (Score:2)
Users out number Pros:
It's easy to see Python will be #1, even NON-PRO programmer will be using python as complex software tools support automation/integration and the most powerful solution is programming. Like on Star Trek, everybody will be expected to "program" computers for their jobs. There will still be a big difference between users and engineers.
"Real" or professional programmers will use pro-level tools or create tools from scratch. This is not an area best suited for a novice or user level langu
Re: (Score:2)
Bingo. But the reason why the question is hard to answer is that according to "Uncle" Bob Martin, the number of programmers doubles every five years. That means that half of all programmers have five-or-less years of experience, and 75% have ten-or-less.
Our industry is in a perpetual state of inexperience.
When what the code is formatted like controls... (Score:2)
Leaving aside how grossly prejudiced the concept of tying formatting to program flow is to visually impaired individuals who would not necessarily have the visual cue that indentation ordinarily offers a programmer anyways, programs in programming languages where formatting is not enforced and that happen to be badly formatted such that the program flow is not intuitively conveyed are not significantly di
NEVER (Score:1)
Re: (Score:1)
bogus question (Score:1)
What popularity is not (Score:1)
Nothing to see here .. just posturing (Score:2)
All someone needs is the willingness to
And last but not least... (Score:2)
I love the: "And coming in at #11 is Perl" :)
We don't want anyone's feelings get hurt