Ask Slashdot: Will Python Become The Dominant Programming Language?
An anonymous reader shares their thoughts on language popuarity:
In the PYPL index, which is based on Google searches and is supposed to be forward looking, the trend is unmistakable. Python is rising fast and Java and others are declining. Combine this with the fact that Python is now the most widely taught language in the universities. In fields such as data science and machine learning, Python is already dominating. "Python where you can, C++ where you must" enterprises are following suit too, especially in data science but for everything else from web development to general purpose computing...
People who complain that you can't build large scale systems without a compiler likely over-rely on the latter and are slaves to IDEs. If you write good unit tests and enforce Test Driven Development, the compiler becomes un-necessary and gets in the way. You are forced to provide too much information to it (also known as boilerplate) and can't quickly refactor code, which is necessary for quick iterations.
The original submission ends with a question: "Is Python going to dominate in the future?" Slashdot readers should have some interesting opinions on this. So leave your own thoughts in the comments. Will Python become the dominant programming language?
People who complain that you can't build large scale systems without a compiler likely over-rely on the latter and are slaves to IDEs. If you write good unit tests and enforce Test Driven Development, the compiler becomes un-necessary and gets in the way. You are forced to provide too much information to it (also known as boilerplate) and can't quickly refactor code, which is necessary for quick iterations.
The original submission ends with a question: "Is Python going to dominate in the future?" Slashdot readers should have some interesting opinions on this. So leave your own thoughts in the comments. Will Python become the dominant programming language?
No.
But in all seriousness, is this even for real or just clickbait? Why would we want just one programming language?
No.
Can you just stop?
I will now end the discussion with the word Hitler.
Enough said. Whitespace which has meaning is just nasty.
And my teacher was wrong. There actually are stupid questions.
Signature deleted by lameness filter.
It fills the "smug hipster twat who can't grok lisp" niche perfectly.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
And is not an important project, so that you will never do branches or merges.
Because merges + significant whitespace = unholy mess you will spend ages debugging after each merge.
Is that a parody?
"People who complain that you can't build large scale systems without a compiler likely over-rely on the latter and are slaves to IDEs"
Sure, who needs good tools when you can just do the work of the compiler yourself?
I'm pretty sure - the day will come where even the author will be bored of checking datatypes and constraints in unit tests that have to cover all possible runtime paths. For me the future will be a language with a really strong type system, that can be verified by the machine as much as possible. You can't have systems crash after 4 days of number crunching because it finally reached that stupid mistake in one path that was forgotten in the unit tests.
We have computers to do that work for us, not the other way round.
Oh and of course we'll use machine learning as much as possible to automate the automating.
The same reason we had languages such as Basic and Pascal as languages. Namely universities using them in intro classes because they are "easy". So people with no concept of the scale or complexity of commercial software think it is the be all and end all of programming. So you get MBAs mandating Python on their projects even though it is the wrong tool for the job.
putting the 'B' in LGBTQ+
Java is mainly large enterprise back end systems, and some android, and quite a lot of embedded stuff (nominally what it was invented for), and, worryingly, quite a lot of client side GUI stuff.
C++ is used for legacy systems and where you need speed.
C is used where you need speed, have simple programs and memory constraints, and old fashioned unix software.
C# is for windows programming and .net
Javascript is for browser programming and Node, and some general scripting, where someone has used it as their system's internal scripting language (see also lua)
PHP is used for relatively simple web stuff, because it's easy and works and has wide library support
Python is used for what PHP is by better developers, and has brilliant maths libraries so is increasingly used for anything maths related where esoteric things like matlab and R and F# are unhelpfully niche.
Haskell is used for academic curiosity, and some maths stuff.
Perl is dying out, but is still used for unix automation a fair bit.
-----
There are lots of good libraries for python that hand off the heavy lifting to c,c++ and fortran. Python works well for gluing these things together.
Python on its own though is quite slow and if you find yourself needing to chain together calls between low level libraries where each call is quite fast the cost of gluing them together can be extreme. However the parts of the code that are seriously CPU bound tend to be fairly small while all the rest of the stuff build no top takes up most of the time to write.
I would say for most software you could do a python wrapper around a C++ core and end up with more maintainable and faster code. In my case I use a python optimization framework around a c++ based simulator. Writing all the optimization code in C++ would be a pain in the neck and provide no real speedup since the current code is not speed bound in the python part anyways. I see the same things in cluster control software when the code that distributes my jobs to the nodes and then gathers the data back and then makes the decisions on the next set of jobs to run accounts for 1% of the total runtime.
I think this will result in better software overall with Python as the core language wrapping high speed libraries. In many cases those libraries already exist, where they don't exist you have to write them.
Computer modeling for biotech drug manufacturing is HARD!
My college taught had a course that went through every language to teach differences and focused on the fact that there were different tools for different tasks. The core classes however all used java to teach programming principles. I really felt it was the right approach. Learning different tools is necessary as a programmer, but even more important is the proper mindset, patterns, and approaches, regardless of our chosen language. A good programmer can pickup any language and work towards proficiency then mastery.
I find it disturbing that people would want Python to beat Perl.
Women have enough problems with domestic violence. We shouldn't be supporting hitting a woman with a snake.
Sidestepping interminable arguments about the merits of language A vs language B, and ignoring the flat-out ignorant assertions in the 'anonymous reader's thoughts' about IDEs and compilers, the question is predicated on a culpably ignorant interpretation of the very data they cite.
So here's how PYPL works:
The PYPL PopularitY of Programming Language Index is created by analyzing how often language tutorials are searched on Google.
so... what the data actually show is that relatively more folks want to learn Python these days than C or Java or Haskell (or whatever) — which is scarcely surprising since more non-specialist programmers are learning to code than ever before, and Python is easy to learn and great to teach with for that demographic — what the data definitely do NOT show is that Python is replacing C or Java or Haskell (or whatever) in the production domains in which those languages shine. And it never will.
Don't get me wrong, I like Python and have done quite a few things with it, including performance-critical Python classes in C. But I think writing good Python code is something that requires a lot of experience, including with other languages. Python is a language that does not stand in your way to an extreme degree. That means in many cases you have to do things yourself that other languages do for you, for example type checks (yes, they are needed sometimes) and decisions when doing inheritance. Do them wrong or not do them at all and you end up with an unmaintainable mess. There is also quite a bit of stuff you have to test at run-time that compiled languages probably find at compile-time. That requires good testing and a design-by-contract approach helps a lot.
One the other hand, for actual experienced experts, glue-code and "business logic" does not get much better than what Python offers, and embedding C-code is easy once you have understood the idea. It definitely has a long-term future.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Ruby lover here. I can code Ruby while I sleep, but I felt a bit left out because there are so many awesome Python projects. .... that's about it.
In comparison, there's Rails as awesome Ruby project with a lot of momentum, and
With Ruby knowledge, it's actually pretty easy to grasp Python. There are a few gotchas and the syntax feels a bit boring compared to Ruby, but it's also easier to read other people's code because it's usually more explicit and a bit less dynamic than Ruby.
I still love Ruby, but it's good to be able to write a few lines of Python and release the power of Numpy/Pandas/Sympy/Matplotlib/NetworkX/... It took me about 2 weeks to learn enough Python to use those libraries, and I still learn new stuff every day.
Some parts of Python's syntax are really nice, e.g. list comprehension :
>>> [x**2 for x in range(10) if x % 2 == 1]
[1, 9, 25, 49, 81]
It's completely different than all the Enumerable methods in Ruby, but it's very powerful and quite easy to read after a while.
If Python just disallowed mixing of tabs / spaces in files, it would already be a lot better. Just flag an error as soon as indentations are detected that are not the same style.
"Do you think Ringo is the best drummer in the world?" "Ringo isn't even the best drummer in the Beatles."
People who complain that you can't build large scale systems without a compiler likely over-rely on the latter and are slaves to IDEs. If you write good unit tests and enforce Test Driven Development, the compiler becomes un-necessary and gets in the way.
Says the guy that never worked on a project with 100+ classes and 100k+ lines of code...
Don't get me wrong, I love python and it's become my main programming language. But hey, I'm a researcher and everything I code doesn't have to do more than producing a few results to put in a paper and then be thrown away and never looked at again.
You know why Java is the top language now? It's not only because it's so easy that many professional applications have been written 15 years ago by dumb interns, but also because it's so robust that these applications can still be maintained by even dumber interns today. You're never going to get that with python (or js, or ruby, or whatever new hype thing you believe is the new messiah).
Video of some good progressive thrash music
It's a wart, but it shouldn't stop you from getting your parallel computing done. You fire up the multiprocessing module, create as many processes as you think you need, and start crunching. I write most of my longer-running programs this way so that I can take advantage of multiple cores. But that's the beauty of Python - it's easy to avoid premature optimization. Write the script the easiest way first, profile it, and then go after the low-hanging fruit. Worst case, you end up with working code written entirely in C that's been thoroughly prototyped in Python. :)
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Python's widespread adoption is not due to some magic programming language sauce but network effects. In a sense, Python has taken on a niche similar to Visual Basic. But that's also why Python has such a hard time evolving: you can't improve it much without breaking a lot of its libraries.
Python's biggest limitations, the way it represents objects and limited concurrency, actually already have been addressed in a number of Python re-implementations, but people aren't using those because many extensions and libraries don't quite run in those environments.
So, Python won't become "the" dominant programming language, it will just remain one of of a number of popular programming languages.
If there will be a single dominant programming language eventually, it will probably have to look more like Swif: near native speed, garbage collection, some systems programming features, and yet interactive execution via on-the-fly LLVM compilation.