Is Python About to Become the Most Popular Programming Language? (zdnet.com) 176
"According to one measure, Python is potentially on the verge of becoming the most popular computer programming language," reports ZDNet, joining C and Java as the only other two languages to attain the #1 spot.
Of course, it depends on who's making the list... Python has been snapping at the heels of Java and C for the past few years on the 20-year-old Tiobe index and recently knocked Java off the second spot to rival C. Tiobe, a software testing company, bases its rankings on searches for programming languages on popular websites and search engines.
The Tiobe index is updated monthly, and it doesn't align with other language popularity rankings. For example, the electrical engineering magazine IEEE Spectrum has ranked Python as the most popular language since at least 2020, followed by Java, C, and JavaScript, while developer analyst RedMonk has JavaScript in top place, followed by Python and Java, and places C at tenth...
"Python has never been so close to the number 1 position of the TIOBE index," writes Paul Jansen, chief of Tiobe software. "It only needs to bridge 0.16% to surpass C. This might happen any time now..."
Python is hugely popular because of machine learning, but it has no place in mobile app development or web applications or development on mobile devices. It's also slow. Python's creator, Guido van Rossum, who works at Microsoft, recently conceded Python consumes too much memory and energy from hardware. He's working to improve Python's performance and reckons double is feasible...
Tiobe's top 10 programming languages in September 2021 were C, Python, Java, C++, C#, Visual Basic, JavaScript, Assembly language, PHP, and SQL. The top 20 languages also included Classic Visual Basic, Groovy, Ruby, Go, Swift, MATLAB, Fortran, R, Perl, and Delphi. Fortran's re-emergence as a top 20 language is notable. Just in July 2020, Tiobe ranked it as the 50th most popular language. But earlier this year, Fortran shot up to the 20th spot in Tiobe's index.
Paul Jansen, chief of Tiobe software, also called out some other interesting moves in this month's calculation. "Assembly gained 1 position from #9 to #8, Ruby gained 2 positions from #15 to #13, and Go went up even 4 positions from #18 to #14."
Of course, it depends on who's making the list... Python has been snapping at the heels of Java and C for the past few years on the 20-year-old Tiobe index and recently knocked Java off the second spot to rival C. Tiobe, a software testing company, bases its rankings on searches for programming languages on popular websites and search engines.
The Tiobe index is updated monthly, and it doesn't align with other language popularity rankings. For example, the electrical engineering magazine IEEE Spectrum has ranked Python as the most popular language since at least 2020, followed by Java, C, and JavaScript, while developer analyst RedMonk has JavaScript in top place, followed by Python and Java, and places C at tenth...
"Python has never been so close to the number 1 position of the TIOBE index," writes Paul Jansen, chief of Tiobe software. "It only needs to bridge 0.16% to surpass C. This might happen any time now..."
Python is hugely popular because of machine learning, but it has no place in mobile app development or web applications or development on mobile devices. It's also slow. Python's creator, Guido van Rossum, who works at Microsoft, recently conceded Python consumes too much memory and energy from hardware. He's working to improve Python's performance and reckons double is feasible...
Tiobe's top 10 programming languages in September 2021 were C, Python, Java, C++, C#, Visual Basic, JavaScript, Assembly language, PHP, and SQL. The top 20 languages also included Classic Visual Basic, Groovy, Ruby, Go, Swift, MATLAB, Fortran, R, Perl, and Delphi. Fortran's re-emergence as a top 20 language is notable. Just in July 2020, Tiobe ranked it as the 50th most popular language. But earlier this year, Fortran shot up to the 20th spot in Tiobe's index.
Paul Jansen, chief of Tiobe software, also called out some other interesting moves in this month's calculation. "Assembly gained 1 position from #9 to #8, Ruby gained 2 positions from #15 to #13, and Go went up even 4 positions from #18 to #14."
meaningless ranking (Score:5, Insightful)
"Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings"
Popularity based on search engine results... not based on usage, jobs, amount of code written either in a given year or all years. I'd like to see a meaningful metric, though of course even COBOL would whup Python in such a thing and Java and C likely would be top as always.
Re:meaningless ranking (Score:5, Insightful)
Re: (Score:2)
To be precise, but maybe nitpicky, it doesn't even imply they actually need to. Just that they do.
. . ,
Why do I hear "correlation is not causation" music?
Googling is a good idea (Score:2, Offtopic)
Re:meaningless ranking (Score:5, Insightful)
Re: (Score:3)
Your English example is a good one.
As far as native languages go, Mandarin is the most prolific on the planet. But is that really useful if you're deciding what language you want to learn?
As far as total speakers go, several hundred million more people speak English- though not natively.
But is Mandarin going to overtake English in total speakers? Maybe.
It's useful to have the metric, you just need to be careful not t
Re:meaningless ranking (Score:5, Informative)
No, mandarin has nearly a billion native speakers using it every day.
That is a common misconception.
Mandarin is the official language of China.
For more than 50% of the population it is the second language - because their first language is their home language, and that is not Mandarin.
Would COBOL actually win? (Score:2)
Re: (Score:2)
Python is used mainly (or only) with machine learning more as a consequence of the ML tools only being available as Python (eg Pytorch, Tensorflow), that is what's driving it's popularity.
Python itself however is a rather poor and fragile language with an inflexible syntax and poor performance. This makes it an extremely poor to use for iterative software, where if you have to add or remove sections, you end up reformatting the script over and over, where as in nearly every other language, you can add/remov
Re: meaningless ranking (Score:2)
Python itself however is a rather poor and fragile language with an inflexible syntax and poor performance. ... if you have to add or remove sections, you end up reformatting the script over and over, where as in nearly every other language, you can add/remove sections by commenting things out without needing to reformat thousands of lines.
This is utter nonsense. Python has as rich a syntax as any modern language, with natural extensibility via first-class functions, class objects, modules, etc.
And commenting out sections of code is trivially easy in any code editor -- usually just mark it and press ctrl-/ or cmd-/.
Re: meaningless ranking (Score:3)
In a language like C or Perl, you can almost imagine programing with
echo foo++; >> bar.c
and theoretically being able to make progress. The nonhyperbolic point being that the language works with any editor, including windows notepad.
Sure, automatic block indent or comment is nice to have in an IDE or a standalone tool like emacs or notepad++ but the language doesn't all but mandate their use.
Requiring external tools for any reasonable workflow for any reasonably sized project (usually measured in many
Re: meaningless ranking (Score:2)
In a language like C or Perl, you can almost imagine programing with
echo foo++; >> bar.c
More nonsense. Surely being writable via "echo" statements is not what makes a language worth using? If so, even your example would fail the test, due to the semicolon. And any more complex C would be worse.
I spent years writing sql, C, xml and other languages in plain text editors -- Notepad and TextEdit. These languages don't require indenting the way that Python does, but I (like any decent programmer) certainly was sure to indent my code in a way that clarified my meaning.
It was not hard to start writin
Re: (Score:2)
Re: meaningless ranking (Score:2)
If your blocks are too big to fit on one screen, the benefit of indentation rules for readability goes away in many instances. Then you're left with a rule that confers no benefits.
For "quick" debugging, it's easier to prepend and append aif(0){ ...} than it is to indent and later unindent a big block of code...that might also not fit on one screen.
I'm not saying it's impossible. I'm not saying it's *very* difficult. I'm saying that this particular mode of writing and testing and debugging code, one that I
Re: (Score:2)
Python is used mainly (or only) with machine learning more as a consequence of the ML tools only being available as Python (eg Pytorch, Tensorflow), that is what's driving it's popularity.
That is nonsense. Python is used for everything.
Python itself however is a rather poor and fragile language with an inflexible syntax and poor performance
That is 3 times nonsense in one single sentence, lol.
You obviously never sued Python. So why rant about it?
This makes it an extremely poor to use for iterative software,
Re: (Score:2)
Re: meaningless ranking (Score:2)
I agree. Seems like a moment's thought would get you to a Fermi problem, "which language are people using the most?", however you define that, and then the natural place to look would be GitHub language stats [google.com]. Then the answer seems to be pretty clearly JavaScript followed by Python. Not sure if that is based on number of lines hosted on GitHub or added to GitHub each year, or whether it is based on private or public projects, but it may not make much difference. Anyway this seems like a better measure of w
Re: (Score:2)
I'd argue that's not the code running the world though, by and large you won't find banking, insurance, health, industrial, logistics code of the planet there.
Re: (Score:2)
I'd argue that's not the code running the world though, by and large you won't find banking, insurance, health, industrial, logistics code of the planet there.
OK, so maybe count job listings instead of GitHub commits. That's probably a better measure of "real work being done" than counting searches and questions.
If you're arguing that Cobol is most important because it has the most lines of code in service, that may be the case, but it doesn't really seem to align with the idea of "becoming the most popular programming language", which sounds more like "which language has the most new lines of code being put into service this year?" (Or most hours of work being d
Of course (Score:2)
Why not? Python has a big user base and library support. Most popular among internet users for scripting, for sure.
Re: (Score:2)
So was BASIC (Score:4, Insightful)
For nearly two decades, BASIC was the most popular programming language. It was shit in every regard. Slow. Prone to bugs. Hard to debug. Difficult to read. One might argue it was easy to teach but it taught the worst way to do things. Those who don't study history are doomed to repeat it.
Re: (Score:2)
For nearly two decades, BASIC was the most popular programming language.
That is probably down to limited choice of free (as in beer) languages. I did some BASIC when I first started a business with a friend, who was a bit of a computer pioneer. He built a computer from scratch, based on a Z80 processor, with a full 64k of RAM, and two 8" floppy drives. Cost a fortune. I used to write algorithms in BASIC, which I ran on the big box, then my pal translated each line into assembler, including the lines of BASIC as comments. It worked rather well. The better language at the time wa
Re:So was BASIC (Score:4, Insightful)
So in the end, it's just a random-access Perl substitute. But that's quite OK. :)
Except at the end of the day, it's still an inferior substitute.
Python excels at requiring more typing and more CPU cycles to do the same amount of work. Some will argue that since it requires more verbose structure, it's more maintainable, but I have seen no evidence in 15 years of maintaining both to back that up.
Just the other day, I was looking at a "recommended" cron job for letsencrypt.
0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
And all I could think was "what the fuck- why?"
*@*-air:~$ time python -c 'import time; time.sleep(1)'
real 0m1.074s
user 0m0.015s
sys 0m0.029s
*@*-air:~$ time perl -e 'sleep(1)'
real 0m1.020s
user 0m0.003s
sys 0m0.008s
Again... just.. why?
In what universe is
import random; import time; time.sleep(random.random() * 3600)
more elegant than
sleep(rand(3600))
As someone who works with both every single day, I never been struck with some realization that Python is good at... anything. Its popularity, like most popularity contests, has fucking nothing to do with its merits, and those who act like it does are simply deluded. Python is trash. System ecosystems have gone downhill as things have transition from perl backends to python.
Re: (Score:2)
So in the end, it's just a random-access Perl substitute. But that's quite OK. :)
Except at the end of the day, it's still an inferior substitute
My first real scripting language was Perl. I was initially quite impressed, but what I found was that the enormous syntax meant that I was always looking stuff up, just to do the simplest things.
Python, on the other hand, just seems to work. It has a fairly regular syntax, with not too many rules for the basic stuff. I often just bang in what looks right, and it works.
Python excels at requiring more typing and more CPU cycles to do the same amount of work.
I am not particularly fast at typing, but I don't find Python so verbose that it is a slog. As for the execution speed, I wasted a load of ti
Re: (Score:2)
My first real scripting language was Perl. I was initially quite impressed, but what I found was that the enormous syntax meant that I was always looking stuff up, just to do the simplest things.
I find this confusing. The core perl language isn't any more complicated than any other core language.
Python, on the other hand, just seems to work. It has a fairly regular syntax, with not too many rules for the basic stuff.
I'll give you syntax is "interesting" in perl, vs. python, which has a syntax that's about as contextually powerful as BASIC.
I often just bang in what looks right, and it works.
Sure, that's generally how the grasp of any language goes.
I am not particularly fast at typing, but I don't find Python so verbose that it is a slog. As for the execution speed, I wasted a load of time optimising table lookup, but that did not make the code work any better in practice. I re-wrote things in dumb stupid fashion, and there was no noticeable loss of lookup speed, but the code was much easier to expand, and the job got done, and is ready for action now.
Sure. But you're missing the easiest optimization you could have used: Not used python.
I reviewed what happened with my (former) boss, and I had definitely been seduced by various forms of premature optimisation. I was spending days shaving milliseconds off a job I would probably only run a few times a week, on average.
So, let's say Python uses about 300% more cycles to do any specific job compared to Perl. Some jobs are a bit worse than that, some are a bi
Re: (Score:2)
The core perl language isn't any more complicated than any other core language.
It depends on what you call the core Perl language. I suppose there is a subset of Perl that is about as simple as C, for example. But what I found in practice was bits bolted on from many other languages, such as a special syntax for handling regex matches, which I think was copied from AWK. And I recall some odd syntax, I think copied from Unix shell, for slurping a file as a list of lines. All very useful, but the point is that these features were not just implemented as library functions, but built in t
Re: (Score:2)
It depends on what you call the core Perl language. I suppose there is a subset of Perl that is about as simple as C, for example. But what I found in practice was bits bolted on from many other languages, such as a special syntax for handling regex matches, which I think was copied from AWK.
Ya, I'll concede that.
But ultimately- you don't need to use any of that special syntax. If you're more comfortable without pull from file globs via brackets, or using slashes for regexes, you can use both as you traditionally would in a different language.
If I were really concerned about CPU cycles, I would not use Perl or Python. I would probably use C++. If I am concerned about just fixing a little text file munching job, where speed does not have any impact, then I would prefer Python. I just find Python easy to use for those kind of jobs.
Level of concern about CPU cycles isn't a boolean. There's middle ground between Python and hand-crafted machine code.
This brings us to the core need that leads to the use of such languages- avoiding the complication and inflexibility of compiled languag
Re: (Score:2)
Perl's contextual rules are complicated, but they're deterministic.
That is true, in that the rules are applied by a deterministic compiler/interpreter. But if the rules are complicated, that makes it more difficult to reason about what the code you have written is actually doing. I am quite a devotee of code analysis, to supplement automated testing.
My former colleague used to call me in for a "talk through", when his code did not work as intended. He reads his code, often in assembler, and explains what each statement is for, and what the intended effects are. I would try
Re: (Score:2)
Re: (Score:2)
Meh, I also do systems stuff,.. massive simulations. We moved from Java to Python and saw a huge speedup.
Uh huh.
If you are just making blanket 'python is slower' statements, you are either being too narrow in the use cases you are considering, or you are not doing proper analysis of where your bottlenecks are.
Nonsense.
Python is slower.
There's no narrowness about it. You'd be hard pressed to find any situation where it outperforms any other language known to man.
I've found the vast majority of the time python, in real world scenarios, does not preform any worse than languages like C..
You're a liar.
ESPECIALLY in 'systems'.. and you know what, in those cases where Python doesn't handle some tight loop or quick IO, you use something else.
Python, as I demonstrated, is even shit for "quick IO"
Use the right language for the task and keep things modular.
Agreed. Unfortunately, there is no task known to man that Python is best at.
Python makes for great glue and control systems.
Horse shit.
You just like the language, and thus ignore the things that make it terrible.
Python control systems are universally slow, clunky, and need to be restarted because they'll run themselves to re
Re: (Score:2)
I think that "import random; import time; time.sleep(random.random() * 3600)" is much more elegant. It doesn't rely on initials and it doesn't pollute namespaces.
Re: (Score:2)
I think that "import random; import time; time.sleep(random.random() * 3600)" is much more elegant.
That's fine, but you're an idiot.
It doesn't rely on initials and it doesn't pollute namespaces.
Initials?
Do me a favor- identify the initials:
sleep(rand(3600))
Now, if you missed the part where I mentioned that I'm completely fluent in Python as well, you're going to be in for a surprise, because your bullshit is getting called out.
I can write shitty code in Python that uses bizarre characters too.
d={k:int(v) for k,v in [_.split('=') for _ in 'a=10,b=20'.split(',')]}
Seriously, only kids use languages without variable declaration.
Re: (Score:2)
That's fine, but you're an idiot.
The fact that when I explained why Python syntax looks imo better than Perl you responded this, is probably the best argument for using Python over Perl. (Didn't bother to read the rest of what you said, I don't bother with adults who speak like children)
Re: (Score:2)
Python excels at requiring more typing and more CPU cycles to do the same amount of work.
If that's one's metric then we all should be learning APL. [wikipedia.org]
Re: (Score:2)
Re: (Score:2)
Eh, like all things, python can be abused, and sometimes people like using one language for everything.
Agreed entirely. That's not what my post was about.
Python is great at a lot of things, but single line commands like that is not really one of them for the reason you can easily see, it requires imports.
No. No it's not.
It's good at a tiny vanishing amount of things. The fact that it's popular with idiots means we see the shit everywhere. It's systems level php, with a nearly analogous level of fucking idiocy baked into its design.
Re: (Score:3)
I don't recall Python being easier than C#.
Perfectly possible that I'm not a good sample, however, other very popular languages arguably do not fit your criteria at all, so I'm still leaning toward "popularity is based on cultural trends that have no implicit tie to merit, nothing more"
Re: (Score:2)
I just type in the pseudocode which I would normally scribble on a piece of paper before I start programming, and Python usually interprets it correctly. I am often amazed how well it handles it-should-roughly-be-something-like-this stuff I throw at it.
Christ. You can't be that stupid.
If your pseudocode looks like Python, it's because your pseudocode is thought about, in your head, based upon Python.
Re: (Score:3)
Python's two strengths are that it's easy to interface with C, C++ and FORTRAN libraries and it's also easy to learn and use.
That's resulted in it having a shit tonne of very good libraries, the latest of which are the famous machine learning ones.
Re: (Score:2)
Python's two strengths are that it's easy to interface with C, C++ and FORTRAN libraries
This part is actually true.
Python's native interface is just good, period.
That's resulted in it having a shit tonne of very good libraries, the latest of which are the famous machine learning ones.
I'm not really sure where this comes from.
I've yet to encounter a real world ML scenario that used Python. Python makes it easy and fun to play around with ML, for sure, but ultimately, you're in for a lot less headaches using actual native interfaces instead of bizarre non-native interfaces that don't translate well.
Re: (Score:2)
Quite shitty for professional/long-term use!! (Score:5, Insightful)
Python is a long way from shit though. It is a quite emergent language. (Lots of possibilities for the amount of types of Lego bricks.)
Of course it tries to put Lisp/Haskell icing on the imperative/OO cake, which ends up being more tacked-on than elegant. So in the end, it's just a random-access Perl substitute. But that's quite OK. :)
Python is absolute shit in professional settings. Want to do a quick script? Python is unbeatable. Want to run it 10 years from now? Whomever inherits your python code will HATE YOU and hate your existence. Is it python's fault? No, not really. The same issue applies to JavaScript. It's a tool designed for quick scripting, not serious professional software development. You will notice the impact after whatever you write is released in production, is making money, has changed hands 5x and has been live for 10 years.
I work for a major tech company. We have projects in many languages. The C++ and Java teams have the best record. The absolute worst are our Python and JavaScript projects. All were quick prototypes that ended up getting too useful for their own good. The people on those projects seem quite intelligent. They have decades of experience and degrees from top universities. They are more impressive than me and my team in every visible metric, yet we deliver on time with very few bugs. They have constant delays, constant outages, and a huge load of bugs reported. Porting their app to Python3 took over a year, was estimated for 3 months...kept finding bugs after bugs. Going from Java 8 to Java 11? We changed 1 flag in Maven and our team was done...spent some time running our automated regression suite to confirm, handed it off to QA, we were way ahead of schedule.
Untyped scripting languages are not suitable for large projects or even professional ones. When your team is tiny, you can do whatever you want. When you've changed maintainers 5x because the original author got promoted or fired or reassigned, strong typing and compilation and a culture of test driven development mean the difference between the fate of our Python projects and the fate of our Java projects.
Java has a lot to learn from Python and is far from perfect, but Python has much more to learn from Java, C, Kotlin, C#, Go, and other serious languages. However, that's not just my opinion. That's my observation in the field. That's what I have seen from companies who have invested significantly in Python. Can you successfully deliver a large project in Python? Sure, I suppose you can. However, my assertion is it would have been much smoother and cheaper in Java, maybe not for the first release (I can work as fast in Java as any Python/JavaScript dev, language means little in speed with modern IDEs), but as your project makes money, changes hands, expands, all the things that annoy you about Java, C++, C#, Kotlin, etc make sense and become lifesavers.
When you do this professionally, you have to think about the long-term impacts. Getting the thing out the door is only one small part of the life of a professional app. It needs to be constantly updated. It needs constant patching for security fixes. It needs to be ported to the latest version of the platform and if it has actual users and is making money, new features will be added constantly. You can bet the original author won't be there in 5 years, either being promoted, fired, retired, reassigned, or just leaving the company. From both direct experience as well as seeing the work product of Python enthusiasts, I can say it is far from the best choice for writing a business application.
What is wrong with Baisc! (Score:2)
I actually do quite a bit of Visual Basic today. Unlike Python, it has static typing which is a big advantage. It is a bit clunky around the edges, but as a programing language it is fine.
It usually counts from 1 which saves many issues. And End Ifs are better than indenting or{}s.
Re: (Score:2)
Re: (Score:2)
Want to do a quick script? Python is unbeatable.
Not true. Modern C++ reaches Python levels of easiness if you're willing to forgo extreme performance. Modern C++ has filesystem and regex support- which are what most quick scripts need the most. Modern C++ even has an async library which is good for quick and dirty and quick scripts.
Then there's all those syntax simplifications like auto, CTAD, range-for, and lambdas that positively makes C++ look like a scripting language.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Examples that comes to mind:
https://en.wikipedia.org/wiki/... [wikipedia.org]
https://de.wikipedia.org/wiki/... [wikipedia.org]
Wrong conclusions? (Score:2)
Well.... (Score:2)
Re: (Score:2)
Assembly isn't a language. It's a type of language, and there are many extremely different languages in that set.
Re: (Score:2)
Re: (Score:2)
In the same way that Python and Ruby are a similar class of language.
Various assembly languages have completely different syntax, and completely different paradigms. An accumulator is sometimes a register, sometimes it is not. Sometimes it doesn't exist at all.
Re: (Score:2)
Probable explanation (Score:2)
is that half the searches were something like "Monty Python language joke" and they wound up saying "WTF?"
Re: (Score:2)
Except C and C++ throws all that out the window. Not to mention C++ being three instead of two must mean OOPs must be hard to wrap one's mind around.
Performance ain't always important (Score:3, Insightful)
I use Python to run test suites for specialized optical hardware. And here's the clincher:
I DON'T GIVE A SHIT ABOUT PERFORMANCES
I care about being able to onboard new hardware quickly and get a test suite implemeted quickly, processing the test results quickly, changing the output format of the reports quickly when requested, generating an Excel of said test results when the regular PDF doesn't cut it quickly.
My boss likes it when I'm asked to do something and it gets implemented quickly. He's more than willing to throw extra iron at it so long as I deliver fast. He's not interested in my software running efficiently on an embedded 386 if it means making custom libraries, compiling, debugging, rincing for days on end. With Python, I grab the library I need, I write a 2-page class or two for the new hardware, then concentrate on problems of optics and statistics instead of wasting time on software.
At least for this job, gimme language flexibility and a huge wealth of libraries over performances anyday.
Re: (Score:2)
Hence why MATLAB [mathworks.com] and LabVIEW [ni.com] is so popular.
Re: (Score:2)
I DON'T GIVE A SHIT ABOUT PERFORMANCES
People who say this tend to write O(n!) solutions to problems.
Re: (Score:2)
Quite likely his test scripts tend to O(n). The performance loss in the python part is probably minuscule compared to the runtime of the actual hardware tests that Python is shepherding. This is definitely an area that Python works well.
Re: (Score:2)
I actually find a lot of C developers, or other "performance" languages tend to have a lot of the bad algorithms with poor big O speeds.
They often rely on the fact the language is faster, but often get exhausted from writing effecent code, where crap calls get created.
Oh look an advanced memory caching system, that has a bubble sort.
Re: (Score:2)
Re: (Score:2)
Something I have found with Python over the years, there is not as much room for near the metal optimization as things like C, but the underlying engine has REALLY efficient implementations of a lot of stuff, esp if you bring in libraries like numpy. If you write things in a way that the interpreter has an efficient path for, rather than trying to hand roll your own implementation, you
Re: (Score:2)
Yes. Like I said for this job it's fine. The code spends most of its time sleeping while waiting for the test equipment to take samples. The only time it needs to do anything CPU-intensive is when it collates all the results and does some stats on them, and - in one case - some basic optical recognition. And for the latter I use OpenCV, which doesn't do any of the heavy lifting in Python anyway.
I'm not saying Python is the end-all, be-all language that applies to all problems. I'm saying for my particular u
Re: (Score:2)
...gimme language flexibility and a huge wealth of libraries over performances anyday.
The availability of libraries that you can rely on is a clincher for practical software development.
People moan about C++ being a bloated monster compared to C, but I really wish I had STL in C. You can make a vector of Things, and not worry about allocating memory for an array, and writing functions to access the data, because most of the work has already been done, and written and tested by someone much better at software than I am. And of course, if you want the performance, C++ is as good as C. You don
Re: (Score:2)
I use Python to simulate specialized optical hardware. I definitely care about performance. Fortunately all the heavy stuff is done in FORTRAN, C or assembly libraries, or occasionally in Python auto-translated to C and compiled.
Also all the other benefits you listed.
Python is only slow if you're doing it wrong.
Re: (Score:2)
You run test suites? I guess in this case you might want to use a language that can account for every edge case. One where apparently most people using it need to google everything they want to do might not be the best language for that.
Most popular or most confusing? (Score:4)
Anyway, Python has low barrier to entry, more platform independent. Tons and tons of thirdparty packages exist, including bash shell utilities, Qt UI, Tkl UI , graphing and spreadsheet utilities like panda. So lots of people are cobbling together "applications" in Python. Just last week a pure mathematician who worked with paper and pencil all his life, who mever warmed up to Mathlab nor to Mathematica, sent me a Fourier transform "package" he has written in python all by himself asking for help in extracting some iso-surfaces from it.
Have not looked at it yet, but if it is better than the C++ Sudoku "package" written by the Prime Minister of Singapore, I would be surprised. It would be code written by people very smart and intelligent in some other field, but lacking a good foundation in coding. Usually full of confounding confusing constructs but the somehow produces the correct answer. Would not scale up, would not be maintainable, probably took 10 times longer and leaked 10 times the amount memory actually needed, but it is a "package" that worked!
You would be amazed by what intelligent persevering people could do on a modern computer system. Full fledged data base in an Excel spreadsheet? Done! Common in fact.
So not surprised Python leading in google searches.
Betteridge's Law (Score:2)
the worst stuff always becomes popular (Score:2)
Remember: Perl, C, Visual Basic, and Java have all been wildly popular at one time or another. Hell, even this stupid language called JavaScript got crazy popular.
What's really funny is that it's pretty obvious what parts of languages work well and what parts don't, but nobody has created a language that actually has all the good parts without the bad parts. It's like there's some underlying force that keeps programming languages sucky.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Surely you meant it's $00 to $FF.
Re: (Score:2)
it's pretty obvious what parts of languages work well and what parts don't
Everyone has a different opinion on this, partly because they have different goals.
Re: (Score:2)
The top used language isn't about being good but other factors.
1. General purpose. It can get most jobs done, but every job is sub-optimal.
2. Availability of other developers. Back in the early 2000 we did VB, 2010 C#, 2020 Python. If you can't find developers who apply to the job the project doesn't get done.
3. Support and help. For a common language a stack exchange google result often brings me to the right page. For less than common language, you often get into some ideology war where you are not su
Re: (Score:2)
Put another way, the bad parts are usually either someone else's good part, or they are the consequence of putting in good parts. You need good parts if you wa
Bad way to measure a useless statistic (Score:3)
Yes. And it's really no big deal. (Score:3)
Python is the only PL that is used professionally in _every_ field and industry, from finance and statistics, across web to science, media, AI, devops automation, bioengineering up to 3D and real-time stuff. It's modern, easy to learn and forces n00bs into correct code formatting from the very beginning because "indentation block delimiters". It comes with APIs for every useful library in existence including GUI and games toolkits and even senior engineers who haven't gotten into programming before can pick it up in minutes. It's a scripting language with zero compiler hassle and it's, if at all, second only to PHP and Javascript when it comes to answers on Google and stack overflow. And those two are web centric.
So, yeah, Python rules for anybody not doing web or software development as their main job. It's the most recommended PL by experts for anyone who "needs to get some programming done" for some project.
But this isn't news. That python was a contender for "Utility PL #1" has been well established in the last 2 decades. It's been in the top 5 forever and at position 1 quite a few times already.
Python is a neat PL, no news here. But System languages and other special tools will remain. They are a completely different usage scenario. A smaller one, handled by experts. Hence "Rust less popular than Python" ... which means exactly zilch when you need a modern system PL that can replace C.
Re: (Score:2)
Re: Python for Web Development
I've been developing web applications in Coldfusion for the past 20-some years. Why? Well, I have one large client who requires most of my time and they're a Coldfusion shop. Coldfusion has been heavily shunned for the past 10 or so years. Perhaps not shunned, but from a job-availability point of view, I suppose I can see why it's not a well-liked language. I have delved into other languages during the past 20 years, including Python, Ruby, and Java, but since I don't real
I actually like ColdFusion (Score:2)
Would I work in it again? Hell no, I got burned in the 2003 recession when it was tough as shit finding a ColdFusion job in my area and everyone only wanted Java. That sai
Re: (Score:3)
Compilers are not a hassle, they're a godsend (Score:3)
Python is the only PL that is used professionally in _every_ field and industry, from finance and statistics, across web to science, media, AI, devops automation, bioengineering up to 3D and real-time stuff. It's modern, easy to learn and forces n00bs into correct code formatting from the very beginning because "indentation block delimiters". It comes with APIs for every useful library in existence including GUI and games toolkits and even senior engineers who haven't gotten into programming before can pick it up in minutes. It's a scripting language with zero compiler hassle and it's, if at all, second only to PHP and Javascript when it comes to answers on Google and stack overflow. And those two are web centric.
So, yeah, Python rules for anybody not doing web or software development as their main job. It's the most recommended PL by experts for anyone who "needs to get some programming done" for some project.
But this isn't news. That python was a contender for "Utility PL #1" has been well established in the last 2 decades. It's been in the top 5 forever and at position 1 quite a few times already.
Python is a neat PL, no news here. But System languages and other special tools will remain. They are a completely different usage scenario. A smaller one, handled by experts. Hence "Rust less popular than Python" ... which means exactly zilch when you need a modern system PL that can replace C.
You are absolutely correct that Python is used in every industry. You know what else is used in every other industry?..Microsoft Excel. You can do some nice work with it. Should you power a mission critical business app with it? hell no...I think you & I both agree on that.
I will even agree Python has it's place. You can probably bang out a working script in 5 min, whereas it takes me 5 min to start with an empty directory and get a REST service with full stack Java and it's first unit test. A
Re: (Score:2)
I say this as a 'professional' who joined a t
Re: (Score:2)
That's not what this means (Score:2)
What it means is that it is the most used language by people who need online help to get anything done. In other words, if you see code in Python, expect it to be inefficient and insecure.
I hope not (Score:2)
What I liked about Python:
1) I had 30 years software experience (C, C++, bash, perl, awk, etc) at the time. I was a consultant and picked up Python in less than a week and was productive. 100% due to the help system.
2) It was easy to
Re: (Score:2)
Python is the best tool for almost any problem (Score:3)
Python is the best tool for almost any software engineering problem that doesn't involve close-to-hardware-metal requirements. Python has libraries available for every almost any task in any engineering profession, and downloading and updating those libraries are plainless command-line one-liners. I call Python one of the "great accelerators" because you spend less time typing and more time making progress on a problem than any other language I've used.
Perl is filthy, incomprehensible garbage. Instead of wasting 3+ years of my life on that @end $of %road bless(language), I should have spent it learning more Python. Perl programmers take pride in making incomprehensible, obtuse code. Python programmers take pride in getting work done.
Python is extremely understandable. I can look at Python code on Medium, Github, or StackOverflow, and I'll know almost exactly what the programmer was intending.
Python is the programming language of choice for deep learning because all the major libraries are written with a Python API. Libraries include PyTorch, TensorFlow, Keras, and others. Getting into deep learning in 2016 was how I got into Python.
Python is free as in free beer. Python + Numpy beat Matlab as the programming language of choice for scientific computing. Matlab is expensive like crazy.
Python + Pandas beats R as the programming language of choice for data analytics.
Python beats Java for complex, multi-person projects. Python is simply easier to maintain. If the project is not performance-critical, Python beats C++, too. My personal rule is that 5 lines of Python takes 25 lines in C++. Hey, if your manager evaluates you with LOC as a metric, then use C++.
If you are an optimist and feel that good software can solve any problem, then Python is for you.
If you are a pessimist and are slinging out unmaintainable code while waiting until you can retire, then use another language.
Re: (Score:2)
Though it should be noted that GNU Octave, a matla
Re: (Score:2)
Python is a scripting language - NOT a real lang (Score:2)
Re: (Score:2)
If you think like this, you really do not understand programming languages.
Lazy.. (Score:2)
Please name the next big programming language... (Score:2)
This will spare us lots of silly questions.
Re: (Score:2)
And I'm not even gonna name the obvious German example. ;)
That's okay, I'm sure Michael Schumaker won't mind the accolade.
Re: (Score:2)
I kinda doubt he'd notice.
I will name the German example (Score:2)
Rob Pilatus
Re: (Score:2)
The five most watched shows on TV in 2020 were football games [variety.com]. You could say it doesn't matter if you're not a fan; but that's an apples and oranges comparison. Ignoring the football just means you need to find a circle of friends who don't watch football. Ignoring Python means you have to find a job where you don't need Python. I think both of these are achievable goals. Football or Python, if you're not a fan you don't want to be around it anyway and you're not going to enjoy life as much or do your
Re: (Score:2)
And both people who give a fuck about that aren't here.