Is Python the Future of Programming? (economist.com)
The Economist argues that Guido Van Rossum resembled the reluctant Messiah in Monty Python's Life of Brian. An anonymous reader quotes their report:
"I certainly didn't set out to create a language that was intended for mass consumption," he explains. But in the past 12 months Google users in America have searched for Python more often than for Kim Kardashian, a reality-TV star. The rate of queries has trebled since 2010, while inquiries after other programming languages have been flat or declining. The language's popularity has grown not merely among professional developers -- nearly 40% of whom use it, with a further 25% wishing to do so, according to Stack Overflow, a programming forum -- but also with ordinary folk. Codecademy, a website that has taught 45 million novices how to use various languages, says that by far the biggest increase in demand is from those wishing to learn Python. It is thus bringing coding to the fingertips of those once baffled by the subject. Pythonistas, as aficionados are known, have helped by adding more than 145,000 packages to the Cheese Shop, covering everything from astronomy to game development....
Python was already the most popular introductory language at American universities in 2014, but the teaching of it is generally limited to those studying science, technology, engineering and mathematics. A more radical proposal is to catch 'em young by offering computer science to all, and in primary schools. Hadi Partovi, the boss of Code.org, a charity, notes that 40% of American schools now offer such lessons, up from 10% in 2013. Around two-thirds of 10- to 12-year-olds have an account on Code.org's website. Perhaps unnerved by a future filled with automated jobs, 90% of American parents want their children to study computer science.
"The CIA has employed Python for hacking, Pixar for producing films, Google for crawling web pages and Spotify for recommending songs," notes the Economist.
Though Van Rossum was Python's Benevolent Dictator For Life, "I'm uncomfortable with that fame," he tells the magazine. "Sometimes I feel like everything I say or do is seen as a very powerful force."
Python was already the most popular introductory language at American universities in 2014, but the teaching of it is generally limited to those studying science, technology, engineering and mathematics. A more radical proposal is to catch 'em young by offering computer science to all, and in primary schools. Hadi Partovi, the boss of Code.org, a charity, notes that 40% of American schools now offer such lessons, up from 10% in 2013. Around two-thirds of 10- to 12-year-olds have an account on Code.org's website. Perhaps unnerved by a future filled with automated jobs, 90% of American parents want their children to study computer science.
"The CIA has employed Python for hacking, Pixar for producing films, Google for crawling web pages and Spotify for recommending songs," notes the Economist.
Though Van Rossum was Python's Benevolent Dictator For Life, "I'm uncomfortable with that fame," he tells the magazine. "Sometimes I feel like everything I say or do is seen as a very powerful force."
... until you discover that your program is butting up against performance or memory limitations, since Python gobbles both, and then you have to go back and redesign the whole bloody thing.
"Lock and load, Brides of Christ!"
Next stupid question.
No
If popularity was a determinant of goodness, McDonald's is the best restaurant in the US, and Wal-Mart is the best retailer in the US.
Python is popular because it's relatively easy to use, not necessarily because it's "The Future of Programming".
I don't respond to AC's.
I love that the Economist feels it necessary to explain who Kim Kardashian is to their readers.
It seems we will never get tired of "language X is the future of all computer science because Y it" tropes.
In the past, X can be replaced with Ada, C, C++, Java, Javascript, Python, Erlang, or whatever. The list is endless.
The term Y can be replace with "I like it," "I really like it," "I really really like it," or "I don't know what is going on but the StackOverflow numbers seem to mean something.
Jeez. Can't we just all accept that some careers or individual software gigs involve programming in just one language. Most careers and gigs require multiple languages.
Right now I am doing an Angular project that includes HTML, CSS, TypeScript, Javascript, and Java all at the same time. Is that the "future?" I have no reason to believe so. I am just trying to get a job done.
There will always be another language to learn and there were always be another up-and-coming language on a hockey stick. That's not a bug that's a feature.
Unlike hardware, software programming has no future. Witness the demise of coding into skilled trade, software salary i.e. wage slavery and artificial intelligence creating self-correcting code, auto algorithms, ad infinitum
I'd rather go back to Perl.
This type of story is even less useful than "What is today's most popular programming language?" stories that pop up here every week or so.
Python is an excellent language and well worth knowing and being competent in programming in. But, so is Javascript as all developers tend to need to do some intelligent web UIs. Then there's C/C++, in which most of the world's system programming is written in. VBA is important to have to be able to work with databases/spreadsheets. And, of course you can't do anything without Rust and Go and Perl is great for doing something quick and dirty.
How about an article pointing out that to have a successful career as a software engineer (ie "coder") you must be willing to pick up skills in different programming languages (and environments) and avoid latching on to what the pundits tell you is "THE PROGRAMMING LANGUAGE OF THE FUTURE".
Mimetics Inc. Twitter
"The CIA has employed Python for hacking, Pixar for producing films, Google for crawling web pages and Spotify for recommending songs," notes the Economist.
I didn't know the CIA uses Pixar to produce their films. And, I'm glad that they're in the business of recommending songs!
"It seems we will never get tired of "language X is the future of all computer science because Y it" tropes."
"Language Klingon is the future of all computer science because fuck it"
I would never recommend developing a software application in Python, but for numerical programming applications where the stuff you write is for your own use, Python is tough to beat. Itâ(TM)s free (as compared to MATLAB or SAS) and since itâ(TM)s a more general programming language I find the data wrangling to be much easier than trying to use R. I donâ(TM)t know the details on how it works, but developing bindings must not be awfully hard since alot of the numerical libs that are developed in a compiled language have python bindings.
Python is the future of crashes due to bugs of indentations.
NASA shouldn't accept Python as the future programming language for the computers that control their space objects.
10 More people use it.
20 That means more jobs using it, which means more people learning it and teaching it, and more books & courses about it.
30 Goto 10.
GP's fallacy was irrelevant conclusion.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
I meant to say âoenumpy, scipy AND PANDASâ
Python is where it's at. You can do anything with it!
In 1965 someone asked "is McDonald's the future of American restaurants?" The answer was yes, regardless of whether most restaurants were better.
Is Python the future? That's scary, but it may be so. Why do I say it's scary? I wouldn't have said so 30 years ago. When I started programming, Python would have cool. Something very important happened in the mid 1990s. Something that completely freaked out Microsoft's programming tools team.
When I started programming, I started by writing very simple programs in languages such as BASIC, which ran first on my computer, then on a Casio calculator / handheld computer they sold in the 1980s. I'll never forget impressing my friends with a program that consisted of nothing but a loop and set of IF statements. It would prompt you to enter your name via the keyboard, then print in the screen "you're cool" or "you're weird" or whatever based on the name you entered. I think for one name in particular, Casey, it said "you're pretty". A very simple program, by a beginner programmer.
Few new programs today take input via keyboard and print output to the screen. These days, they take input via the Internet, query other resources over the network, and return something over the internet. It's no longer my boyhood crush Casey entering something, it's hackers from all over the world. They attack each program hundreds or thousands of times. Very simple programs by beginning programmers are now vectors for multi-million dollar losses. It's very hard to learn safely these days, because it requires some expertise to design and code software that will be safe against constant attacks. I don't know that I could learn today, it's just too dangerous for beginners to run code exposed to the internet, and today most code is exposed to the internet. Even a super simple programming task like a thermostat -
if (temp desired) {
Hear = on
}
Is now an IoT, and a threat.
This worries me because as we make it easier to create software, more possible for people who don't know what they are doing to expose your systems, we are now having so much exposed by people who haven't studied. You CAN write code without learning much at all. You can, that very much doesn't mean you SHOULD. Not in today's society, where everything is online.
https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines oops.
- anongopher
Python is a script language, hardly the future of anything. Quite horrible formatting too. It's one of those languages where you learn and then forget what the hell you did 3 months later.
I've recently started learning Python but I'll say this, Python maybe a good starting point for most. However, it needs to looked at like a type of language. Once you learn that language good enough it's time to move on to the next then figure out how to build relationships between the two languages. For example, having Python pull information from SQL. Either way I'm not calling any language the future of Programming unless it's AI programming for a better AI at which point the human is removed from the entire equation. AI then determines that in order for robots to perform better with less issues(like rust or less friction) oxygen must be removed from the planet..... let your imagination run from there...
I've never been a professional coder.
I did some pascal and VB6 in highschool, I took some programming classes in college, but my career is in art and design.
It has always been useful to know a bit of programming, picked up Flash when I needed, wrote some tools to optimize my workflow in Photoshop with Javascript, and recently started helping out with the broader pipeline at the studio using Python and Qt.
You may never write an OS, or a large higher-performance application in it, but it's great for a personal project, a mock up, or glue for transferring data between various disparate pieces of software.
The industry I'm in (VFX, Animation) has basically standardized on Python as the scripting language most applications use internally and between themselves (Except for Adobe who have their own personal flavor of Javascript, because, fuck everyone else, build that garden wall)
Hardware trends gravitate towards adding more and more CPU cores and threads in order to increase performance instead of increasing IPC and clocks. AMD will soon release their 64 thread monsters for HEDT and workstations and we're seriously discussing if Python will be the future?
Maybe in very specific niches, but I don't see it utilizing future hardware very well compared to the many other options that are capable of running multiple threads.
Not the future of programming, just a general purpose language future very easy to use, including non-programmers, from various fields of science, economy, sociology etc with an "affordable" as time/effort on a quick learning curve by anyone with some interest in programming. And also more than a toy, allowing development of complex projects, for free and [a language] with a huge user base which can help new users.
Obviously *(no)SQL or Java, C++, C# etc do not fall in the same categories with Python and can't be compared directly. Shortly can successfully open the doors (and mind) to anyone wishing to enter in programming field. Not a replacement.
Tab should have a key-code, but not a ASCII code, like Shift. It has no place in a document, whether it be code or prose
tone
If only Python were the future of programming...
I had hoped that Prolog would be the future of programming. The horror is that JavaScript is the future of programming.
Tab should have a key-code, but not a ASCII code, like Shift. It has no place in a document, whether it be code or prose
You do realize that tab characters are used in places other than "code or prose"? It's very useful for document/table formatting especially for non-proportional fonts. It's also very useful in UI processing (ie moving between controls in a dialog box).
I don't think what you're asking for is all that modest.
Mimetics Inc. Twitter
Python is kind of an inferior LISP, it's much slower and clumsier than real LISP but has at least some of the features that make CommonLisp so great although it's still lacking in many respects. So yes, it has some future as a transitionary language towards LISP.
cannot be THE future of programming.
Sig ?
Java and VB are the most popular languages right now. Java is taught to every high school AP computer science student. VB has the entire marketing of MS behind it.
I use python for personal projects, which are simple and direct. I can imagine Pixar using it as they write code for each movie, and are not widely deploying it to end users.
I suspect in a decade scripting is not longer going to be the status quo, and the kids will be learning programming by moving blocks. Don' scoff, it is already happening and all that is needed is to expand and refine the technology.
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
Maybe it could be for opensource stuff.
But not for everything.
And, did I already say "no"?
Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
Kim Kardashian probably generates a lot of Python traffic herself with her python boots.
Most people worry about "future X" mostly to plan, so that part is easy: yes, if you work with computers and want to program, Python is one of the best and most useful first languages you can learn. Yet, at the same time, it has serious limitations. On the other hand, if you want to be a professional, you need to know other languages as well and you need to understand the limitations of Python.
Furthermore, planning for the future, you need to be aware that Python is not a standardized language, that its success is due to one implementation, and that it keeps changing.
Okay, so I said secure programming is hard, you need to know what you're doing.
You disagree that it's hard, because people who call themselves professionals sometimes can't do it right. Professionals sometimes can't manage to do it, therefore it's easy. Is that right?
I usually don't care much about these discussions, but I feel there might be some room for clarification.
I'm not sure if Python is really the future of programming language, but it definitely provided a glimpse of what a possible future might look like. Whether people like it or not, this programming language lowered significantly the access barrier required to start writing useful and powerful code, without sacrificing functionalities.
It's not C/C++, it's not incredibly memory efficient, and performance is significantly lower than compiled languages, but...
There are professional programmers using it for the most obvious thing (prototyping new code) as well as writing complex programs that were not worth the time investment of writing in C++. Although, the big difference is the democratization of programming for people like me that don't have the time and the resources to build serious programming skills. The lower access barrier allowed many people to implement their ideas, make them work, and spread them around... sure, in a high-level, slow, and memory inefficient language, but do we really care? There are many places where the idea is far more important than the implementation like often in the scientific world, notoriously famous for providing crappy code.
Tons of people have benefited from countless programs doing very complex operations, or just simply scratching long standing itches (matrices operations, 3D operations, data sanitization, etc.).
If your Python code is really useful and needs to be made faster, you can hire a programmer to re-write it in C++, but in the meantime it might have reached a significant critical mass of interest/users that make it possible (getting funding, etc...).
Python is likely how an everyday programming language might look when most of the people will write a program at some time in their lives. On the other hand, if Python is the only reason to define yourself as a professional programmer, then it's obviously a problem.
It's been my observation that people who don't understand programming and haven't used a decent language think Python is acceptable. For those that have seen a proper programming language though, it's really obvious that the designers were smoking crack while they did their design work because the language has massive problems that shouldn't exist.
As much complaining as people do about Perl, it's not anywhere near as big a mess as Python is. Sure, you can write some incredibly obscure things that nobody can read, but you can do that in virtually any language.
Extremely funny (and true. It's always funnier when it's true). I like the way you subtly brought Trump supporters into the argument. I would've "liked" or "voted" for you post, but Slashdot is too mind boggling primitive for that. I'm going back to Reddit now... Catch you later.
Ben in DC
"It's the mark of an educated mind to be moved by statistics" Oscar Wilde
I like the design's philosophy a lot.
At least; I hope not.
Great minds think alike; fools seldom differ.
Until the first three layers of OSI are perfected, ain't SHIT the future of programming.
Which means Python is NOT the future of programming and will never be, because no company has any interest in doing the first three layers of OSI properly in the first place. Intel already made that loud and clear.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
What does the question "is Python the Future of Programming" mean? So a bunch of noob brogrammers who are Python fanboys think that every other lower level language sucks? And what programming language is their favorite Python interpreter written in? Don't get me wrong, I'm not an anti-Python zealot, Python is awesome when you write web scrapers, glue other low-level components or prototyping something. Python overall has a huge number of useful libraries. But a person must be brain damaged to expect a complex program such as a heavy game, OS or a web browser to be written in Python. Every language has its place.
The future came here a decade ago. If you missed the python bus, think of it like the Fortran or Cobol bus.
That was new to me in 2008. You guys are way behind the times and python is behind the times. Take a look at Elm and Elixir instead of playing with old tech and calling it new.
...and it does perform certain tasks better, but in the end it's just another interpreted scripting language. In fact Perl is more powerful for regex, network programming, file manipulation, and OS system commands. Whereas Python has cleaner syntax, far better OO support, is easier to learn, and is generally more performant. I personally prefer Perl, but that's only because I've been using it for almost 20 years.
...someone comes up with a new and improved programming language called something like Boa Constrictor or Anaconda. Programmers can be suckers for the latest fashions in languages.
Debate is a form of harassment. Do not question my truth.
Ask me again when it makes more sense to write a device driver in Python than in C.
Having contributed a hundred searches in the last week, it's another BAD metric claiming how popular python is.
Last time, it was that python had the most questions on Stack Overflow.
When a search does not answer a question, when Stack Overflow does not have the answer, it does not mean python is popular.
It indicates that python is the most frustrating!
I spent hours trying to get python to use syslog. Any may other languages it's simply syslog().
To do it with python, search for it yourself. You'll find a dozen ways to do it, but which will work for you?
There is nothing wrong whatsoever with stating that the keyboard-detection failed, please plug in a keyboard, and then press F1 as a positive-verification test.
If the hardware cannot handle keyboard hot-plugging, it's a very bad idea for an error message to encourage keyboard hot-plugging. A lot of implementations of the AT and PS/2 keyboard interface did not support hot-plugging; doing so would cause them to permanently stop working.
Keyboard dependence also discourages use of a machine with input devices other than a keyboard, such as headless servers or joystick-driven video game players.
Hiring a competent admin can prove more expensive than hiring who's available to you in your city, especially in low-cost-of-living parts of the country or world where time costs an employer far less than 100 USD per hour. The cost to license proprietary software for these 100 machines can also prove substantial.
While the language itself may be nice, the ecosystem surrounding it is rickety at best.
It takes basically zero effort to get the interpreter completely incapable of finding libs that by all accounts should be smack dab in the search path.
On top of that is has contracted the ongoing pox of modern programming, the language specific package manager.
End result is dependency sprawl, as rainbow haired devs just ram another lib into the dep file and pushes to prod when they encounter any "problems" with their "masterpiece"...
In the post that prompted Viol8's reply you said "Except for the integer, those sizes are comparable to most any language." Viol8 demonstrated that that's just wrong and then you come up with this.
Most of the "features" you're describing are band-aids for poor-design and/or poor-programming.
* You can overflow the number if it gets larger than 127 (or maybe it's 255, or even some other limit; who knows? C doesn't specify)
Then you shouldn't have used char. And C _does_ specify CHAR_MIN/CHAR_MAX (and it's variants) in limits.h. Don't blame the language when you don't bother to learn it.
* You need to manage the array size implicitly in your code and make sure you never index past zero.
So instead of checking before hand, you rely on exceptions to catch mistakes.
* The lifetime of your object abruptly and silently ends after you return. You must manually make sure to never store a reference to your array anywhere that could outlast your function.
If it's allocated on the stack yes... because that's for LOCAL variables.
* You must mentally remember that a is not a null-terminated string, even though most C library functions dealing with characters only use that format.
Or you could not call it 'a' and use a variable name that indicates that it's not null terminated so you don't have to remember.
* If you use any recursion in your program, the stack allocation might fail, possibly without warning, resulting in serious security vulnerabilities. You'd need to manually avoid that possibility.
Or you could not use a local variable if this is a concern... though if it is you probably need to be rethinking the approach you're using anyway.
I like Python and use it frequently but it's not always the right tool for the job.
I see Python used in the Linux camp for scripting things. I got into a tiny flamewar in another article on PowerShell for Linux on what MS is creating a snap for it and it has to due with half of your servers being hosted in Amazon E3 or Azure. Python also is an excellent scripting resource if you use AMazon E3 apis and want to integrate it to your bash scripting or PowerShell workflow.
Python is object based so sometimes it is needed to do extra tasks and customization. Sure there is puppet but for simple things it is nice to an API to do things.
Perl 18 years ago started to pick up some news as the new hottness outside of Java here on Slashdot but it never took off for a variety of reasons. Python is also easy to whip something together and is used by people in Finance who are tired of VBA as well.
In addition Visual Studio 2015 and 2017 also include Python and for the 90% in the win32 world if it's not in VS it's not there :-) But that is part of the popularity as well.
http://saveie6.com/
Unless you're trying to collaborate with somebody over a channel that mangles leading whitespace. That's the biggest nontrivial criticism of indentation-as-syntax: you can't demangle it with an indenter.
Either Python or "Donald Trump", Google Trends says so. Either those 2 or "Anal Sex", right behind them.
Nuff said.
Are you seriously telling me I am going to be the first to invoke: https://en.wikipedia.org/wiki/...
I am sure thereâ(TM)s an adder out there that will best any python ðY
Why isn't this post a poll? yes or no.
The increase in performance from using lists or similar to using dictionaries is staggering. honestly you would have to try it to believe the difference. I have seen the actual contents of ~20,000 files equalling approx 1 gig read and processed in about a minute.
Consider an interface that combines ChatScript, NLTK, Blender3D, InMoov, and Cure. What could one do with a tool like that?
Just why is it so ... well, better than the other cruft? If the future lies in Python, it is a sad future.
So Python is a modern day BASIC?
It's installed on all (most?) Windows operating systems. It comes with an IDE - PowerShell_ISE. You can extend it, write functions, modules, have your own profile per user or system. It interacts with most Windows functions and services. .NET can be loaded and used as needed. It craps all over C#. For the majority of what we do PowerShell is the answer.
Is it the future? Who knows. I used to love hacking around in bash. Now I'd really like a PS equivalent in Linux. At the rate they are going I'll probably have to make it myself.
> Google users in America have searched for Python more often than for Kim Kardashian...
That's some serious damning with faint praise.
Quite simply, Python is a very expressive language with clean idoms. It allows writing algorithms that are easy to read and executable, is very close to pseudocode. All the complexity is hidden away.
That being said, that seldom happens because many new (and apparently) old programmers think that learning a language means learning its syntax, and they learn Python then apply the patterns to it. So we end up with code that looks like Java (or C, or PHP) written in Python, not taking full advantage of what the language offers. This is of course true with every language switch, but is especially worse when moving from a language that requires many boilerplates to one that doesn't.
A C programmer wouldn't feel comfortable if it didn't check the exact type of each result, converting exceptions to None and verifying input parameters. Or as soon as they learn about what's behind the curtains, they start writing "smart" code that makes excessive use of hasattr, getattr, __dict__, manipulating locals() etc.
A Java programmer will insist on writing getters and setters, catching each exception separately even if it cannot be handled just to re-raise it as a different one, carefully checking that a key exists before accessing it etc.
In other words, they aren't playing the strengths of the language (expressiveness) and of course get frustrated because when they end up with code that is hard to read and indeed, not much better than if it were written in C (or Java).
Nothing will ever be better. There is no point in any other scripting mechanisms and while we're at it, let's get rid of this compiled crap, nobody can read it afterward anyway, how free is that?
Not sure what you mean but I am sure there have been many people over the years who concluded -- wrongly -- that Java would be the ultimate language and you wouldn't ever need any other. I am not one of them.
obviously, rockstar is the only programming lanuage that has a future.
https://github.com/dylanbeatti...
On a long enough timeline, the survival rate for everyone drops to zero.
A blanket statement like this is good to prompt debate, but I wouldn't be caught making it.
It's like saying is the screwdriver the tool of the future. It is maybe for some jobs, but for others a hammer is a much better tool.
If you are learning to code or if you don't have stringent performance or reliability requirements, Python is great. If you write real time, performance critical code you are unlikely be using Python. If your code needs to execute in 4Kb of RAM, Python is not an option. If you write code for aerospace or life-critical purposes, you are unlikely to be using Python.
The project that you said you were doing right now is mostly using web languages, except for Java, which is compiled. I'm just curious how that fits into your development workflow. Purely out of interest; I'm a web designer, but I like to ask my programming team members how they handle their projects. :)
I'm frustrated that an entire generation of programmers seem to turn to Python for *EVERY* task. It drives me nuts. Python is a scripting language... stop trying to write applications in it that do *really* complex or large scale things. I'm starting to step over so much poorly written python code in my career in places it doesn't belong. We have so many great compiled languages now for big data or complex tasks such as golang and Rust... use the right tool for the job dammit. Get off my lawn.
Oh. Sorry I was being dense.
I use Java on the server side -- a REST interface application implemented with the javax.ws.rs.* class library and running in a Glassfish 5 container.
The kids are taught these days to use node.js on the server side but I like the facilities and frameworks you can get in the OSGI environment Glassfish 5 users. Also I have doubts about a node.js-based server being able to scale up for my application anyway. I might give it a try later and end up with an application Java-less from front to back.
"Language Klingon is the future of all computer science because fuck it"
Luckily all the required glyphs are in Unicode now. No code snippets pasted to Slashdot though...
You don't need the glyphs to write in Klingon. The Latin alphabet works fine.
But I'd wait for Python 4. It's supposed to make Python 3 look like QBASIC.