Slashdot Mirror


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."

19 of 300 comments (clear)

  1. It's great.... by Rei · · Score: 4, Insightful

    ... 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!"
    1. Re:It's great.... by 0100010001010011 · · Score: 5, Insightful

      Rule of Optimization

      Developers should prototype software before polishing it. This rule aims to prevent developers from spending too much time for marginal gains.

      Not everything needs to be the best, most optimized way to do something.

      We're constantly automating away boring tasks at work with Python and they're all 'good enough' to finish and move on to the next problem. We *could* do them in C but it'd be marginally faster with longer development time.

    2. Re:It's great.... by Anonymous Coward · · Score: 2, Insightful

      > That was my criticism of Java 30 years ago... and yet...

      Wow. You have some amazing psychic powers if you were criticizing Java in 1988!

    3. Re:It's great.... by Rei · · Score: 3, Insightful

      This has happened multiple times. Last one was species analysis, combining species lists, GBIF distribution data, geonames data, and IPCC climate data.

      The reality is that A) some tasks will always require significant performance or memory, and B) not all tasks' footprints are readily discernable when you begin the task.

      Python is a real monster with memory in particular. The amount of overhead on every variable and every member of a list or dict is absurd. There are packages like numpy to help with this, but they're not universally applicable and more limited in capabilities than stl structures in C++.

      --
      "Lock and load, Brides of Christ!"
    4. Re:It's great.... by jma05 · · Score: 4, Insightful

      ...which is when you are supposed to profile to identify your performance bottle necks and write those in a native extension. Python was meant to be used with occasional supplementation by a fast programming language, not replace those. That is how most use it. Python even chose to sacrifice true multi-threading to simplify writing native extensions. If you have a lot of number crunching, you use a GPU math library from Python, not code straight in it.

      That aside, the main reason I use Python today is the ecosystem. I started using Python almost 2 decades ago, when it wasn't that popular - back then, I had to explain that it was just a nicer Perl, to people who had never heard of Python. Back then, the high performance languages just weren't very productive to use. Today though, things have changed. There are several programming languages that are almost as performant as C/C++, and yet are very easy to use with several high-productivity features. My favorite is Nim. Rust and Scala are also quite nice. But it is the libraries, not the language that still keeps me in Python. They cover just about everything. Most of the time, performance is the least of my concerns. Time to produce is (research analytics - quick disposable programs).

    5. Re: It's great.... by SuperDre · · Score: 3, Insightful

      Yes, and that's a big problem. We get better/faster hardware every year, and yet every new version of new software feels slower and slower due to using these very unoptimized languages. 'developers' are getting more lazy by the minute and don't spend any time on optimizing anymore.

    6. Re: It's great.... by Anonymous Coward · · Score: 0, Insightful

      Python is a reasonable alternative for shell scripts. It allows you to automate simple tasks, but I would not recommend it for complex projects.

    7. Re:It's great.... by DCFusor · · Score: 4, Insightful
      Burn mod points or point out that this is a fad, there are other glue languages that work fine, and even make it far easier to optimize just the part you want into some inline::C or inline:your_language_of_choice.
      .

      Due to some half decent grunt work done in python for the things it's fine for - say device drivers for slow stuff on a raspberry pi - and the difficulty refactoring one loosely typed language into another with slightly different rules, particularly where bit-fiddling is involved, I've recently written several programs using all of perl, python, and C. No sweat with "use Inline"....
      .

      The only issues I've had is poor python drivers where instead of checking a ready bit, the easy fractional sleep was used, making it utterly non portable even on the same machine (since perl's inline compiles python - while the sleeps are the same speed, the rest is now faster than native and oops, not ready....). Your basic "earnest beginner" mistake, tuning the sleep to go as fast as it would in testing, rather than actually doing the work to do it properly. Some languages attract beginners, and those are also the ones with the most google or stack overflow or whatever - searrches. The popularity, or how good a language is, might be better measured some other way. You could make the case that the more questions, the goofier the language, after all.
      .

      Yeah, I know, ,it's popular to diss perl for many of the same reasons - people too easily impressed with their own cleverness looking for job security by writing impossible to read code is blamed on the language, which would actually apply well to almost any of them. But you don't have to write bad or hard to read code. I've had people ask me what C(++) syntatic sugar templates I'm using to make my code so clear. I'm writing for myself and the poor maintainer who'll have to look after it later is me. I like me...so I make it easy. Freedom is always a doubled edged deal.

      --
      Why guess when you can know? Measure!
    8. Re:It's great.... by Waffle+Iron · · Score: 3, Insightful

      That's apples and oranges.

      The Python integer can hold an unbounded sized value (eventually using even more storage if the value goes over 2^63).

      You allocated an array with a single character on the CPU stack (always reported as size "1", but you don't really know how big it is in octets; C doesn't specify). The tradeoff is that you now have several potential bugs/vulnerabilities:

      * 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)
      * You need to manage the array size implicitly in your code and make sure you never index past zero.
      * 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.
      * 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.
      * 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.

  2. No by Anonymous Coward · · Score: 2, Insightful

    Next stupid question.

  3. No by Anonymous Coward · · Score: 1, Insightful

    No

  4. Popular != Good by DogDude · · Score: 5, Insightful

    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.
  5. Briefly? No. by AlanObject · · Score: 5, Insightful

    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.

  6. Another "Language X is the Future" Story? by mykepredko · · Score: 3, Insightful

    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".

  7. Line numbers? Beats indentation, you cucks! by Hognoxious · · Score: 1, Insightful

    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."
  8. Single threaded toy language by zm · · Score: 4, Insightful

    cannot be THE future of programming.

    --
    Sig ?
  9. Re: It has a bright future by Anonymous Coward · · Score: 2, Insightful

    Python is the Cobol of Lisps

  10. Bad Metric: Rate of Queries by blavallee · · Score: 3, Insightful

    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?

  11. Channels that mangle whitespace by tepples · · Score: 3, Insightful

    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.