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

300 comments

  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: 0

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

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

    3. Re:It's great.... by Anonymous Coward · · Score: 0

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

      I meant 20 years ago.... fat fingers me...

    4. Re:It's great.... by Anonymous Coward · · Score: 0

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

      A competent Engineer would have avoided those concerns by knowing which language was best suited to solve a particular problem.

    5. Re:It's great.... by Anonymous Coward · · Score: 0

      I call BS. If you Python program gobbles up memory or performance, the probability is high it's not Python that's the problem. Hint: Go checkout your mirror, the problem will stare you in the eye.

    6. 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!

    7. Re:It's great.... by isj · · Score: 2

      And if you start out with, say, C++ then you may discover your developers is not developing fast enough.

      Both interpreted and compiled languages have their place.

      I frequently make prototypes/experiments in python, and then when it comes to making the actual program I may switch to C++ or Java if the performance wouldn't be good enough in Python, or if I need special libraries for dealing with something, or there are some unusual constraints.

    8. 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!"
    9. 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).

    10. Re:It's great.... by Rei · · Score: 4, Informative

      >>> a=0
      >>> sys.getsizeof(a)
      24
      >>> a=""
      >>> sys.getsizeof(a)
      49
      >>> a=[]
      >>> sys.getsizeof(a)
      64
      >>> a=[0]
      >>> sys.getsizeof(a)
      72
      >>> a={}
      >>> sys.getsizeof(a)
      288

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

      To be honest, it's not that great of a coffee.

      --
      #DeleteFacebook
    12. Re:It's great.... by DontBeAMoran · · Score: 5, Funny

      Go checkout your mirror, the problem will stare you in the eye.

      Everyone! This guy is trying to shame vampire python programmers! /typicalSJWmoron

      --
      #DeleteFacebook
    13. Re:It's great.... by jma05 · · Score: 2

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

      Then you Cython the heavily used data structures. But more likely, Python is perhaps not optimal for your use cases. In the end, it is still a glue language. But most of the programs typically written in Python never hit these performance road blocks.

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

    15. Re:It's great.... by sjames · · Score: 1

      If you've done things sensibly, the python program IS your design. You now just have to IMPLEMENT (not re-design) all or part of it in a language that stores things in a more compact form.

    16. Re:It's great.... by Rei · · Score: 2

      Maybe I'm more prone to have my programming projects involve data crunching than the average person.

      Python is great for a "whip it together quickly" project. Even with data crunching, some slowdown, and gobbling up half your memory, is fine. But push it too far, and everything falls apart gloriously. And knowing in advance whether you'll hit that bound is not always obvious. If I know from the beginning something will be a big project, I start it in C++.

      --
      "Lock and load, Brides of Christ!"
    17. Re:It's great.... by Anonymous Coward · · Score: 0

      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 [sic] when you begin the task.

      Why aren't you learning from previous mistakes then? Are you being forced to use Python to solve these particular problems?

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

    19. Re: It's great.... by dbialac · · Score: 1

      Management sees it as an unnecessary expense. I was actually speaking to somebody recently who backdated to an old version of Adobe CS2 because it was faster and he realized he never used the newer features. Just backdating ended up being an optimization.

    20. Re:It's great.... by Anonymous Coward · · Score: 0

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

      Says incompetent programmers.

    21. 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!
    22. Re:It's great.... by Anonymous Coward · · Score: 0

      It's cheaper just to buy more hardware these days.

    23. Re: It's great.... by mSparks43 · · Score: 2

      hmm, not sure i agree with that. python can do many powerful and complex things you never could with a shell script. some heavy lifting AI and other data analytics spring to mind.

      The problem is more one of suitablity to team development and long term maintenance.

    24. Re: It's great.... by Anonymous Coward · · Score: 0

      And usually it isn't a big problem (although it is a big waste of resources)... the problem is that not all we develop is for faster/newer hardware, and I know of some partners who have ran into problems hiring people because they mainly work with embedded systems or very specialized - critical - systems and the new generation of developers are totally clueless about optimizing or coding with such memory constraints (we're talking about systems that when sold are suppose to work - on contract - for 15 to 20 years, and still be updated if needed... ofc within hardware limits).

    25. Re: It's great.... by Joce640k · · Score: 1

      Both of these are true.

      If your code is less than screen screens long, Python is OK.

      Above that? Get a real language.

      PS: Headline ending with a question mark? Betteridge's Law.

      --
      No sig today...
    26. Re: It's great.... by LostMyBeaver · · Score: 2

      I honestly avoid Python as much as possible as I do with C even though I just pumped out a few thousand lines of a Linux kernel module in it.

      I think the real issue with Python is not whether it is suited for large projects or not, but instead is that the package repository is completely blasted with piss poor quality modules.

      Most of the Python modules I have attempted to use (thanks to Google and SE telling me I should), I find I spend a great deal of time fixing or rewriting modules and then feeling as if I have to take ownership of them as theyâ€(TM)re mostly abandoned.

      Python as a language is extremely versatile. It can do almost anything and generally can also do it well. I do develop a lot of computers and language tools including JITs, but I wouldnâ€(TM)t even know where to begin to write a JIT compiler for Python as there are far too many circumstances to consider. The language is simply far too rich and flexible to be able to write meaningful optimizers and code generators.

      The architecture to Python also sells memory consumption as a good thing. The nice part is that itâ€(TM)s a pointer-free language. This means that a defragmenter can be part of the garbage collector. The bad news is, Python probably more actively allocates memory than any other language Iâ€(TM)ve bothered with.

      I believe I could, with a great deal of effort write good, clean, and performant code in Python. Itâ€(TM)s probably better however to focus on programming languages which are too difficult for most scripters.

    27. Re: It's great.... by Anonymous Coward · · Score: 0

      Slowness is almost never because of the language, but instead the system was either designed slow (e.g. storing data into 80 tables instead of just one big column) or they are implemented slow (e.g. select query in a loop) or usage of wrong hardware (e.g. using network drive for quick reads and writes, when local SSD drive would outperform it clearly).

      We are using Java and we are at best 1000 times faster than the software that was used before us. The old software was also written in Java. Same language, same functionality, 1000 times faster. And this is a real world example that was done using big amounts of money and experienced developers and architects. In this case, the issue was slowness by design.

    28. Re:It's great.... by Joce640k · · Score: 1

      Yep.

      Simple rule: If the program is going to take more than a week to code, start in C++.

      --
      No sig today...
    29. Re:It's great.... by Waffle+Iron · · Score: 2

      Except for the integer, those sizes are comparable to most any language. Strings and arrays all involve at least one pointer and usually a capacity and size. On a 64-bit system, that can be 24 bytes right there. Hash tables are often allocated with some empty slots, so they are usually bigger still in any language. Python might be a little bigger in most cases to handle the overhead of dynamic typing, but it looks like it's within a factor of two.

      At any rate, if you're doing any serious number crunching in Python, it's probably best to figure out how to store the floats in numpy or "array" module structures, or even write a native library engine for your core crunching algorithms (it's not that hard). Alternatively, like you want, just use a different language without dynamic typing. But the tradeoff is usually less safety (C/C++), lack of a huge collection of comprehensive libraries (most other languages), or just being even slower and more bloated on most real-world tasks than Python for no good reason (Java).

      The other error that you made is that if you get first post on a Python article, you really are supposed to just say: "Derp! Whitespace! Derp!!"

    30. Re:It's great.... by Anonymous Coward · · Score: 0

      do them in C but it'd be marginally faster

      Overly broad statement, and yes, it's wrong.
      I needed a program to manipulate some text, i.e. looking at each utf-8 character of a
      10k file (there are over 600 of these files). It's about 1200 lines and takes 7ms/file to run.

      Dunno what it'd take in Python (and yes, I am a Python programmer), but when it
      comes to this simple level of detail, all of these languages (PHP, Python, etc.) fall flat
      on their faces execution speed wise unless you're doing some boiler-plate things
      that someone has already written a library (ha-ha in the C language)
      to handle.

      I'm thinking (after fighting with any high-level language's limitations and quirks) probably in the
      10's of seconds range - about a thousand times slower and longer development time because
      a pre-written library doesn't exist.

      Python has some good uses when you do something that has already been generalized,
      (good example is processing an eXcel spreadsheet into a database) but it doesn't have near
      the depth to handle non-trivial programming tasks that arise from time to time, more often than expected.

      And it's like I tell C++ fanatics, C++ is written in C (which begs an empty response from them).

      CAP === 'indented' (I swear I don't make these up!)

    31. Re:It's great.... by Viol8 · · Score: 2

      "Except for the integer, those sizes are comparable to most any language"

      Really?

      int main()
      {
                      char a[1];
                      printf("%d\n",sizeof(a));
                      return 0;
      }

      $ ./a.out
      1

    32. Re: It's great.... by mSparks43 · · Score: 1

      I thnk you mean C is now written in C++

    33. Re:It's great.... by Anonymous Coward · · Score: 1

      "The objective (not always attained) in creating high-performance software is to make the software able to carry out its appointed tasks so rapidly that it responds instantaneously, as far as the user is concerned. [emphasis added]

      "In other words, high-performance code should ideally run so fast that any further improvement in the code would be pointless."
        – Michael Abrash, The Graphics Programming Black Book

    34. Re: It's great.... by Anonymous Coward · · Score: 1

      One of the reasons Python has become ridiculously popular is because TensorFlow is glued together with it. Right now AI positions are the hot new thing attracting some of the highest salaries in industry so a good chunk of people are running to Google to see what's up.

      Python is in no way doing AI. All the heavy lifting in AI is pushed through TPUs and GPUs which is being driven (probably) by highly optimized C++ via CUDA. Or OpenCL. Or AMP. A good chunk of the speed we can get is just cuBLAS doing a good job.

      If your software is mostly just prototype without architected structure then Python is a good choice. If your software contains large numbers of actors or interface contracts, go with a statically typed language. Duck typing is extremely brittle in large scale architectures since missing-methods cause runtime errors that can only reasonably be found at runtime or via aggressive unit testing. Same deal with mismatched argument types which can cause weirdness. Plus you don't know your operator types until you call so you can't just "pick a machine opcode and go", which is asking for slowness. Plus your objects are just unordered dictionaries which means every call is a hash lookup. Blah blah.

      I don't fancy my application stalling on dereferences or contention through the GIL but the influx of trendy new languages is depressing. We've given up on performance in favor of "What's another nuke in a nuclear winter?".

    35. Re: It's great.... by ath1901 · · Score: 2

      This. The popularity of CPython is not just because of the language features in my opinion. It is also the easy connection to C. I would even go further and claim the C connection is the most important feature. By writing "the application" in CPython and then rewriting the performance critical parts in C, you can get the best of both worlds.

      Excellent libraries like numpy are written in both C and Python. Not either or.

    36. Re: It's great.... by Anonymous Coward · · Score: 0

      That's just not true in general, I develop applications in Racket, which I really like, and the application startup time alone is noticeable and cannot compete with any program written in, say, C/GTK, C++/Qt, or Pascal/Lazarus. In larger programs the effects of slow speed and high memory consumption accumulate over all libraries and modules and will give you noticeable sluggishness. This is definitely also true for Python. (Racket is fast in comparison to Python, like almost every language on earth.)

      As I've said, Racket is my main language, and Python would be an even better choice in terms of tooling and libraries, but you've got to know the limitation of your tools. If you need to write a snappy GUI desktop application for paying end-users, better check carefully first whether your users will tolerate some sluggishness, GC pauses, etc. It depends on the application and its complexity.

    37. Re: It's great.... by Anonymous Coward · · Score: 0

      I used to be willing to help students with Python occasionally, but I stopped because it was causing me to develop bad habits in the other languages I occasionally use. Plus, it's super annoying to work with due to the dynamic typing and the amazingly unhelpful error messages.

    38. Re:It's great.... by Too+Much+Noise · · Score: 0

      Awesome Rei, you've discovered that objects have non-trivial sizes. Now for your next assignment, check the sizes of std::vector, std::map (and cousins) and std::string. Oh, and before you object, in python3 int (which a=0 will give you) is arbitrary precision, so try comparing it with something like gmp's integer objects, m'kay?

      As to your original point, yeah, by default it's eating memory and performance is easy to miss. When these things become a problem, go check boost::python, cython, numba and so on. Oh, and for some scenarios pypy can be rather cool.

    39. Re:It's great.... by CODiNE · · Score: 1

      It's an interpreted language silly. His criticism of memory and CPU use was even more valid 30 years ago and everyone knew it. Just like JavaScript is making the web a pain like many knew it would since the day it showed up. It's a known trade off of the language.

      --
      Cwm, fjord-bank glyphs vext quiz
    40. Re:It's great.... by jma05 · · Score: 1

      Even with C++17, C++ is the other extreme. There are several other languages that fall nicely in between - almost as fast and efficient as C++, while being as productive as Python. If you memory consumption is an issue I would suggest Nim (like Python), Crystal (like Ruby) or Rust (like ML). They are all quite high level and use very tight data structures and consume little memory.

      https://github.com/kostya/benc...

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

    42. Re:It's great.... by Anonymous Coward · · Score: 0

      Except for the integer, those sizes are comparable to most any language.

      There is a good reason for that: it does not just contain the value, but also the length of the value. Try this is any other language:


      >>> a = 2**64000
      >>> sys.getsizeof(a)
      8546
      >>> 2**64000
      [Slashdot:]Filter error: That's an awful long string of letters there.

      Heh, slashdot is not able to show the output of the above calculation. Python gives the value in a fraction of a second and it is not even close to its limit.

    43. Re: It's great.... by mSparks43 · · Score: 1

      I dont think anything beats the "undefined is not a function" error message. took me years to get past the "well duh, but stating the obvious doesnt help me" reaction and realise its actually quite sensible. (javascript)

    44. Re: It's great.... by mSparks43 · · Score: 2

      I take that back, the worst error message is and always will be "keyboard error, press F1 to continue"

    45. Re: It's great.... by Anonymous Coward · · Score: 0

      You misused the sizeof operator. Itâ(TM)s reporting the number of addressable array indexes, not the number of bytes used by the structure.

    46. Re:It's great.... by djinn6 · · Score: 1

      You just don't recognize what the real trade off is. It's not about the execution time. It's the time from noticing you have a problem to having the solution.

      So you have 600 files. It takes you 30 minutes to write a C program and 4 seconds to run it.

      I can write the same program in 10 minutes in Python. The rule of thumb is Python is 100x slower on the CPU, but same speed as far as IO is concerned. So in the worse case it will take 400 seconds, most likely significantly less, since your 7 ms number includes IO and file processing is almost entirely IO-bound.

      Overall my work took 16 minutes, 40 seconds, while your's took a little over 30 minutes. Moreover, 6 minutes of my time is waiting, during which I can go start on my next task.

      It's even more obvious when you look at cost. Let's say my time costs my employer ~$100 per hour. Over the course of a week, I'll save somewhere between 18 and 33 hours of work, which translates to $1800 to $3300. For that money, my employer can buy 3 or 4 new computers to run these extremely inefficient programs. Of course, in reality they'll pay me for the 40 hours anyways and I'll just be 100-200% more productive.

    47. Re:It's great.... by Anonymous Coward · · Score: 0

      I can write the same program in 10 minutes in Python.

      OP here and I seriously doubt you claim of 10 minutes for a finished product
      (and it took me longer than 30 minutes with regression testing and everything
      else sound software engineering entails).

      CAP === 'symbol'

    48. Re:It's great.... by djinn6 · · Score: 1

      I frequently make prototypes/experiments in python, and then when it comes to making the actual program I may switch to C++ or Java

      I like to think I'm doing the same thing, but in reality those performance problems rarely comes up, and when they do they're usually not CPU-bound. So most of them are still in Python.

      Eventually someone will implement a faster Python interpreter and the problem will be moot.

    49. Re:It's great.... by jgfenix · · Score: 1

      Yes, you can throw more hardware but it's easier to administrate 3 computers than 9.

    50. Re: It's great.... by Anonymous Coward · · Score: 0

      I agree with you, when a problem is IO bound Python is an acceptable choice, as are bash, perl, java, c#. Iâ(TM)ve used them all to solve real problem.

      Unfortunately they fare less well on compute bound problems, where C, C++ excel. Rust and Swift are shaping up to be strong contenders.

    51. Re:It's great.... by anon+mouse-cow-aard · · Score: 1

      machines are big these days, and there is a lot of code that doesn't need performance, but say we take you at your word, it's still not python's fault: you designed it wrong. Python makes it as easy as possible to implement algorithms, and the result is readable, so they can be discussed and changed. If it doesn't go fast enough for your needs, then you did not figure out an appropriate solution. I have replaced C code with python, where the python ran 10x faster. This happens because people writing in more difficult languages spend a lot of time sweating the details, so they don't have as much time on the bigger picture. A nearly ideal way to approach a lot of problems is to figure out the algorithms in python, even while you keep C in the back of your head. Once you have something that works, you can replace the performance critical bits in C, but likely >90% of the code will still be OK in python.

    52. Re: It's great.... by Anonymous Coward · · Score: 0

      I completely agree, the professional knows which tools to use. Saving 20 minutes of development time by writing Python instead of C can cost your customer hundreds or thousands of hours of down the road.

    53. Re: It's great.... by optikos · · Score: 2

      the worst error message is and always will be "keyboard error, press F1 to continue"

      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. I bet that I have done exactly that rectification at least 500 times since 1981 (although which keyboard connector I use has changed about once each decade).

    54. Re: It's great.... by Anonymous Coward · · Score: 0

      C++17s most valuable feature is constant expression evaluation. I can now write programs that have very little runtime overhead. For compute bound problems this is a huge win.

    55. Re:It's great.... by Anonymous Coward · · Score: 0

      I rewrote a CPU intensive application in Java (was in Python) and it was much faster in Java. So the blanket statement "Python is faster than Java" isn't true. Depends what you're doing.

    56. Re:It's great.... by djinn6 · · Score: 1

      If you add testing, Python development is even faster. Even Google's unit test library is leagues behind Python's unittest.

      Of course, it's very hard to compare development times. I'm good in Python, decent in C++, but very rusty with plain C. You're probably the opposite.

    57. Re: It's great.... by Rei · · Score: 1

      Love C++17.

      Python is great because you can write something and there's almost no startup overhead - you just start shoving whatever data into whatever variables you want without having to define classes / structures, pass whatever you want without having to define types, etc - and it's got a great set of packages to work with. You get "out of the gate" a lot faster. But then it nickels and dimes you after that point due to the memory/performance overhead. And trying to work around Python's internal limitations means a lot of programming overhead. Also, the non-typesafe nature of Python - again, while convenient in initial programming - also tends to hide bugs. Again, things are easier for you earlier on, harder later on.

      Often (particularly for simple programs), Python is the right choice and can save you a lot of time. But if you're unlucky, it can cost you a even more time.

      The new C++ standards help get rid of a lot of the old C++ annoyances and greatly increase the power of stl. You can have as tight memory and performance as you want. You still have to lay out all of your structures and types, so your "startup times" are longer. But it's so dang powerful after that point. There's still some things they need to tackle, mind you - IMHO strings are still a mess, they need a std::utf8_string, with std::string intended only for 1-byte characters, and IMHO std::wstring should be obsoleted because utf16 is inherently dangerous (it'll "usually" work, and so pass testing, but then someone will input a 4-byte character and everything explodes). But in general.... C++ has really matured. In particular, I love smart pointers, and I so love the combination of std::thread and lambdas in order to inline threaded statements (although they need to add threadsafe stl classes... I had to write a threadsafe std::map with threadsafe iterators for one project I was working on).

      --
      "Lock and load, Brides of Christ!"
    58. Re:It's great.... by Anonymous Coward · · Score: 0

      Remind us what language the python interpreter is written in.

    59. Re:It's great.... by Anonymous Coward · · Score: 0

      A competent Engineer would have avoided those concerns by not using shitty Poothon in the first place

      -FTFY

    60. Re: It's great.... by Anne+Thwacks · · Score: 2
      Unlike "Syntax error at or near line 1, column 1" - which tells you everything you need to know!

      Personally, I prefer:
      User error: Strike user to continue!

      --
      Sent from my ASR33 using ASCII
    61. Re:It's great.... by Waffle+Iron · · Score: 0

      Remind us what language the python interpreter is written in.

      It's written in C, by people who have been reviewing that code base for those types of issues for decades (probably including the use of high-priced tools that help weed out that stuff). Their jobs are important and necessary, if unpleasant... kind of like garbage men. But that doesn't mean that most people should go around handling garbage.

      Personally, as someone who has had plenty of experience with C, I hope to never have to write or review another line of that godforsaken language ever again. It's a mentally exhausting minefield, and makes you reinvent wheels every time you need to do something as simple as concatenate strings. All to pick up only a few percent more performance than certain safer more modern system-level languages.

    62. Re: It's great.... by Anonymous Coward · · Score: 0

      I agree, I cringe when I see large systems companies depend on written in python. Quick scripts fine, serious work? No way wrong tool for the job

    63. Re: It's great.... by Anonymous Coward · · Score: 0

      I still use ps7 and vs2008 exactly for this reason. Newer trends in software are making me more and more disinterested in computing as a whole :-/

    64. Re:It's great.... by gweihir · · Score: 1

      Not really. If you know what you are doing, just add some really optimized modules in C. Python is great for glue code and prototyping though and the interface to C is exactly the same as for Python classes. For the other way round (embedding the scripting in C), Python is not so great, but Lua is a somewhat Python-like replacement that is really easy to embed.

      That said, no language is "the future of programming". All languages that have stood the trial of time have something going for them and have their place. All languages require somebody really competent at the keyboard to produce good software. That somebody ideally has skills and experience with a number of different languages and a solid background in data structures, algorithms and, today, usually Ibternet tech and software security. This will not change anytime soon, and may possibly not change, ever.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    65. Re:It's great.... by Anonymous Coward · · Score: 0

      How often you really need integer with arbitrary precision?

      It kinda looks like a nice idea, but it is almost never actually necessary and in most cases (e.g. loop counter) is an obvious overkill with loss of memory and CPU cycles.

    66. Re: It's great.... by Anonymous Coward · · Score: 0

      It seems python has all the drawbacks of C and none of its advantages

      - embedded developer

    67. Re: It's great.... by chaboud · · Score: 1

      This is the most spectacular trolling I've seen in a long time. Someone ostensibly arguing for the efficiency of C++ misuses C++ in a way that demonstrates the too-much-rope error-prone nature of the language.

      I am, first and foremost, a C++ programmer, but I have spent the last year writing python (machine learning). I find this whole argument hilariously stupid and stupidly hilarious.

      Tool for the job.

    68. Re:It's great.... by Anonymous Coward · · Score: 0

      There are vastly different worlds colliding here without being explicit. Plenty of the code written for business and science is data manipulation code that is more of the "run once" variety than some frequently executed product. This is where the time to develop can become much more significant. The labor cost or opportunity cost from longer development is more significant than the hardware resources or execution time.

      Nobody writes regression test suites for code that runs once. They run it and look at the data product that is the result. They might write other scripts to further validate or analyze the results, particularly if the transform is not obviously correct. If it's going to be a very expensive compute or storage job, this might be done multiple times on sample data to both validate the method and micro-benchmark the method to find hotspots and tune them before running it once on the full dataset.

      If new methods seem relevant for reuse, they would be factored out into a library abstraction for next time. That might start being a product worthy of test suites of its own. But an awful lot of single-use work is just a unique combination of such pieces which already exist, and the combination is as transient as a command typed into an interactive shell.

      When being conscientious, we put this stuff under version control; but it's not because we expect someone to check it out and import it into another product, but more for forensics/audit to be able to go back and reconstruct a data analysis. This is also why things like Jupyter notebooks become popular: the one-off program serves as a sort of literate-programming document that describes the abstract method (in terms of importing known numerical routines, etc.) and the concrete details (in terms of wrangling specific data files into input/output structures for those well-known routines).

    69. Re:It's great.... by Anonymous Coward · · Score: 0

      Huh? Strcat() is a wheel that was invented a long, long time ago...and it rolls as well as it ever did.

    70. Re:It's great.... by Joviex · · Score: 1

      .....as a prototype. If you are making huge systems in Python, I question your ability in the first place. Its meant for quick scripts, quick code, and prototypes.

    71. Re:It's great.... by Waffle+Iron · · Score: 1

      Huh? Strcat() is a wheel that was invented a long, long time ago...and it rolls as well as it ever did.

      You should never use strcat(). But if you do, you need to reinvent wheels that check at least three things every time you use it: The current size of the source, the current size of the dest, and the total free space in dest. Then you need to do the math to check for buffer overflows. Using strncat() safely is almost as complicated. (If instead, you've figured out static assumptions to guarantee safety, now you have a massive documentation problem for future maintainability.)

      But all of that was just for static allocation. What if you have the audacity to support strings that don't have a fixed size limit? Well, now you have a vast new pile of wheel reinventing to do on top of that.

    72. Re:It's great.... by Anonymous Coward · · Score: 0

      Very insightful and respectful comment; you are correct.

      CAP === 'scrolls'

    73. Re:It's great.... by Anonymous Coward · · Score: 1

      YOU, an AC nobody wanna-be programmer Dunning-Krueger poster boy turd, are calling Michael fucking Abrash an "incompetent programmer"?

      Now I've seen everything.

    74. Re: It's great.... by mcswell · · Score: 1

      "Duck typing is extremely brittle..." As opposed to Duct Taping. Which is, if you will, what running TensorFlow from Python.

      And before you get too down on Duct Taping, remember that's (part of) what got the Apollo 13 astronauts back from the Moon.

    75. Re: It's great.... by mcswell · · Score: 1

      I don't think "screens" is a good measure for deciding whether Python is an appropriate language. I have a program with about ten thousand lines of Python code, and it runs just fine, thank you. (It imports an XML file describing the morphology of a language, and spits it back out as finite state transducer code, in under five seconds. The XML files in question tend to be a few thousand lines, generally with one open or close tag per line.) I'd hate to have coded that in any other language (*especially* XSLT, which has to be the world's most verbose language).

      I don't, however, have anything better to suggest as a metric, other than the obvious speed issue.

    76. Re:It's great.... by packrat0x · · Score: 1

      #include <stdio.h>
      int main()
      {
                      char a[1];
                      printf("%d\n",sizeof(a));
                      printf("%d\n",sizeof(&a));
                      return 0;
      }

      --
      227-3517
    77. Re:It's great.... by Anonymous Coward · · Score: 0

      > We *could* do them in C but it'd be marginally faster with longer development time.

      One particular program that I originally wrote in C (some decades ago) was merging large data sets into postscript templates. It was mostly using the str functions to find the tags that marked where data was to be merged and to append the data. On a long run producing many output pages it was quite ponderous. I rewrote it in Python and it was considerably faster than the C program.

    78. Re: It's great.... by orlanz · · Score: 1

      Yup! I regularly do programming that is data analysis of files in the thousands and millions. The files are usually data condensed 500bytes or bulky 300megs (stupid xml) each. Proficient in Python and C.

      I don't see much of a difference in C vs Python. Maybe 4x (no, I am not doing it wrong). If I replace the running bottle necks with C, I can easily get 50-90% of that.

      BUT, when you consider how easy it is to transform a linear logic flow to work across local and distributed CPUs... Erlang, and C aren't worth the time wasted to even discuss the topic.

      The difference in adaptability, maintenance, and evolution of the logic flows saves me days in dev time. Do I really care if my daily program takes 4hrs vs 15hrs? Especially when I can spend 2hrs to make it a distributed system and bring it down to 2hrs by throwing 8 virtuals at it? No!

    79. Re:It's great.... by datavirtue · · Score: 1

      All of this is meaningless to an employer that takes three weeks to provision a server. Besides...once a problem domain is solved you can just reuse the code.

      --
      I object to power without constructive purpose. --Spock
    80. Re: It's great.... by datavirtue · · Score: 1

      They would try to optimize if they did load/performance testing....but they don't so they don't.

      --
      I object to power without constructive purpose. --Spock
    81. Re: It's great.... by datavirtue · · Score: 1

      You obviously have not been swimming in .NET developer infested waters.

      --
      I object to power without constructive purpose. --Spock
    82. Re:It's great.... by datavirtue · · Score: 1

      Can't you just encrypt and compress the memory tuples? I saw that in a movie once.

      --
      I object to power without constructive purpose. --Spock
    83. Re:It's great.... by xvan · · Score: 1

      Python is getting traction on machine learning because of TensorFlow, which is bound to but not written in python. Data analytics where there is no strict time constraint can be done in python. Run, wait, some minutes, get the result.
      Heavy data crunching with strict time constraints, automation, HFT, weather forecasting, and big numeric simulations are done with low level languages.

    84. Re:It's great.... by Z80a · · Score: 1

      If you need a program that runs fast, you use C/C++, but If you need to make a program fast, you use python.

    85. Re:It's great.... by Quantum+gravity · · Score: 1

      Modern browser have a JIT (Just In Time) compiler for JavaScript.

    86. Re: It's great.... by Anonymous Coward · · Score: 0

      Or anything important enough that you might need multiple branches.
      Because merges are a gigantic pain with Python programs, every new if block means that you have to resolve the conflict manually, with significant risk of missing something and introducing a bug.
      For any other language, you can just use the ignore-whitespace merge mode and it will be fine, but with Python that just makes things worse.

    87. Re:It's great.... by angel'o'sphere · · Score: 1

      For a competent admin it is no difference if he administers 1, 10 or 100 machines. Especially with modern provisioning tools.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    88. Re:It's great.... by Anonymous Coward · · Score: 0

      >.....as a prototype. If you are making huge systems in Python, I question your ability in the first place. Its meant for quick scripts, quick code, and prototypes.

      Yeah, like Django or TensorFlow. Get a grip.

    89. Re:It's great.... by Anonymous Coward · · Score: 0

      Yeah, and if you do the math to check for buffer overflows, make sure that you know that "+" for int is NOT overflow safe.

      C is horrible.

      If anyone is using it and doesn't think that, make sure to tell me what programs you write in it so I never EVER use them.

      Python has none of those problems.

    90. Re:It's great.... by angel'o'sphere · · Score: 1

      A "char" in C is not the same as an Integer in Python.
      No idea why you wasted your time to compare a 1 byte structure with a pointer to an object.
      Hint: you should at least have used: int64 ....

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    91. Re: It's great.... by angel'o'sphere · · Score: 1

      The main reason is using a database were we traditionally would simply use a file. Or wrong usage of XML ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    92. Re:It's great.... by Anonymous Coward · · Score: 0

      There are implementations written in Java, .NET, C and Python (JIT) and a Python native compiler written in C++.

    93. Re: It's great.... by ath1901 · · Score: 1

      The time to a first working version is especially important when the solution isn't obvious. It is not until I have a working program that I truly understand what the tradeoffs and bottlenecks are. Getting to that point quickly often makes economic sense since it is not until then you can make proper estimates of the actual cost or viability. Early optimisation is the root of all evil and all that...

    94. Re:It's great.... by tepples · · Score: 1

      which is when you are supposed to profile to identify your performance bottle necks and write those in a native extension.

      Good luck getting your users set up to compile said native extension from the C++ source code that you distribute. Just installing the Build Tools for the version of Microsoft Visual C++ with which a particular minor version of Python 3 for Windows was built was a multi-gigabyte download last I checked.

    95. Re: It's great.... by Anonymous Coward · · Score: 0

      The CO2 scrubbers were temporary and never meant to be used ever again.

      Python is tensorflow is used only for the one off training and validation. Once you train the network, you throw away all the useless python and implement it in a real langue.

    96. Re: It's great.... by jma05 · · Score: 1

      I agree that C++ new features have improved it. But many features also feel bolted to me. For example, I prefer Rust's language level support for move semantics than C++'s library level support. Smart pointers are very nice. But Boehm GC integrated into Nim does not seem to add much overhead. And Rust's model integrates smart pointers into the language. But if C++ features feel natural to you, then more power to you. I would have sided with C++ since it has more libraries. But Rust has enough crates now that it does not lag behind too far, at least for my purposes. Nim's packages can't match C++, but it integrates with C/C++ well since transpiles to them. I avoid low-level use of threads and prefer parallel maps and parallel blocks. They suit my purposes, but are perhaps not adequate for you.

    97. Re: It's great.... by ath1901 · · Score: 1

      Sure, but if the project gets even bigger, write a Python wrapper around it for all the stuff that changes often like integration, reporting or small ad hoc spinoffs. Large C++ projects take an awful long time to compile and the code base is much more cumbersome to manage so a lightweight framework around it makes sense.

    98. Re:It's great.... by Rei · · Score: 1

      It depends entirely on what you want to do. In C/C++, you set your variables to the type you need. In python, they're always huge. E.g. I don't need an int64 to keep track of what's basically an enum, or whatnot.

      Python really becomes a memory monster once you do multidimensional data structures. And numpy just isn't that flexible with them, so you're often forced into using native python data structures.

      --
      "Lock and load, Brides of Christ!"
    99. Re: It's great.... by Anonymous Coward · · Score: 0

      And they have Never In Time memory cleanup/freeing...

    100. Re: It's great.... by ath1901 · · Score: 1

      [citation needed]

      I've seen the claim that it is only for prototyping or scripting so many times. Please explain why.

      Python is multi paradigm with very good support for modules and unit testing, mocking etc. What more do you need for large scale projects?

      Sure, it is slow so don't bother if your project is very CPU bound. But, for anything else, why not?

    101. Re:It's great.... by jma05 · · Score: 1

      A.) I mentioned my use case - research analytics. I am the only user for most of the code I write. My results have users, not the code.

      B.) If your users are not tech-savvy, you distribute the binaries, not the code, just as with any other language. There are plenty of tools to do that.

    102. Re: It's great.... by Rei · · Score: 1

      As an example of why I used a threadsafe map... I was working on a ring network, and had a ring of nodes. It was built around a std::map so that you could seek to each individual node directly by their hex ID (std::map::find() or []); so that the closest node to a target hex could be found (with upper_bound()/lower_bound()); and so that you could iterate through a node's neighbors.

      Various threads could add or remove elements in the ring at any point in time, and there were many tasks that involved iterating through every element of the ring in order. Also, sometimes there would be tasks where a node would need to iterate through its neighbors in either direction. So you can imagine the disaster that happens when you've got an iterator pointing to something that just disappears on it (also there can be problems with begin()/end() nodes). But locking the entire network for the entire duration of a cross-network sweep (with significant per-node overhead) was also not an option, and there was meaningful overhead to seek operations, so it was really desirable to be able to iterate through neighbors.

      The threadsafe map class really did the trick for me (I was also able to give it a mode to allow for circular iteration, which std::map doesn't have... aka you go off one end and come back in on the other). I had to replace the std::map iterators with a wrapper class that acted as smart pointers to the nodes, and nodes (also wrapped) couldn't be physically deleted until there were no longer any iterator references to them. A deletion operation merely flagged a given node for deletion. And of course I had to put locks / lock guards around all of the std::map functions that weren't overridden.

      One piece of unexpected behavior was the realization that reverse iterators have gotchas. If you have a forward iterator to an element of a std::map and you insert an element elsewhere in the map, nothing happens, no matter where it was inserted; your iterator continues pointing to the exact same element it had been pointing to. But reverse iterators actually point to one beyond the element that they appear to point to, so insertions can cause what your iterator points to to change. I had to write my own reverse iterator implementation because that sort of behavior totally blows up in a threaded environment.

      --
      "Lock and load, Brides of Christ!"
    103. Re:It's great.... by h33t+l4x0r · · Score: 1

      Javascript made the web a pain when it first showed up. These days, it's not so bad.

    104. Re: It's great.... by pchasco · · Score: 1

      You are in luck because there is already a high performing JIT compiler for python: Pypy. It performs on par with node.

    105. Re:It's great.... by angel'o'sphere · · Score: 1

      E.g. I don't need an int64 to keep track of what's basically an enum, or whatnot.
      You don't *need*, true.
      But the compiler will usually make sure that a variable of your enum type fits into an 'int' ... and on a modern compiler/processor architecture an int is an int64 ... to change that you need to know a bit more about C/C++ :D
      On the stack stuff like this is completely irrelevant anyway, it only matters for members of structs when you allocate huge amounts of such structs.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    106. Re:It's great.... by Anonymous Coward · · Score: 0

      It's an even worse pain these days.

      Instead of having virtual raindrops on your page or glitter trails following your mouse pointer, we have dynamic content which takes forever to load (lots of spinning wheels) and which is invisible if you have JS turned off, we have pages that jump around while you're trying to read the content, annoying pop-up ads and dialog boxes, fields that don't retain focus while you're trying to type... the list goes on.

      I like the language, but I HATE what UX "experts" have allowed it to do to the web. It's a total train wreck!

    107. Re:It's great.... by Anonymous Coward · · Score: 0

      You should never use strcat(). But if you do, you need to reinvent wheels that check at least three things every time you use it

      OMG, you just described this one guy I used to work with back in the day. He's code was unexpected behavior all the f'ing time!!! Then he'd come back and just say, "well then tell the users not to type names longer than ten chars. The devs threw a small party in the mail room's packaging room the day he left.

    108. Re: It's great.... by Anonymous Coward · · Score: 0

      BASIC was more limited than Python yet many people developed commercial software during the 1980s written in BASIC. Later assembly language combined with BASIC. I used BASIC, not Microsoft Visual Basic, during the early 2000s for some data analysis type work.

    109. Re: It's great.... by Anonymous Coward · · Score: 0

      The problem is not python, itâ(TM)s that in order to build a lot of open source shit, requires python for stupid reasons.

      The vast majority of python code is 2.5 era, and build tools often require you to install three or more versions of python, just like with Perl. Even PHP has become a monster for requiring several parallel installations for no reason.

      When shit works, and itâ(TM)s not talking to the net, quit forcing an update.

    110. Re:It's great.... by Rei · · Score: 1

      If I care about memory, I'll just store it as a char or unsigned char. And that's the key difference: in C/C++, you have easy and full control over memory usage. In Python, you have to jump through hoops, where it's even possible at all.

      it only matters for members of structs when you allocate huge amounts of such structs

      And maybe you never do that, but many people, including myself, do.

      --
      "Lock and load, Brides of Christ!"
    111. Re:It's great.... by Anonymous Coward · · Score: 0

      If you are "data crunching" and worried about storage size of numeric types, you really ought to reconsider the idea that Numpy isn't a good fit.

      You should never care about the size of one integer or float, and as soon as you care about the size of millions of them, you are halfway to realizing you should try to model your problem with arrays/vectors. You should not make millions of Python objects, thinking in an array-of-structures manner. You should make a handful of Numpy arrays, thinking in structure-of-arrays.

      You can use "np.array((10**9), dtype=np.uint8)" if you want to store a billion 8-bit values in 1GB of RAM and have the expected O(1) access behaviors to randomly access them. I frequently use types like np.float16 when I want to store lots of low-precision floating point data in Numpy, ship it to the GPU, and run OpenCL kernels on it.

    112. Re:It's great.... by angel'o'sphere · · Score: 1

      And maybe you never do that, but many people, including myself, do.
      Yeah, but that means you have to declare a char and cast an enum into it and out of it ...

      I have only limited knowledge about Python, but memory problems never were an issue.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    113. Re:It's great.... by Anonymous Coward · · Score: 0

      You should never use strcat(). But if you do, you need to reinvent wheels that check at least three things every time you use it: The current size of the source, the current size of the dest, and the total free space in dest.

      That's not "reinventing wheels," it's called "knowing what you're doing."

      If you don't know the size of your source and dest, why the hell do you expect your programming language/environment to hold your hand?

    114. Re:It's great.... by Rei · · Score: 1

      Enums are treated as ints under the covers. Depending on your compiler flags, enums / ints should automatically cast to char:

      enum e
      {
          FOO = 0,
          BAR = 1
      };

      int main(int argc, char** argv)
      {
          char c;
          c = FOO;
          return 0;
      }

      No warnings with default g++ compiler flags.

      I have only limited knowledge about Python, but memory problems never were an issue.

      And I've encountered python memory and performance roadblocks which are difficult or impossible to resolve frequently. Just because you don't do memory or CPU intensive tasks doesn't mean that nobody does.

      --
      "Lock and load, Brides of Christ!"
    115. Re:It's great.... by Darinbob · · Score: 1

      And yet, many times things DO need to be faster or smaller. Nothing that wrong with Python, but it should not be treated as the only language that exists.

    116. Re:It's great.... by Billly+Gates · · Score: 1

      Citation of modern CPU performance is listed here. My so called ancient i7 4770K from 2014 can do 137,000,000,000 instructions per second! Probably even more as it is overclocked to 4.2 ghz with ram OCed to 2400 mhz. This is not server hardware by a long shot.

      Come on this is 2018 not 1978 where peaking and poking with syntax sugar in assembly and using 2 digits instead of 4 to save space is not important anymore!

      Sure the old neckbears will say it is art and go one and on etc on how bad things are today and that it should be better. But in reality is our employers pay us to get shit done the quickest and get it out to market.

      Python can do wonders, it's fast to develop, it's well understand, and for heaven sake better for the math/finance people than VBA in Excel. We all have SuperComputers and if you need insane math you can use the GPU functions in some apis where it is another supercomputer of level of trillions of floats per second of data!

      No one wants to save bytes in C in 2018 nor cares becauses old timers running some benchmark. As stated previously geeks were shocked in 2000 when Java was a hit on servers citing how sloooowww it was. It turns out on server loads it is SQL & I/O bottlenecks anyway.

      If Python was so horrible and slow then why is it popular with IOT in embedded devices?

    117. Re:It's great.... by Billly+Gates · · Score: 1

      I want to see this mysterious Python program that gobbles up 4,000 megs of ram that is standard on low end Pcs today?

    118. Re: It's great.... by Anonymous Coward · · Score: 0

      Yes, but how many options did people have for languages that would run on the computers people had at that time? Basic carried on for quite some time after, but I doubt it would have gained much of a following had there been other languages available for the underpowered home computers of the day.

    119. Re: It's great.... by LifesABeach · · Score: 1

      I believe BDD Testing could help with the intrensic issues

    120. Re: It's great.... by LifesABeach · · Score: 1

      At what cost?

    121. Re: It's great.... by LifesABeach · · Score: 1

      The ones you work for care not about you but care for a perceived profit generated by your project

    122. Re: It's great.... by LifesABeach · · Score: 1

      What says the âgolden rule?â(TM)

    123. Re: It's great.... by LifesABeach · · Score: 1

      BDD Testing produces results your client can work with

    124. Re:It's great.... by djinn6 · · Score: 1

      You might be joking, but memory compression a legit strategy. Even with the compression overhead, memory is much faster than disk or network. You can achieve higher cache-hit rates with a compressed in-memory cache since it can store several times more entries.

    125. Re: It's great.... by Anonymous Coward · · Score: 0

      You seem to imply statically typed languages do away with unit testing. This argument is ludicrous. Unit testing addresses dynamic code execution, not static structure. Static typing requires a lot of boilerplate code with no added benefit.

    126. Re: It's great.... by Anonymous Coward · · Score: 0

      Those loop counters are of course eating all your memory. Duh

    127. Re: It's great.... by Anonymous Coward · · Score: 0

      I don't know WTF you mean by that. If you mean that the C compiler you use is written in C++ that might very well be the case for you.
      I know that it isn't the case for me.

      One great thing with C compared to other "languages" is that it isn't defined by a reference implementation.
      That means that it is actually possible to write multiple compilers and when they differ it is possible to look at the standard to figure out what the right way is.
      When you encounter problems with implementation defined fad of the week languages you can never tell if an issue is a quirk of the language or a bug in the compiler.

    128. Re:It's great.... by Anonymous Coward · · Score: 0

      You just don't recognize what the real trade off is. It's not about the execution time. It's the time from noticing you have a problem to having the solution.

      You are missing a very important duration, the time it takes to notice the problem.

      It's even more obvious when you look at cost. Let's say my time costs my employer ~$100 per hour. Over the course of a week, I'll save somewhere between 18 and 33 hours of work, which translates to $1800 to $3300. For that money, my employer can buy 3 or 4 new computers to run these extremely inefficient programs. Of course, in reality they'll pay me for the 40 hours anyways and I'll just be 100-200% more productive.

      You are counting beans here and not looking at the overall costs and consequences.
      Pythons ducktyping tends to move problems from compile time to run time.
      Depending on application it might be fine if you run the program in house.
      If you are shipping it to a customer that means that it is more likely that the customer and not you will find the problem.
      Once that happens you won't get a proper description on how to recreate the problem.
      Those 18-33 hours saved earlier are gone and possibly the customer too.

    129. Re:It's great.... by loufoque · · Score: 1

      Do it once properly in C, or hack something together in Python and spend the rest of your life debugging the corner cases.

    130. Re: It's great.... by mSparks43 · · Score: 1

      in all recent compilers

      C is a subset of C++.

      C++ is not a subset of C

      So when you write your C programs you are only using a subset of the language available to you.

      At no point is C++ compiled by a compiler that can only compile C.

    131. Re: It's great.... by Anonymous Coward · · Score: 0

      Not sure I would term him incompetent, but he wears blinkers for sure. I wouldn't want him near any software that required on going maintenance. Famously when asked what are the benefits of C++, he was completely stumped.

      Making software that is a pain to maintain and keep bug free, means less time for optimization. There is a trade off, which he flat out refuses to acknowledge.

    132. Re: It's great.... by Anonymous Coward · · Score: 0

      C is sort of a subset of C++ but not quite, there are differences

    133. Re:It's great.... by phantomfive · · Score: 0

      Maybe I'm more prone to have my programming projects involve data crunching than the average person.

      When I was in college, computers were starting to get fast enough that you didn't have to worry about CPU time. At that time, I thought, "I mostly won't have to worry about efficiency in the real world." But somehow, in practice, every job I've had in the real world, I've had to pull out the timers and start optimizing things. Performance still matters, especially when you are serving it to a million different users.

      --
      "First they came for the slanderers and i said nothing."
    134. Re:It's great.... by Anonymous Coward · · Score: 0

      Some compression algorithms are so fast that when dealing with large amounts of streaming data, even in memory streams, it's faster to compress and decompress because you're memory bandwidth limited on modern CPUs.

    135. Re:It's great.... by Shirley+Marquez · · Score: 1

      Say programmers who know how to balance development time against run time.

      Some programs are run ONCE and discarded. Or more accurately run a bunch of times during development and testing, and then there is one final run on the real data. That's typical for a program that is converting data from some old format to a newer one. Obviously, spending any time optimizing such a program would be utterly pointless, as the extra time spent on development would far outweigh any savings you would achieve during the program's single use. (Not to mention that 90% of the run time of such a program is probably spent on input and output, so improving the algorithms won't buy you much.)

      At the other end of the scale, there is code that does crucial inner loop calculations. That code gets run a lot, and shaving even a little bit of time off its run time adds up to a lot. Code like that is a prime target for optimization.

      All the other use cases lie somewhere in between. And each calls for a different amount of effort put into improvement. The mark of a good programmer and designer is knowing where to spend the effort and where not to.

    136. Re:It's great.... by Shirley+Marquez · · Score: 2

      I wish I hadn't already commented on this subject so I could mod this comment up.

      Michael Abrash is somebody who LITERALLY wrote the book on writing high performance code. More than one, actually. I also remember his posts on the subject on the late lamented BIX. He is the antithesis of an incompetent programmer.

    137. Re: It's great.... by Shirley+Marquez · · Score: 1

      In the first implementation of C++ it WAS compiled by a compile that could only compile C. That first implementation was a preprocessor that turned your C++ program into somewhat hard to read C code, which was then run through the C compiler.

      Nowadays you are far more likely to do the opposite: compile your C code with a compiler that is written in C++. That includes current versions of GCC and LLVM/Clang.

    138. Re: It's great.... by Anonymous Coward · · Score: 0

      And what ARE the benefits of C++?

      Seems to me, when I started learning C++ back in the mid-90s, it was touted as making development faster, simpler, and less bug-prone. I don't see that it has; in fact, I think developing with modern C++ is a tangle of mixed paradigms, obscure creeping featurism, and broken backward compatibility.

      OTOH my ANSI C programs from 1991 still compile and run today.

    139. Re:It's great.... by Anonymous Coward · · Score: 0

      > Huh? Strcat() is a wheel that was invented a long, long time ago...and it rolls as well as it ever did.

      "as well as it ever did" is appallingly slow. In order to append it must step along the string until it finds the terminator and then adds each character - potentially overwriting stuff it should not. Making this safe is not easily done.

      Python outperforms C's string functions.

    140. Re:It's great.... by Anonymous Coward · · Score: 0

      Joel on Software did an interesting profile of the problems with strcat() et al:

      https://www.joelonsoftware.com/2001/12/11/back-to-basics/

      However, despite the inefficiencies and security concerns, concatenating strings in C is a solved problem. No reinventing of wheels is necessary.

    141. Re: It's great.... by Viol8 · · Score: 1

      Wrong. Change the char to an int and see what result you get. This is basic C, never mind C++.

    142. Re:It's great.... by KingBenny · · Score: 1
      i'm still waiting for someone to explain why Python is something new ... i see it mentioned all the time with heavy words "a.i." and "machine learning" and all that hype still robots bump into walls and the answer to the question has not been found other than the number 42 ... i must be missing something here ? is it the syntax ? does it have things that normal programming logic wont allow ? or is it just fashionable ? is it about not needing to know what your're doing ?

      wget -qO- $CURLURL |gunzip >jsondata
      cat jsondata |../commands/pretty_please.sh0 >jsondataa
      varvar=$(cat jsondataa |grep -oP '(? varvar_in=$(cat jsondataa |grep -oP '(? varvar_out=$(cat jsondataa |grep -oP '(?

      #echo "vshares:"$varvar
      #echo "invshare:"$varvar_in
      #echo "outvshare:"$varvar_out
      ########
      varvar=$(echo "$varvar + $varvar_in - $varvar_out" |bc -l)
      varvar=$(echo "$varvar * 1000000 * 0.02" |bc)
      curl --silent --data '{"jsonrpc": "2.0", "method": "get_reward_fund", "params": ["post"], "id": 40 }' https://api.steemit.com/ |../commands/pretty_please.sh0>jsondataaa
      totvar=$(cat jsondataaa |grep -oP '(? morvar=$(echo "$varvar / $totvar" |bc -l)
      lastvar=$(cat jsondataaa |grep -oP '(? finalvar=$(echo "$morvar * $lastvar" |bc -l)
      curl --silent --data '{"jsonrpc": "2.0", "method": "get_state", "params": ["post"], "id": 40 }' https://api.steemit.com/ |"$COMMANDSDIR"pretty_please.sh0 >jsondataaa
      basevar=$(cat jsondataaa |grep -oP '(? quotevar=$(cat jsondataaa |grep -oP '(? ratiovar=$(echo "$basevar / $quotevar" |bc -l)
      sbdvar=$(echo "$finalvar * $ratiovar" |bc -l)

      or am i getting old ? and then someone goes like "but you have a command to do that json for you" and im like "but why would i want that ? all i need is right there without add-ons ?" im getting old right ? generation "i screw drived my pc myself" must be that, im getting old

      --
      Free speech was meant to be free for all... how can anyone grow up in a nanny state ?
    143. Re:It's great.... by lsatenstein · · Score: 1

      With the 8 core cpus and the forthcoming 16 core cpus's who cares what Python does.
      The constraint is going to not be compute power but memory availability and inter-cpu communications.

      Python is a great prototyping language, and great as an alternative to some shell scripts.
      Where launching applications, Python is great.
      Perhaps someone can provide a Python replacement for bash.
       

      --
      Leslie Satenstein Montreal Quebec Canada
    144. Re:It's great.... by Anonymous Coward · · Score: 0

      I recommend checking out Cython as it allows you to speed up the slow parts of your code and has the option of statically-typed variables. Let's you optimize time-consuming loops, etc.

    145. Re: It's great.... by Anonymous Coward · · Score: 0

      Sadly there are still way too many firms out there that take weeks to provision a development or functional test server let alone non-functional or production clusters that are a little more static but still should take under 2 hours to create from scratch from a master ISO, installer binaries and some deployment scripts. I try not to use template VMs unless they're created from scripts and easy to recreate and patch.

    146. Re: It's great.... by Anonymous Coward · · Score: 0

      I have a super light version of WinXP that installs in about 5 minutes and only uses about a gig of disk and less than 64MB of RAM with a handful of processes running. It's rock solid for testing dodgy Win32 executables and resetting back to a snapshot in a VM. Also still runs some DirectX games and applications quicker than Win7 but starting to show its age now and some stuff refuses to install. If it ain't broke...

    147. Re:It's great.... by angel'o'sphere · · Score: 1

      In C it is perfectly legal to assign an int to a char, and that means an enum to a char.
      Nevertheless:


            e value = FOO;
            sizeof(value) == sizeof(int) // this should be true

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    148. Re: It's great.... by Anonymous Coward · · Score: 0

      Unfortunately, in some instances if you don't design optimally in the first place, optimization means a rewrite. Version 1.0 just ends up as a verification step for overall correctness. And if you are doing heavy numerical analysis 1.0 may have been too slow to even get good results on large cases to be much use for verification.

    149. Re: It's great.... by Anonymous Coward · · Score: 0

      Unfortunately, in some instances if you don't design optimally in the first place, optimization means a rewrite.

      "The best optimization is a better algorithm." :)

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

    Next stupid question.

    1. Re:No by 14erCleaner · · Score: 1

      Betteridge's law strikes again!

      --
      Have you read my blog lately?
  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.
    1. Re:Popular != Good by Anonymous Coward · · Score: 0

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

      "The Future of Programming" !(necessarily)= Good either. The question isn't whether Python is the best, or even a great programming language. The question is simply whether it is set to be the dominant programming for the foreseeable future. All evidence indicates that it is. I say that as someone who used Perl for 20 years and switched largely to Python not because I thought it was better (I still HATE significant white space) but because I work for Cisco and everything is done in Python there. If I want to be able to use, understand and modify the many, many scripts that I use on a daily basis, I need to be proficient in Python.

    2. Re:Popular != Good by Anonymous Coward · · Score: 0

      I say that as someone who used Perl for 20 years

      I'm sorry, but you've just disqualified yourself from having an opinion about programming languages.

      Next, please.

    3. Re: Popular != Good by Anonymous Coward · · Score: 0

      I am sorry but you are an idiot and have just disqualified yourself from any and all intelligent discussion.

    4. Re: Popular != Good by Anonymous Coward · · Score: 0

      The adults are talking here. Comeback when you understand how to handle raw pointers.

    5. Re:Popular != Good by freeze128 · · Score: 1

      It could be "The Future of easy to use Programming"...

    6. Re: Popular != Good by Anonymous Coward · · Score: 0

      Come back when you understand the difference between a phrasal verb and a noun.

      You're the kind of guy who says "backup your data", right?

    7. Re:Popular != Good by TeknoHog · · Score: 1

      Python is popular because it's relatively easy to use

      To me, Python is the default language for starting something if I don't have a good reason to do otherwise. It has a very nice set of libraries for everything and then some, and it's quick to test throwaway ideas. It's a bit like going into some weird foreign country, not knowing what's safe to eat, but then there's McD where you know what you'll get. For most specific tasks, there are better languages, but Python to me is the ultimate all-round language.

      I'm personally OK with the whitespace thing, but I've found that collaborations can be fragile with different people using different editors on different OSes. I much prefer the Julia style (derived from Fortran) where line breaks are significant, but no other whitespace is. You'll need an "end" to close a block, but no ugly punctuations like ; or {}.

      --
      Escher was the first MC and Giger invented the HR department.
    8. Re:Popular != Good by Anonymous Coward · · Score: 0

      Python isn't easy to use though. Perhaps it's "relatively" easy to use if you compare it to a low level programming language or MS Basic, but it's a real pain in the ass to work with and not appropriate for beginners. What's worse, because of the weird syntax it's a lot harder to migrate to languages that don't suck than it would be if the designers had been even marginally qualified to design the language.

      There's a reason why so many languages use things like curly braces to denote code blocks.They could just as easily have used other grouping symbols, but it would be fucking confusing. Not with Python though, they're OK confusing the hell out of people by doing non-standard and idiotic things like syntactic white space because Python.

    9. Re:Popular != Good by Spacelem · · Score: 1

      I primarily use Julia now, and I agree, "end" tags would make Python a lot more comfortable for me (plus it would match the Python koan "be explicit, not implicit", i.e. explicitly end your blocks with an end tag).

      That said, as a mathematical modeller, I just find Julia easier than Python it pretty much every way going (I even prefer the 1-based indexing, which is a feature in nearly every programming language used by mathematicians). I know Python sees quite a bit of use in science (along with R, which is the other big name), but I think Julia is definitely going to gain some ground on Python in the future, especially as it approaches the 1.0 release.

    10. Re:Popular != Good by TeknoHog · · Score: 1

      I primarily use Julia now, and I agree, "end" tags would make Python a lot more comfortable for me (plus it would match the Python koan "be explicit, not implicit", i.e. explicitly end your blocks with an end tag).

      That said, as a mathematical modeller, I just find Julia easier than Python it pretty much every way going (I even prefer the 1-based indexing, which is a feature in nearly every programming language used by mathematicians). I know Python sees quite a bit of use in science (along with R, which is the other big name), but I think Julia is definitely going to gain some ground on Python in the future, especially as it approaches the 1.0 release.

      Agreed, I also have a background in scientific computing, starting with Fortran 90. I like having native complex and matrix math, as well as the numerous builtin math functions. Doing the same with Python/Numpy gets really messy and verbose, so that's what Julia should aim to replace. The problem is the glue language aspect of Python -- many people who use Numpy also need some other features/libraries of Python. (I use Julia for my math art, but for live demos I need OpenGL and interactive controls, so I use Python for those.)

      --
      Escher was the first MC and Giger invented the HR department.
    11. Re:Popular != Good by Anonymous Coward · · Score: 0

      I challenge you to name just one restaurant that has a better hamburger than McDonald's, or just one store that has a nicer atmosphere than Walmart.

  5. A reality TV star by Patrick+May · · Score: 4, Funny

    I love that the Economist feels it necessary to explain who Kim Kardashian is to their readers.

    1. Re:A reality TV star by Chris+Mattern · · Score: 4, Funny

      She's one of those aliens from Star Trek, right?

    2. Re: A reality TV star by Anonymous Coward · · Score: 1

      There are two groups with similar names, the Cardassians and the Kardashians. One group is vaguely reptilian, have large misshapen heads and an over-blown and undeserved sense of superiority. The other group invaded Bajor.

    3. Re:A reality TV star by TeknoHog · · Score: 3

      I still struggle to understand why KK is somebody worthy of media attention, unlike people who actually make useful tools and products. From what I've seen, she is just making a huge ass of herself.

      --
      Escher was the first MC and Giger invented the HR department.
    4. Re:A reality TV star by gweihir · · Score: 1

      Clever ;-)

      She is making a lot of money though and some people mistake that for quality.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    5. Re:A reality TV star by Anonymous Coward · · Score: 0

      She's one of those aliens from Star Trek, right?

      Nope. She's the one with the WIDE-LOAD sign stuck to her arse.

    6. Re:A reality TV star by ayesnymous · · Score: 1

      The author has balls to risk his credibility by admitting he knows who Kim Kardashian is.

    7. Re:A reality TV star by david-bo · · Score: 1

      They always do. If they mention Goldman-Sachs, the will add "an investment bank". I think most of their readers know what Goldman-Sachs is.

    8. Re:A reality TV star by phantomfive · · Score: 0

      Why is she different than any other entertainer?

      --
      "First they came for the slanderers and i said nothing."
    9. Re:A reality TV star by TeknoHog · · Score: 1

      Why is she different than any other entertainer?

      Are you seriously asking why a "famous for being famous" person is different from professional performing artists such as musicians and actors?

      --
      Escher was the first MC and Giger invented the HR department.
    10. Re:A reality TV star by phantomfive · · Score: 1

      Don't discount the skill of being an entertainer.

      --
      "First they came for the slanderers and i said nothing."
  6. 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.

    1. Re: Briefly? No. by walllaby · · Score: 1

      Just curious, but where does the Java part come in?

  7. The future has yet to be invented... by ElitistWhiner · · Score: 1

    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

    1. Re:The future has yet to be invented... by gweihir · · Score: 1

      Bullshit. Sure, you need to do it a the top end, but with all the nil-whits churning out bad code these days, that is not so far out of reach. And there will not be any "artificial intelligence creating self-correcting code" or "auto algorithms" anytime soon, if ever. That is a myth.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  8. I hope not. by Anonymous Coward · · Score: 1

    I'd rather go back to Perl.

    1. Re:I hope not. by OYAHHH · · Score: 1

      I have to say, Perl does take a real man to code in.......

      --
      Caution: Contents under pressure
    2. Re:I hope not. by Anonymous Coward · · Score: 0

      A real man? As in someone who will refuse to admit they are lost...?

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

    1. Re:Another "Language X is the Future" Story? by DCFusor · · Score: 1

      Agree almost 100%, until you try and use VBA on a DB on linux - the most popular big production opsys. Then we use...it depends but perl is easier for me.

      --
      Why guess when you can know? Measure!
    2. Re:Another "Language X is the Future" Story? by Anonymous Coward · · Score: 0

      "Coders", which do not ever rise to the level of programmers, are now "Software Engineers"?

      May (insert your god here) have mercy on the world when it ends very shortly.

  10. Wow. The CIA offers some sweet services. by dmomo · · Score: 4, Funny

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

    1. Re:Wow. The CIA offers some sweet services. by Anonymous Coward · · Score: 0

      "The CIA has employed ... Google for crawling web pages

      This research is skewed by the fact that they examined Google searches. Real programmers use DuckDuckGo.

    2. Re:Wow. The CIA offers some sweet services. by Entrope · · Score: 2

      The important thing is that they avoided using the passive voice. They could have written "Python has been used by ..." and had no problems with the parallel construction they used. I would guess that's what the original author really wrote. Then someone came along with a grudge about the passive voice and butchered the sentence.

  11. Re:Briefly? No. by dmomo · · Score: 2

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

  12. Itâ(TM)s because of PiP/conda Numpy, Scipy an by Anonymous Coward · · Score: 0

    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.

  13. No, no, no. by Anonymous Coward · · Score: 0

    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.

    1. Re:No, no, no. by vtcodger · · Score: 1

      If you can't get Python indentations right, you may be in the wrong profession.

      Python has its moments. Long scripts can be hard to navigate. The occasional need to understand the difference between deep and shallow copy can be unintuitive. Some of the library routines don't do what one might expect. For example a = sort(my_data) won't do what one probably expects. You probably want sorted, not sort Some of the error messages can be a bit obtuse. UnboundLocalError -- Whaaaa? Why me, God?

      But white space? Not a problem for most folks.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    2. Re:No, no, no. by gweihir · · Score: 1

      If you can't get Python indentations right, you may be in the wrong profession.

      I second that. The style is a bit unusual, but anybody competent should not need more than a few days to get used to it.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:No, no, no. by Anonymous Coward · · Score: 0

      In C-style languages, everyone writes indentation so that humans can read it easily, and matching brackets so the compiler can read it easily. This is inherently stupid and error prone, since by definition, the same information is expressed in two different ways.

      In Python, the compiler uses the same information as the human to interpret the code.

  14. 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."
  15. Re: Itâ(TM)s because of PiP/conda Numpy, Scip by Anonymous Coward · · Score: 0

    I meant to say âoenumpy, scipy AND PANDASâ

  16. You can skip ad in 5, 4, 3, 2 ... by Anonymous Coward · · Score: 0

    Python is where it's at. You can do anything with it!

    1. Re:You can skip ad in 5, 4, 3, 2 ... by MightyMartian · · Score: 1

      Mind you, you can do anything in Brainfuck too.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
  17. The future may not be good by raymorris · · Score: 2

    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.

    1. Re:The future may not be good by 50000BTU_barbecue · · Score: 1

      In 1965, McDonald's probably served actual food.

      https://www.youtube.com/watch?...

      In 1974 they were still cooking identifiable ingredients with basic kitchen tools.

      I'm hungry.

      --
      Mostly random stuff.
    2. Re:The future may not be good by Anonymous Coward · · Score: 0

      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.

      Now the first time I've heard it, but I call bullshit on that argument - professional programmers have proven again and again that they are unable to create secure programs, too, in whatever language you can come up wit including Ada or - the latest fad - Rust.

    3. Re:The future may not be good by Anonymous Coward · · Score: 0

      There were hamburger stands before McDonald's came along, and many of them probably served better quality food.

      You miss the point that the reason for McDonald's success (and why they were the future of American restaurants) had nothing to do with the food!

      Pretty much every fast food joint you eat at is based on the McD's franchise model.

    4. Re:The future may not be good by phantomfive · · Score: 0

      If you really care about security, I don't think you want to give up types and static checking the way Python does. Therefore, I suggest that from a security perspective, if companies start caring about security, they will not select Python.

      --
      "First they came for the slanderers and i said nothing."
  18. Any headline that ends in a question mark.. by Anonymous Coward · · Score: 0

    https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines oops.

    - anongopher

  19. Script Language by Anonymous Coward · · Score: 0

    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.

    1. Re:Script Language by vtcodger · · Score: 1

      I think that "Python is the future of programming" if it's true at all, is sort of like a century from now, almost everyone on the planet will be able to carry on a rudimentary conversation in one or more of English/Chinese/Arabic and/or Spanish as well as whatever their native language might be. It's not that all, or even most, programming will be done in Python. It's that most everyone who programs at all will be comfortable using Python if they need to.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
  20. From a Beginner Programmer by BeemanIT · · Score: 1

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

  21. Cleaner, more powerful, more open VB. by EnsilZah · · Score: 1

    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)

    1. Re:Cleaner, more powerful, more open VB. by Billly+Gates · · Score: 1

      Not to mention Macs are what the cool kids in college use these days. Python is included by default with MacOSX and now included by default in Visual Studio as well.

  22. Go fork yourself! by fazig · · Score: 3, Interesting

    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.

    1. Re:Go fork yourself! by xvan · · Score: 1

      Python is capable of running multiple threads, and is still awesome for gluing together things.

    2. Re:Go fork yourself! by SurenEnfiajyan · · Score: 1

      Python is capable of running multiple threads

      Yeah, but not simultaneously (in CPython, the most popular interpreter). Actually the more threads are added the more the performance suffers.

    3. Re:Go fork yourself! by Anonymous Coward · · Score: 0

      Python can't run multiple threads *concurrently*.
      Google "Python GAL".

  23. A Quick Way by Anonymous Coward · · Score: 1

    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.

    1. Re:A Quick Way by Anonymous Coward · · Score: 0

      .... just a general purpose language both at present and in the future very easy to use ...

  24. Modest proposal: Tab should lose its ASCII code by DulcetTone · · Score: 0

    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
    1. Re:Modest proposal: Tab should lose its ASCII code by DCFusor · · Score: 0

      Damn, no mod points...^^^^^

      --
      Why guess when you can know? Measure!
    2. Re:Modest proposal: Tab should lose its ASCII code by Anonymous Coward · · Score: 0

      It wouldn't be ascii anymore if you remove tab.
      And also, why complain about tab?
      Why not any of the other useless ascii values, like \f \v or \a?

    3. Re:Modest proposal: Tab should lose its ASCII code by heson · · Score: 1

      This might help
      (setq-default indent-tabs-mode nil)

    4. Re:Modest proposal: Tab should lose its ASCII code by Anonymous Coward · · Score: 0

      why don't you just set up your editor so it produces spaces instead of tabs

    5. Re:Modest proposal: Tab should lose its ASCII code by angel'o'sphere · · Score: 1

      And how exactly would you then print a text document on a traditional line printer?

      The tab "character" as in ASCII code, moves the printer head to the next tabulator position, which can be completely arbitrary, usually it is encoded in the first line of the document as ESC sequences or you _manually_ set them at the printer by moving the hardware tab stops.

      You have no clue padawan ....

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  25. Re:Briefly? No. by Anonymous Coward · · Score: 1

    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.

  26. Not a Modest proposal: Lose Tab its ASCII code by mykepredko · · Score: 4, Informative

    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.

  27. It has a bright future by Anonymous Coward · · Score: 0

    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.

    1. Re: It has a bright future by Anonymous Coward · · Score: 2, Insightful

      Python is the Cobol of Lisps

  28. Single threaded toy language by zm · · Score: 4, Insightful

    cannot be THE future of programming.

    --
    Sig ?
    1. Re:Single threaded toy language by Anonymous Coward · · Score: 0

      It's not even a programming language, its a fu*king glorified scripting language. It's like calling writing DOS batch files, bash scripts, or perl scripts programming. I mean in the end you are writing a routine of instructions for a computer to follow. but you aren't going to write an operating system in python. You will use a real programming language like C/C++ for such a task.

      If you wrote a whole OS in python the damn thing would probably need 16gigs just to boot, never mind actually do anything else useful.

    2. Re:Single threaded toy language by Anonymous Coward · · Score: 0

      Pish. You language snobs.

      There's no measure by which Python is not a full-fledged general-purpose programming language.

      Why do you call it a scripting language? Because it's interpreted? That's not a valid criterion.

    3. Re:Single threaded toy language by Anonymous Coward · · Score: 1

      I'm not a fan of any language that can give runtime errors for common uses, especially in regards to types. All runtime errors should be limited to system calls or the programmer explicitly doing something stupid.

    4. Re:Single threaded toy language by LinuxIsGarbage · · Score: 1

      If you wrote a whole OS in python the damn thing would probably need 16gigs just to boot, never mind actually do anything else useful.

      Sugar UI, the desktop environment for the OLPC project, is a Python environment running on Fedora. It's dreadfully slow, particularly on the OLPC-1's anemic AMD Geode processor.

    5. Re:Single threaded toy language by Anonymous Coward · · Score: 0

      And sugarui is dog slow. I personally own an OLPC from the give one get one program they did.

  29. Re:Briefly? No. by fermion · · Score: 2, Interesting
    I consider Python like Pascal. Some of it's popularity is simply due to the fact that it is used as a teaching tool so a lot of people are familiar with it. It can do a lot, but ultimately what makes it good as a teaching tool makes it not so good for production code.

    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
  30. No, it isn't! by aglider · · Score: 1

    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.
  31. not independent by ooloorie · · Score: 1

    Kim Kardashian probably generates a lot of Python traffic herself with her python boots.

  32. what's the question about actually? by ooloorie · · Score: 1

    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.

  33. People have trouble with it, therefore it's easy? by raymorris · · Score: 1

    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?

  34. Impact by ntropia · · Score: 1

    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.

  35. Re:Briefly? No. by Anonymous Coward · · Score: 0

    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.

  36. Re:Line numbers? Beats indentation, you cucks! by obiwan2u · · Score: 1

    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
  37. Personally my current favorite is Julia by jgfenix · · Score: 1

    I like the design's philosophy a lot.

  38. Is Python the Future of Programming? by Mikkeles · · Score: 1

    At least; I hope not.

    --
    Great minds think alike; fools seldom differ.
  39. Answer = no by Khyber · · Score: 1

    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.
    1. Re:Answer = no by JustNiz · · Score: 1

      What does the OSI have to do with it? You realise there's actually far more programming going on than just internet-based stuff right?

    2. Re:Answer = no by Billly+Gates · · Score: 1

      Network, Datalink, or physical are the bottom 3 layers. I guess there is erlang if you're nuts?

  40. Every programming language has its place by SurenEnfiajyan · · Score: 1

    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.

    1. Re:Every programming language has its place by Anonymous Coward · · Score: 0

      Python, the language chosen by white-space nazies

  41. No, the future has been here by Joviex · · Score: 1

    The future came here a decade ago. If you missed the python bus, think of it like the Fortran or Cobol bus.

  42. Python was 2008 for me by Anonymous Coward · · Score: 0

    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.

  43. It's basically a trendier Perl by Anonymous Coward · · Score: 0

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

  44. Only until... by VeryFluffyBunny · · Score: 1

    ...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.
  45. Of course not. by JustNiz · · Score: 1

    Ask me again when it makes more sense to write a device driver in Python than in C.

  46. 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?

  47. Provided hot-plugging is reliable by tepples · · Score: 1

    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.

    1. Re:Provided hot-plugging is reliable by Anonymous Coward · · Score: 0

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

      Nonsense. I have never seen a PS2, XT, or AT keyboard die because it was "hot-plugged". Maybe if you scoot across a rug to build up static electricity before plugging it in or something you could kill it that way.

    2. Re:Provided hot-plugging is reliable by tepples · · Score: 1

      Sometimes it wasn't the keyboard that died after a hot-plug gone wrong but the keyboard controller on the (more expensive) motherboard.

    3. Re: Provided hot-plugging is reliable by Anonymous Coward · · Score: 0

      Not the keyboard. I got plugged a ps/2 keyboard to a IBM PS/2 in 1992 and noticed the spark just before the computer died abruptly. My boss knew what had happened. He had too many die in the same way (this company had a lot of computers). However, by this time IBM had added a fuse to the motherboard and we just had to replace it. This is not an issue anymore.

  48. Hiring competence is expensive by tepples · · Score: 1

    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.

    1. Re: Hiring competence is expensive by Anonymous Coward · · Score: 0

      Hiring an incompetent admin could become far more expensive when your network gets owned or your Web site starts dribbling PPI and you get hit with a class action lawsuit.

      If you're in a smaller city, the solution is to be open to remote workers.

    2. Re:Hiring competence is expensive by angel'o'sphere · · Score: 1

      Not nitpicking, but if you can afford 100 machines you most likely can afford a competent, especially remote, admin.
      Most tools relevant are open source and free to use commercially anyway.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    3. Re:Hiring competence is expensive by tepples · · Score: 1

      Not nitpicking, but if you can afford 100 machines you most likely can afford a competent, especially remote, admin.

      By "modern provisioning tools", I thought you meant VPS-on-demand services such as AWS EC2, which let a developer provision 100 virtual machines in minutes and then deprovision them an hour later when they're no longer needed. And the cost of hiring is not just what you pay an admin; it's also what you pay to find such an admin in the first place.

      Most tools relevant are open source and free to use commercially anyway.

      Unless you have a heavy investment in server-side applications that are exclusive to Windows Server, which is not "open source and free to use commercially". Nor are things like web fonts or API access, which are licensed per server more than negligibly often.

    4. Re:Hiring competence is expensive by angel'o'sphere · · Score: 1

      I was more thinking about Puppet, Ansible, Chef, Kypernetes ... and containers like Docker.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re: Hiring competence is expensive by LifesABeach · · Score: 1

      Hiring anyone competent is itâ(TM)s own reward

    6. Re: Hiring competence is expensive by Anonymous Coward · · Score: 0

      It doesn't cost a company money to hire an honest and competent employee. Competent people who are honest don't take useless jobs where they are a detriment to the company. Competent people have options.

      Competent employees find more work they can do when they are done with the current task, even if that is just automating/prepping/self training for their next likely task. Competent people find ways to improve the value if their output, lower costs, or lower risks.

      Incompetent people do the opposite. Not out of malice, but, well, incompetence. A competent support tech makes sure an extra power supply is ordered if he uses one. An incompetent one doesn't because they "save" money by not doing so. Or orders fifty of a part to save 2%, not realizing that the spare use is one a year.

    7. Re: Hiring competence is expensive by LifesABeach · · Score: 1

      Poor A/C, and are all hirer's competent as well?

  49. Sure hope not... by Anonymous Coward · · Score: 1

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

  50. Except you called it apples and apples by Anonymous Coward · · Score: 0

    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.

  51. Python for scripting (bash limitations) by Billly+Gates · · Score: 1

    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.

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

    1. Re:Channels that mangle whitespace by gweihir · · Score: 1

      "Anybody competent" does of course include collaborators. Mangling leading whitespace is a pretty good indicator of incompetence.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:Channels that mangle whitespace by Anonymous Coward · · Score: 0

      Then fix the channel. It is broken.

    3. Re:Channels that mangle whitespace by tepples · · Score: 1

      It's not so easy to convince a bureaucracy to fix a broken channel, particularly when the broken channel is run by a sufficiently large business or a K-12 school district.

    4. Re:Channels that mangle whitespace by tepples · · Score: 1

      The collaborators don't always have a chance to choose the channel. If they did, they'd choose a competent channel. Often, the channel is chosen for them by someone far less competent (the Peter Principle).

  53. It IS the future of programming by devloop · · Score: 1

    Either Python or "Donald Trump", Google Trends says so. Either those 2 or "Anal Sex", right behind them.

  54. No by Anonymous Coward · · Score: 0

    Nuff said.

  55. Betteridge by terjeber · · Score: 1

    Are you seriously telling me I am going to be the first to invoke: https://en.wikipedia.org/wiki/...

  56. Hmm... by Anonymous Coward · · Score: 0

    I am sure thereâ(TM)s an adder out there that will best any python ðY

  57. Poll? by Anonymous Coward · · Score: 0

    Why isn't this post a poll? yes or no.

  58. Big, big hint, try dictionaries... by Anonymous Coward · · Score: 0

    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.

  59. Python as a String Holding âPERLsâ(TM) by LifesABeach · · Score: 1

    Consider an interface that combines ChatScript, NLTK, Blender3D, InMoov, and Cure. What could one do with a tool like that?

  60. Why? Just Why? by Anonymous Coward · · Score: 0

    Just why is it so ... well, better than the other cruft? If the future lies in Python, it is a sad future.

  61. Popular != Modern VB. by Anonymous Coward · · Score: 0

    So Python is a modern day BASIC?

    1. Re:Popular != Modern VB. by Anonymous Coward · · Score: 0

      > So Python is a modern day BASIC?

      Yep, it pretty much is. A general-purpose, easy to learn, portable, interpreted programming language.

      A lot of Python fans don't like to hear me say that, but I calls 'em as I sees 'em!

  62. PowerShell is kind on Windows by Anonymous Coward · · Score: 0

    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.

  63. Some sucess! by Anonymous Coward · · Score: 0

    > Google users in America have searched for Python more often than for Kim Kardashian...

    That's some serious damning with faint praise.

  64. Python is a clean language, but by Anonymous Coward · · Score: 0

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

  65. Yes! Python is the best language by Anonymous Coward · · Score: 0

    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?

  66. Re: Briefly? No. by AlanObject · · Score: 1

    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.

  67. rockstar developer by sad_ · · Score: 1

    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.
  68. Sigh by Anonymous Coward · · Score: 0

    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.

  69. Re: Briefly? No. by walllaby · · Score: 1

    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. :)

  70. Get off my lawn Python kids. by kallisti5 · · Score: 1

    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.

    1. Re:Get off my lawn Python kids. by Anonymous Coward · · Score: 0

      Python can be used for scripting, but it is definitely NOT a "scripting language."

  71. Re: Briefly? No. by AlanObject · · Score: 1

    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.

  72. Re:Briefly? No. by Areyoukiddingme · · Score: 1

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

  73. Re:Briefly? No. by Anonymous Coward · · Score: 0

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

  74. Python is the future of Python programming by Anonymous Coward · · Score: 0

    But I'd wait for Python 4. It's supposed to make Python 3 look like QBASIC.