Slashdot Mirror


IEEE Spectrum Declares Python The #1 Programming Language (ieee.org)

An anonymous reader quotes IEEE Spectrum's annual report on the top programming languages: As with all attempts to rank the usage of different languages, we have to rely on various proxies for popularity. In our case, this means having data journalist Nick Diakopoulos mine and combine 12 metrics from 10 carefully chosen online sources to rank 48 languages. But where we really differ from other rankings is that our interactive allows you choose how those metrics are weighted when they are combined, letting you personalize the rankings to your needs. We have a few preset weightings -- a default setting that's designed with the typical Spectrum reader in mind, as well as settings that emphasize emerging languages, what employers are looking for, and what's hot in open source...

Python has continued its upward trajectory from last year and jumped two places to the No. 1 slot, though the top four -- Python, C, Java, and C++ -- all remain very close in popularity. Indeed, in Diakopoulos's analysis of what the underlying metrics have to say about the languages currently in demand by recruiting companies, C comes out ahead of Python by a good margin... Ruby has fallen all the way down to 12th position, but in doing so it has given Apple's Swift the chance to join Google's Go in the Top Ten... Outside the Top Ten, Apple's Objective-C mirrors the ascent of Swift, dropping down to 26th place. However, for the second year in a row, no new languages have entered the rankings. We seem to have entered a period of consolidation in coding as programmers digest the tools created to cater to the explosion of cloud, mobile, and big data applications.

"Speaking of stabilized programming tools and languages," the article concludes, "it's worth noting Fortran's continued presence right in the middle of the rankings (sitting still in 28th place), along with Lisp in 35th place and Cobol hanging in at 40th."

372 comments

  1. I tried Python by QuietLagoon · · Score: 1, Insightful

    The number of spaces preceding a statement determines the scope of that statement? Wow. That seems totally nonsensical to me.

    1. Re:I tried Python by Herkum01 · · Score: 5, Insightful

      After using it, it is eh, not a big deal. You indent the same amount for everything in the block, which you are probably doing most of the time anyways. It is their little cheat around not having block delimiters.

      If you need to a pick a reason to not like Python, this is not it.

    2. Re:I tried Python by Anonymous Coward · · Score: 0

      Agree it doesn't seem right, it's like a language with 1-based array indexing (and there are some around).

    3. Re:I tried Python by Anonymous Coward · · Score: 2, Insightful

      But it causes confusion when cut and pasting. You cannot audo-indent like you can in a { } bounded language, because there is no semantic information from the syntax, only from the spacing.

    4. Re:I tried Python by AlanObject · · Score: 0

      The number of spaces preceding a statement determines the scope of that statement? Wow. That seems totally nonsensical to me.

      You would have had a hard time learning programming back in the day with FORTRAN IV on punched cards. A continuation line had a "-" in column 6 and columns 7-71 were for language statements.

      Also, I never used it but RPG might have been actually dangerous for you.

    5. Re:I tried Python by Anonymous Coward · · Score: 0

      My second language was exactly that: FORTRAN IV.

      There is a reason we moved away from indent-sensitive languages. But I guess every generation has to re-learn the same lessons...

    6. Re:I tried Python by Anonymous Coward · · Score: 0

      Also, I never used it but RPG might have been actually dangerous for you.

      In Soviet Russia, RPG mostly dangerous if traveling to and from Ukraine. -PCP

    7. Re:I tried Python by Anonymous Coward · · Score: 0

      You're an idiot.

      Of what relevance is the strange quirks of a 1961 version of a language from the 50's compared to the most popular language of 2017; a language meant to be simple to pick up and learn. Fortran is a relic from a different time, they didn't know what does and doesn't make sense or what does and doesn't work. Even by the 1970's, still 40 years ago, the evolution of then modern languages from the early days of fortran was huge.

      The only word for you is idiot. You'd find it hard to code a program by ladder logic so I guess that has some relevance to your ability to code BASIC by your logic?

    8. Re:I tried Python by K.+S.+Kyosuke · · Score: 1

      Then maybe you should be copying and pasting syntactic trees instead of sequences of characters? I noticed a long time ago that there's a dualism between Python and Lisp. In presence of rigid formatting rules, syntax and indentation are redundant and one can be inferred from the other. It's just that Python prefers one direction and Lisp the other one, but neither seems strictly superior.

      --
      Ezekiel 23:20
    9. Re:I tried Python by K.+S.+Kyosuke · · Score: 1

      Also, I never used it but RPG might have been actually dangerous for you.

      Only if you're low on HP. Or if you pick the wrong Datacenter Master.

      --
      Ezekiel 23:20
    10. Re:I tried Python by BarbaraHudson · · Score: 2, Interesting
      These surveys are strictly for idiots. For example (to use one of the data sources in the article), information drawn from what recruiting companies say they are looking for are complete garbage, as anyone who has spent much time here knows. Some recruiters are just trolling for new applicants to add to their slushpile, some are adding stuff that's totally irrelevant to the underlying job so that their candidate will look more well-rounded, some are bogus posts to supply HR with practice interviews, some are just posted as a way to be able to say "we looked for expertise in x and y before we hired an H1B (who doesn't know x or y, but it's rarely investigated) ".10 years experience in Java 9 or Windows 10? 5 years experience with Red Hat linux 7.3? We've all seen these shit listings, the same as we've seen the same job suddenly pop up from a dozen different recruiters. It doesn't mean they're looking for 12 people with that experience.

      GIGO still applies.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    11. Re: I tried Python by Anonymous Coward · · Score: 0

      Because 0-based counting is so intuitive.

      It is.

      You see kids in kindergarten count 5 pencils like this: 0... 1... 2... 3... 4

      If I asked kindergarten kids to count the pencils offset from the start of their pile then they would, most definitely, call the second pencil as number 1.

    12. Re:I tried Python by Anonymous Coward · · Score: 0

      When first learning Python, I didn't like this but after about a day, it was fine. In fact now, I don't like using delimiters as they break up the flow and readability of the program and indentation is much more natural.

      You can use one space (or tab) or ten to indent, it's up to you. As Herkum mentioned, it's only within that specific block that matters. So the first if-block can have one space, the second if-block can have four tabs, and the for-loop within those can have 11 spaces and all be totally fine with Python although this would be extremely unpopular with your colleagues.

    13. Re: I tried Python by Anonymous Coward · · Score: 0

      You shouldn't be copy/pasting in the first place. Besides it is not a big deal; you just block shift to the right level of indention.

    14. Re: I tried Python by Anonymous Coward · · Score: 0

      Python uses 0 based indexing aka offset: item 1 starts at (memory) offset 0. If you don't understand why this is practical yiu should not be programming computers because you lack a fundamental understanding of their inner works.

    15. Re:I tried Python by Gojira+Shipi-Taro · · Score: 1

      Apart from the fact that Python is used FAR MORE than Lisp is.

      --
      "Oh my God. This is terrible. This is the end of my Presidency. I'm fucked."; ~ Donald J. Trump
    16. Re: I tried Python by K.+S.+Kyosuke · · Score: 1

      Precisely, that's the argument in favor of tree-based code copy-pasting. It's the more frequently needed of the two.

      --
      Ezekiel 23:20
    17. Re:I tried Python by Anonymous Coward · · Score: 0

      Because 0-based counting is so intuitive. You see kids in kindergarten count 5 pencils like this: 0... 1... 2... 3... 4

      Except, software has nothing to do with kids in the kindergarten. Software works on processors which count from 0. If you cannot grasp that, perhaps you should go back to kindergarten and learn to count again?

    18. Re: I tried Python by K.+S.+Kyosuke · · Score: 1

      You don't need to (nearly as often at least) if you have rich structured editing operations, but most code editor developers haven't bothered with them.

      --
      Ezekiel 23:20
    19. Re:I tried Python by Billly+Gates · · Score: 3, Insightful

      These surveys are strictly for idiots. For example (to use one of the data sources in the article), information drawn from what recruiting companies say they are looking for are complete garbage, as anyone who has spent much time here knows. Some recruiters are just trolling for new applicants to add to their slushpile, some are adding stuff that's totally irrelevant to the underlying job so that their candidate will look more well-rounded, some are bogus posts to supply HR with practice interviews, some are just posted as a way to be able to say "we looked for expertise in x and y before we hired an H1B (who doesn't know x or y, but it's rarely investigated) ".10 years experience in Java 9 or Windows 10? 5 years experience with Red Hat linux 7.3? We've all seen these shit listings, the same as we've seen the same job suddenly pop up from a dozen different recruiters. It doesn't mean they're looking for 12 people with that experience.

      GIGO still applies.

      It still is relevant. As much as WE HATE HR they are the gatekeepers. Actually they are nto the gatekeepers. Taleo is the gatekeeper and SEO in LinkedIn and abunch of software programs are. They do the work so companies can be lazy and not have to do their job.

      If you do not have that experience you will not be interviewed. That is a fact as your score will be below X and the application will be rejected and HR won't even know you applied.

      Part of the problem isn't that they are bogus. It just that HR is incompetent and fall for the salespeople in Taleo who tell them software picks candidates for YOU, not it is there to assist you. Scenario one you need a SAP jr financial analyst assistant who can run reports?

        They ask the IT manager and finance manager. IT manager says yeah it uses SQL Server on the backend etc ... BOOM 5 years of SQL Server administration is now required. HR wants to make sure you know office ... BOOM 5 years Excel macro programming experience required. Now add a shitty HR filter app like Taleo and it generates a job description:
      -5 years SQL Server administration experience
      -3 to 5 years of Excel financial analysis programming in VBA
      - 3 to 5 years of actually doing SAP reports (part of the job that is important)
      - Mentions $15/hr because that is net worth of a college kid in accounting as it is a JR. level assistant.

      Taleo reports none are q ualified. CEO lobbies senator. They important an Indian H1B1 visa who meets these requirements as no American can do the job and whines how could this happen? etc.

      So my guess is some positions do prototyping in python. The HR software now requires 5 years of python coding and you get filtered out if you do not have it even if the position is really a java developer etc.

      Anyway done with rant :-)

    20. Re:I tried Python by BarbaraHudson · · Score: 1

      What does any of that have to do with the fact that the survey is based on bullshit data because recruiters lie?

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    21. Re:I tried Python by sg_oneill · · Score: 1

      You would have had a hard time learning programming back in the day with FORTRAN IV on punched cards. A continuation line had a "-" in column 6 and columns 7-71 were for language statements.

      Oh god, Cobol had that sort of thing as well. First job, back in the early 90s maintaining shitty old mainframe cobol on a Vax. Various positions in the line had different meanings,such as line numbwea, labels, etc and depending on which section of the code you are in (storage division, procedure division, i/o sections etc) those indents would changed.

      it was a fucking nightmare. Granted in the 1950s people where just making shit up as they went because "computer science" was really the sole domain of british code breakers at that point, so "compiler theory" wasnt yet a thing, but man , gnarly stuff to deal with.

      Pythons use of white space? Perfectly logical and quite intuitive. People who complain about it dont know what they are talking about, imho

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    22. Re:I tried Python by Luke+has+no+name · · Score: 2

      I love Python. It's this generation's perl: Ubiquitous installation on nix systems, and plenty of libraries, and even easier to learn.

      BUT whitespace significance does cause issues with reformatting code, or managing long lines (I know you can) and in general, I kind of (kind of) wish it had a scope delimiter.

    23. Re:I tried Python by Billly+Gates · · Score: 2

      What does any of that have to do with the fact that the survey is based on bullshit data because recruiters lie?

      It's not that recruiters lie Barbara. I believe what it is that Python is used heavily for prototyping and scripting even if it is not part of the main job. When they hear a term that means "+5 years experience" as a requirement. Many are very serious about a lack of qualified applicants and are not making it up for fake job postings.

      So if let's say one job requires Python then it is counted. Then another job required java but also some prototyping in python then the survey counts it twice. For sysadmins it is counted 3 times, and financial anaylsts use Python for financial reporting so it is counted again etc.

      This adds to inflation to the relative number of real python specific jobs vs someone who MAY use python like a financial guru.

    24. Re:I tried Python by gweihir · · Score: 1

      You focusing on a cosmetic detail? Wow, that means you really had an in-dept look and give a qualified opinion!

      If you cannot deal with such a minor quirk (and yes, it is somewhat quirky), then you should probably stay away from coding altogether.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    25. Re:I tried Python by gweihir · · Score: 1

      Indeed. It does take a bit to get used to, but not excessively so and I do like that it makes code compacter vertically.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    26. Re:I tried Python by gweihir · · Score: 1

      Get an editor that can indent and un-indent blocks and you are fine.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    27. Re:I tried Python by Anonymous Coward · · Score: 0

      99% of the time, long line management in Python is just a matter of a well-placed pair of parentheses (not that different from well-placed brackets in other languages).

      Whitespace-delimited scoping is one of the reasons Python has become so popular. It just visually looks cleaner.

      Credentials: I've spent 25 years using other great languages and only a few using Python. (And that one year with fucking Ruby.)

    28. Re:I tried Python by fahrbot-bot · · Score: 1

      The number of spaces preceding a statement determines the scope of that statement? Wow. That seems totally nonsensical to me.

      And there's absolutely no reason for it except hubris by the language designer.

      --
      It must have been something you assimilated. . . .
    29. Re:I tried Python by jhol13 · · Score: 1

      I hate the whitespace, but can live with it.

      The biggest problem with Python is its incompatibility with itself. It is really annoying that RedHat and Ubuntu need different scripts. The situation is so bad as to need "venv" hack-around.

      When Bash (much better than most people think) is not enough, I usually do it in Perl.

    30. Re: I tried Python by Anonymous Coward · · Score: 0

      You start by saying: I have no pencils, 1 pencil, 2 pencils, etc. It's a very natural way to count.

    31. Re:I tried Python by Anonymous Coward · · Score: 0

      Python is just the same as any other block structured language before it. It is certainly better than Brainfuck, BASIC or Javascript, but that doesn't make it a particularly good language.

    32. Re:I tried Python by jimtheowl · · Score: 2

      What kindergarten kids find intuitive is irrelevant.

      Even for educated adults, intuition is does not necessarily correspond to anything useful.

      A body in motion at a constant velocity will remain in motion in a straight line unless acted upon by an outside force is not intuitive to most people. Yet it is an undeniable fact and man would not have gone to the moon ignoring it.

    33. Re:I tried Python by BarbaraHudson · · Score: 1

      Again, what does any of that have to do with the fact that the methodology of the survey is absolute crap? Show me even ONE such survey that uses a valid methodology. Just one. Web surveys are cheap and easy to do for a reason - they don't require any skill in designing the study to make sure that the data is representative of the population studied. Why? Because, by their very nature, it's impossible to avoid self-selection bias, or any other selection bias. A proper study would require doing actual research, starting with determining how you're going to collect the data in the field so that it's representative of the population being studied.

      That would take a lot more work. And most businesses wouldn't cooperate because there's no upside for them, just a lot of busywork as a distraction.

      I remember one such study in another field that made a lot of outlandish claims. Turns out that all the respondents were "selected" from a few blog posts that almost nobody would see. The study authors justified this sloppiness because their grant money didn't include enough money to do any actual field work, or try to contact a group more representative of the population under study. If you're going to study violence against a certain minority group, you don't select only people who belong to a forum on violence against that group, and then try to generalize it to say that ALL members of that minority group experience violence of the same kind and at the same rates. And yet that's exactly what they did. Your tax money at work ...

      Imagine if we did the same thing with data pulled from a support group for survivors of church pedophilia, and then tried to use that to claim "100% of the people who attend any church are victims of pedophiles."

      Same thing with app developers. If you get people responding to a public request asking "how much money did you make last year from app development", do you really think the respondents would be in any way representative? Or if you asked for responses to "did you have any problems on your last hospital visit" on the web, that people who didn't have problems would respond at the same rate as those who did? But that's much easier than doing exit interviews with patients, which would yield far more accurate data because there would be no self-selection bias. And if you did it at multiple hospitals, it would be more likely to be a decent representation.

      Or doing a study of MENSA members and claiming it's representative of all geniuses, when 99.7% of all geniuses aren't so insecure (and stupid) as to have to pay $60 a year for validation.

      tl;rd - web "studies" are bullshit for lazy people who can't be arsed to do it right and are dishonest about the validity of their results.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    34. Re:I tried Python by goose-incarnated · · Score: 1

      After using it, it is eh, not a big deal. You indent the same amount for everything in the block, which you are probably doing most of the time anyways. It is their little cheat around not having block delimiters.

      You think the ':' is not the delimiter for the start of a block?

      They have block start delimiters, in some cases (empty blocks) there is a block end delimiter as well. Then you also have to use whitespace to signify the block as well.

      Compare to sane languages, which use a block start/block end pair and no exceptions to that rule. Python is crap not because of whitespace, but because of the many many exceptions to a general rule.

      The pythonic way boils down to "There is a general rule, and here is a list of exceptions to that rule", whereas other programming languages say "here's the general rule, no exceptions".

      Python is crap because of this approach - the stupidity of whitespace-as-indentation is just a symptom of the crappiness, not the cause of it.

      Having no general rules and lots of exceptions results in a higher cognitive load just for reading code. In fact, the whitespace rule demonstrates this perfectly - in a language with a general rule for block delimiting you can write a program that takes source code mangled in some way and re-indents it. In python you can't do this with mangled sources, because the indentation can only be determined by a human, and not automatically determined by a set of rules.

      No matter which way you spin it, I prefer source code in which the code blocks can be discovered via automated means rather than asking the original coder where the code block starts and where it ends. Automated detection of code blocks means less cognitive effort on my part.

      Python is attractive to beginners because they don't know what they are doing.

      --
      I'm a minority race. Save your vitriol for white people.
    35. Re:I tried Python by Anonymous Coward · · Score: 1

      I agree with this. Initially I thought that the whitespace thing would make the language completely unusable, but after trying it it turned out to not be that big of a deal.
      As long as odd number of spaces are treated as a syntactic error you won't have problems with it.

      The thing that made me not want to use python for anything serious again was the ducktyping.
      My script worked perfectly fine until the text parser encountered non-ascii characters and decided to change type of a string instead of throwing an exception at the place.
      Worked just fine for a while since most functions didn't care about the type, except one a long way down the line.
      Pretty much impossible to track down where the input came from and how it was passed on through the script.
      As atrocious as C99 string handling is it would still have been easier to fix the problem in it than to try to fix it in python.

    36. Re:I tried Python by Hognoxious · · Score: 1

      The whole point of high level languages is that they're more convenient for the programmer. Fuck the CPU's opinion, it's a tool; I don't ask a hammer which hand I should hold it in. You should be able to define an array that's indexed from -23 to +666 if that maps more neatly to the problem domain.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    37. Re:I tried Python by TheRaven64 · · Score: 5, Informative

      Semantic whitespace isn't a terrible idea, but like almost everything in Python it's let down by the implementation. Tabs are a variable-width character, spaces are not. Mixing the two in an environment that treats the amount of whitespace as having semantic importance is a recipe for disaster. Python treats a tab as a fixed number of spaces and so the indent that your editor displays is not necessarily the same as what the interpreter picks (I've had to fix a bug in someone else's Python resulting from this[1]). The only sane thing to do is for the interpreter to reject any inputs that mix tabs and spaces at the start of a line as invalid input. I believe that Python now has an option to do that, but it took 20 years to add and it's still an option. This pretty much sums up Python: the obviously sane thing takes 20 years to add to the language and is then optional.

      That said, it doesn't bother me nearly as much as a language claiming to support functional programming but not doing tail-call optimisation (1000 recursive calls and your program dies) or else clauses on while loops (another bug in someone else's code that I had to fix was caused by the fact that there are two plausibly sane meanings for this. Python chose the third and the developer assumed they chose one of the others).

      [1] My irrational hatred of Python is largely caused by the fact that every time I am given the release version of a Python program I end up finding a bug that I have to fix before I can use it for its intended purpose. No other language manages to be quite this reliable in allowing people to ship completely broken crap that they believe to be working.

      --
      I am TheRaven on Soylent News
    38. Re: I tried Python by orlanz · · Score: 1

      Can you expand on this? First time I am hearing about incompatibility.

    39. Re:I tried Python by TheRaven64 · · Score: 4, Informative

      There are a couple of reasons 0-based indexing makes sense. The first only really matters in low-level languages: the indexes represent the offset from the array. The address of array X and index 0 into array X are the same. The second relates to concatenating arrays. The place that you insert into the first array is the length of the array. This idiom crops up sufficiently often that zero-based indexing saves a surprising number of +1 calculations in a program - it's very common for programmers to accidentally clobber the last element in an array in languages that index from 1. Mathematics understands that cardinals and ordinals are different, but programmers often forget...

      --
      I am TheRaven on Soylent News
    40. Re:I tried Python by dbIII · · Score: 1

      If you need to a pick a reason to not like Python, this is not it.

      It's a reason, just not one you consider as important as the other person does.
      When I first heard of it using whitespace to denote meaning I thought the idea was stupid, but the implementation made sense and rendered the idea something other than stupid.

    41. Re: I tried Python by Hognoxious · · Score: 1

      You shouldn't be copy/pasting in the first place.

      Correct.

      If you find a useful snippet that does what you want you should first write it out with a crayon and then rekey it manually. Because the guru says so.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    42. Re:I tried Python by angel'o'sphere · · Score: 0

      Programming languages that start counting with 1 simply place the address of the array X one byte/word lower, problem solved. Erm ... there was no problem. And there is no extra + 1 if you concatanate.

      Bottom line 0 indexing in C comes from the fact that C was designed as a portable assembler, and from a assembler programmer point of view the first index is zero, the highest is all bits 1, and the next index is 0 again, which sets the zero flags and epual flag and if available the plus flag, on that you do react for incrementing a base register if needed.

      So, you argue if your C code uses 0 as first index, indexing and incrementing the index register maps more easy to assembly languages.

      For humans starting with 0 is a pain, if they don't have that background.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    43. Re:I tried Python by Hognoxious · · Score: 1

      A continuation line had a "-" in column 6 and columns 7-71 were for language statements.

      That's nothing to do with indicating scope.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    44. Re:I tried Python by Hognoxious · · Score: 1

      Python is just the same as any other block structured language before it.

      Except that all the others have their major structural elements visible.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    45. Re:I tried Python by rfengineer · · Score: 0

      If you look at the survey data, the difference between, Python, C, and Java rankings were statistically insignificant. A very small amount of measurement noise could have placed any of these three in the number one position. In fact, C++ could have made the number one slot as well. One has to get to C#, R, and Javascript to begin to see any meaningful spread. Bottom line, I would get worked up about this list.

    46. Re: I tried Python by Anonymous Coward · · Score: 0

      Not a big deal? Obviously you have never been in the situation where someone elses code could really help, only to spend just as much time fixing the damn thing.

      VIsually it is aweful.

      Cleaning python code is problematic

      Fsck it. Use something else. Anything else. Perl is a better option.

      I have used both in corporate projects where time and efficiency were required. After the python one I concluded that pythons best use is to call a program written in another language.

    47. Re: I tried Python by Anonymous Coward · · Score: 0

      COBOL using positional syntax = bad.

      Python using positional syntax = good.

      Got it.

    48. Re:I tried Python by Anonymous Coward · · Score: 0

      So having curly braces to declare for the actual scope and then having to put indentation in to make it readable makes more sense? Why not just remove the unnecessary curly braces and use the indentation that was 'voluntarily' entered in by the programmer? If you really think about it, curly brace style languages make less sense.

    49. Re: I tried Python by cyber-vandal · · Score: 1

      your a fucking idiot

      Ironic, no?

    50. Re:I tried Python by Anonymous Coward · · Score: 1

      Semantic whitespace is an abomination. It's not just that tabs are variable width, it's that you're literally hiding code in the white space. It's not where you can see it and god help you if something goes wrong where the white space gets messed up.

      The only acceptable uses for white space are as a separator between elements and as something that makes it easier for humans to read. That's it. Having it be a part of the code where messing it up or changing it screws up the program is the kind of thing that incompetent programmers think is a great idea.

      Python itself is a crappy language in general that seems to be getting worse. The decisions they made when designing the language can be WTF and differ from most other languages with little or no reason. I was shocked when I learned that the language has been around so long as this is usually the kind of crap that millenials force on us. Seriously, the amount of hacking you have to do in order to print just a part of a line without the line feed is ridiculous. Print should print part of a line unless given a line feed or there should be a separate print that includes it. Having one print that automatically decides to go on to the next line is ridiculous.

    51. Re:I tried Python by Anonymous Coward · · Score: 0

      It's becoming popular because they're teaching it in intro classes. And they're teaching it in intro classes because it's becoming popular.

      The language can get serious stuff done, but it's pretty bad. Looking cleaner is for OCD pricks that don't know how to code. I've messed with Python in the past and it's a huge mess. The unhelpful error messages, hiding semantics in white space, the magic that goes on in the background that can be a pain to override.

      People can get serious stuff done with it, but you can say that about virtually any language. Python goes out of it's way to do things in weird ways that don't make any sense and aren't similar to what goes on in other languages.

      To make matters worse, it's not improving, it's actually getting worse. Just look at the procedure for printing partial lines in current versions of the language versus the 2.x versions.

    52. Re: I tried Python by aliquis · · Score: 1

      I wouldn't even know what you meant.

      The first position is the first. Not the "nonest."

      There's four letter in okay and the first one is an o.

    53. Re: I tried Python by Anonymous Coward · · Score: 0

      RPGs are dangerous for everyone.

    54. Re:I tried Python by Anonymous Coward · · Score: 0

      I thought the same when I first tried Python back in early 2000. In the end it was a non-issue after a couple of days: the indentation isn't much different to what I do when writing readable formatted code in other languages, except it's mandated by the language. But hey, so is having to do braces (and all the bracing wars that induces), or the quaint idea of typing begin/end.

      It's interesting watching people converting from other languages to Python. Most either don't think twice about the indentation, until someone mentions it, or they have a brief moment of uncertainty followed by it quickly becoming a non-issue.

    55. Re:I tried Python by HiThere · · Score: 1

      Fortunately it's not just the number of initial spaces, the number of initial tabs works just as well. Just don't try to mix the two approaches. (I quite strongly prefer tabs.)

      That said, I still prefer explicit block grouping in the C style ({}). But Java has rather proven that this can be done in a manner much worse than Pythons indentation level approach...and I want to indent my code anyway. (OTOH, I also strongly prefer braces over more verbose forms. My ideal loop format is:
      ...code
      ...loop start
      ...{..loop code
      ......loop code
      ......etc.
      ...}

      replace '.'s by ' 's. For some reason slashcode doesn't like preformatted computer code.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    56. Re: I tried Python by Anonymous Coward · · Score: 0

      The whole point of high level languages is that they're more convenient for the programmer. Fuck the CPU's opinion, it's a tool; I don't ask a hammer which hand I should hold it in. You should be able to define an array that's indexed from -23 to +666 if that maps more neatly to the problem domain.

      You can actually do that, if you want.

      But you know why people don't index their arrays from -23, or 1?

      It is because they understand why 0 indexing makes sense.

    57. Re: I tried Python by Anonymous Coward · · Score: 0

      I wouldn't even know what you meant.
      The first position is the first. Not the "nonest."
      There's four letter in okay and the first one is an o.

      Let me guess. You didn't go to university, because they don't teach anything important, you already know all you need to know?

    58. Re: I tried Python by Anonymous Coward · · Score: 0

      No they wouldn't. 20 would count from 1 like normally because they don't know what "offset" means, 3 would do nothing because they don't know what "offset" means and one would cry because he doesn't know what "offset" means and thinks that means he's stupid.

      You seem to be proving more and more how utterly incapable your brain is off understanding simple concepts. And trying to drag kindergarten kids down to your level. Please stop. Just stop.

      If you're smarter than these kids then try figuring out why he all prefer to use offset counting.

    59. Re:I tried Python by Anonymous Coward · · Score: 0

      Bottom line 0 indexing in C comes from the fact that C was designed as a portable assembler

      Read anything from Thompson and Ritchie about the history of C, and you'll find that it was designed as neither portable nor an assembler. It was designed as a high-level language with minimal abstraction, for speed and efficiency of both compilation and execution.

    60. Re: I tried Python by Hognoxious · · Score: 1

      If you're smarter than these kids then try figuring out why he all prefer

      No girls in the class?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    61. Re: I tried Python by Anonymous Coward · · Score: 0

      I prefer carving into stone tablets.

    62. Re: I tried Python by Hognoxious · · Score: 1

      But you know why people don't index their arrays from -23, or 1?

      Except they do. Because I've done it myself.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    63. Re: I tried Python by J.+T.+MacLeod · · Score: 1

      Significant whitespace != Positional syntax

    64. Re:I tried Python by Anonymous Coward · · Score: 0

      No brace means one or two lines less per block, which means more code per page. Not that idiotic.

    65. Re: I tried Python by Anonymous Coward · · Score: 0

      Python is totally gonna solve the global page shortage crisis.

    66. Re:I tried Python by Pseudonym · · Score: 1

      I fully understand why, of all the actual painful things about Python, many Slashdotters seem to think that this is the most objectionable thing in the language. I think it's because people who make this complaint have never had to actually use Python (or should I say "fight Python") in a serious project.

      It could be implemented better, sure. See Haskell for details. But this is one of the least worst things about Python.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    67. Re: I tried Python by Anonymous Coward · · Score: 0

      My irrational hatred of Python is largely caused by the fact that every time I am given the release version of a Python program I end up finding a bug that I have to fix before I can use it for its intended purpose.

    68. Re: I tried Python by aliquis · · Score: 1

      I do have a bachelor degree in computing science or whatever it would be called in English.

    69. Re: I tried Python by Anonymous Coward · · Score: 0

      >> Because 0-based counting is so intuitive.
      > It is.

      Nope. Counting in an ordinal fashion, you naturally start with 1.

      It's a pet peeve of mine when people say "programmers count starting from zero." In fact the issue is that counting is different from indexing. Arrays in C are zero-indexed, since the index is actually an offset from the base address, not an ordinal number.

      Saying "array element [0]" makes a certain amount of sense. Calling it the "zeroth element" is just silly.
       

    70. Re:I tried Python by Pig+Hogger · · Score: 1

      The number of spaces preceding a statement determines the scope of that statement? Wow. That seems totally nonsensical to me.

      Of course it must feel “nonsensical” when you are used to a language whose scope is determined by characters who can be rearranged to remove all sense of cohesion

      At least, the significan whitespace enforces a readability standard that is, oddly enough, very similar to what other languages readability “best practices” dictate (but are not enforced at all)

    71. Re:I tried Python by LesFerg · · Score: 2

      With a good code editor you can configure display of whitespace characters. I usually have tab characters visible, tho only a slight shade lighter than the background color, even when using C#, as it shows the outline of the code blocks that way.
      Personally I don't recall having problems using tabs in my code, when copying and pasting etc, and it is a few years now since I last coded in Python, but I didn't have much of a problem with it then.

      --
      If I had a DeLorean... I would probably only drive it from time to time.
    72. Re:I tried Python by Pig+Hogger · · Score: 1

      I hope you get your kicks chasing memory leaks and buffer overflows

    73. Re:I tried Python by Pig+Hogger · · Score: 1

      Love the butthurt in memory leak chasers

    74. Re: I tried Python by LesFerg · · Score: 1

      The last few Python based applications I have installed have suggested installing venv and running the app in its own little kingdom, because nobody can distribute Python scripts with any kind of reliance on versions of Python and versions of library modules that may be installed.
      It seems to be an in-joke with Python developers and users alike, to break backwards compatibility when possible.

      --
      If I had a DeLorean... I would probably only drive it from time to time.
    75. Re: I tried Python by Pseudonym · · Score: 1

      Every line of code should be in its own method. Instead of cutting and pasting, just change your direct injection config. What could be simpler!

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    76. Re:I tried Python by Pseudonym · · Score: 1

      Nice try, but Modern C++ has fixed that in the latest standard. All they have to do for the next standard fix all the bugs introduced in the latest standard, and we should be good to go.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    77. Re:I tried Python by Pseudonym · · Score: 1

      As much as I think this arguing over whitespace misses the point, I'm pretty sure that IEEE Spectrum didn't have "ergonomics on 80x24 serial terminals" as one of their criteria.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    78. Re:I tried Python by Pseudonym · · Score: 1

      Python is just the same as any other block structured language before it.

      I'm pretty sure that Python is the first language to attempt "everything is an object" with the Simula object model (as opposed to the Smalltalk object model).

      That makes it great for managers but bad for programmers.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    79. Re:I tried Python by Pseudonym · · Score: 1

      Because 0-based counting is so intuitive. You see kids in kindergarten count 5 pencils like this: 0... 1... 2... 3... 4

      I just counted how many elephants I have. It turns out to be zero.

      Counting starts at zero. Think of a state machine, where the start state is zero. The act of counting an item transitions to another state. Kindergarten kids don't call out the states, they call out the transitions.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    80. Re: I tried Python by Anonymous Coward · · Score: 0

      But if you use it, your code will be more organized..

    81. Re:I tried Python by Anonymous Coward · · Score: 0

      It was designed as a high-level language with minimal abstraction

      That's the same thing as a portable assembler. When you start adding more abstract concepts like strings, objects and dictionaries it becomes a very high level language.

    82. Re: I tried Python by Anonymous Coward · · Score: 0

      You can have memory leaks in python.

    83. Re:I tried Python by Anonymous Coward · · Score: 0

      Assemblers are by definition low-level languages. They are tied to a specific machine architecture, so pretty much by definition they are not portable.

      What makes C anything like an assembler? Pointers? Help me out here, because having programmed in C and several assembly languages, they have almost nothing in common.

    84. Re:I tried Python by Anonymous Coward · · Score: 0

      I always took it to mean, "good enough to use instead of assembly," i.e. fast enough and with enough low-level control to substitute for assembly in most cases.

    85. Re:I tried Python by Anonymous Coward · · Score: 0
    86. Re:I tried Python by phantomfive · · Score: 1

      That said, it doesn't bother me nearly as much as a language claiming to support functional programming but not doing tail-call optimisation (1000 recursive calls and your program dies) or else clauses on while loops (another bug in someone else's code that I had to fix was caused by the fact that there are two plausibly sane meanings for this. Python chose the third and the developer assumed they chose one of the others).

      FYI the creator of Python doesn't like functional programming. He just added some things in there because people complained.

      --
      "First they came for the slanderers and i said nothing."
    87. Re: I tried Python by Anonymous Coward · · Score: 0

      Rampant memory leaks were a C++ thing. In 10 years working with C, ploughing through tons of garbage code, I've never seen a single memory leak. Some memory corruption and lots of weak spots blindly trusting data, though.

      Personally, I've only encountered leaks in garbage collected languages where everything is an object and you need a lawyer to write the code for you so that an object will be freed when it clearly isn't referenced anymore.

    88. Re:I tried Python by shutdown+-p+now · · Score: 1

      Mixing tabs and spaces in a single source file has been a syntax error since Python 3.0. That has been released 9 years ago.

      And no, it's not an option.

    89. Re: I tried Python by toddestan · · Score: 2

      It's basically DLL hell all over again, where some application/script needs a certain version of a library, which requires a certain version of Python, and you have another application/script that needs a newer version of Python which that library won't work with, and needs a certain version of some other library, which breaks some of application/script, and so on. If you're on Windows then you may also run into 32bit/64bit issues (like for example, if you want to use Python in Matlab, then you need 64-bit, but something else still only works with 32-bit... luckily this seems to be mostly a Windows issue). Then there's the whole Python 2.x/3.x divide, which is a gigantic clusterfuck.

      Because of this, most places seem to standardize on a certain version and set of libraries and versions. These tend to be old already, and since new code is being written against them it only makes it harder to move from them. Huge amounts of code is still being written for Python 2.x despite Python 3.x coming out in 2008 and Python 2.x's EOL coming up in a few years.

      The solution seems to be virtualenv, where you can set up multiple versions of Python, complete with different libraries, and switch between these environments easily. Which actually isn't that different from how Microsoft solved the DLL hell issue.

    90. Re:I tried Python by KingBenny · · Score: 1

      hm , i was in dubio since i never touched it ... i always thought it was a scripting language, not an actual programming language (which would make it too slow for certain types of applications unless you're the neo-k-lock guy solving it the microsoft way going o thats cool, for the next update all you need to do is ass 4gb of ram and its fine, it will only use three of that, you have plenty of room if you dont boot up edge or mediaplayer) but its "somewhere in the middle?" i tend to believe these people here most of the time so its like ... after compilation 'somewhat' faster but not quite ? A language without brackets ...? sounds like a hurdle to me but probably not that hard to get used to.I just wonder is there any difference in the programming since its all towards clasic von neumann / turing architecture ? statements conditions iterations jumps constants and variables ... input/output i read a lot about it on forums when i go looking for shell script solution like "use python" but personally i never ran into anything standard linux shell scripting couldnt handle (its not like im pro ofcourse, just hobbyist dabbler) which brings me back to : since the shell script comes with "the shell" (lol) isnt python actually slower ? maybe not noticeable on modern machines but as a matter of principle and program-beauty ? Fact that theres still not one lingo to rule them all is illogical (since frankly if you look at it there can only be one system that is most efficient, the rest is a matter of taste, do you take your coffeer with sugar or cream ?) but no more surprising than every phone having its own charger, thats sales department and my-phone-is-bigger-than-yours boy thinking he's smart if i ever find one reason to actually use it ... maybe i'll try it .. i have a vocore too, it runs shell scripts lol ... i suppose a raspberry pi does too so since you're already limited in memory i really dont see why using python would be a better (i didnt say easier) solution than trying to "hack" it with what you got. You can go a serious distance using nothing but standard commands really but i dont know enough about it, maybe python comes with directx libraries and you can wrtie the next battlifield in it and its not just scripting-for-automation so i dont wanna elaborate (yes, this is me not elaborating) but i guess i never heard about "halfway-compiled" before so thanks slashdot :D ... always good to have a synapse used before it goes into a state of decomposing

      --
      Free speech was meant to be free for all... how can anyone grow up in a nanny state ?
    91. Re:I tried Python by OfMiceAndMenus · · Score: 1

      Equally, not wanting to put curly braces in your code is the dumbest possible reason to use *whitespace* of all things to delimit scope.

      Grow up. Real programming languages use braces.

  2. Ugh. by Anonymous Coward · · Score: 1

    While I can rant on the whole whitespace thing like everyone else I'd rather take a moment to rant on a language that:

        * Is dynamically typed. Is this useful? Sometimes. Should it be the default. Not really, IMHO. I like my types.
        * A misspelling on the LHS of an '=' operator goes unnoticed? This snake sucks.
        * There are __TOO__ __MANY__ __UNDERSCORES__. How about more proper namespacing?
        * It's a scripting language. Get a grip folks. It's no different under the covers than any other imperative scripting language.

    1. Re:Ugh. by 0100010001010011 · · Score: 3, Insightful

      * It's a scripting language.

      And Michaelangelo just had a brush.

      Lets compete to complete the average task in most offices. You do it in Assembly, I'll do it in Python and we'll see who is done first and gets the most work done in a year.

      It's a massive leg up from VBA and just Excel equations while being as easy as BASIC to learn.

    2. Re:Ugh. by lucm · · Score: 1

      A misspelling on the LHS of an '=' operator goes unnoticed?

      That's exactly why it's best to put values on the LHS when you do a compare in Python; it catches bad variables as well as using = instead of ==.

      Of course if it's two variables then it's not as bullet proof but it's still a good approach.

      --
      lucm, indeed.
    3. Re:Ugh. by lucm · · Score: 1

      It's a massive leg up from VBA

      Not sure about that. VBA has switch statements (case). Python has "if'.

      --
      lucm, indeed.
    4. Re:Ugh. by K.+S.+Kyosuke · · Score: 1

      And it also has first class functions and callable objects which often nicely replace them in proper coding styles. Your VBA switches aren't even modular or extensible. And whenever you feel like such a low-level construct as a switch is appropriate, at least you get reminded that you have to weigh the perception of your need for a switch against its clunkiness in a non-machine-level language.

      --
      Ezekiel 23:20
    5. Re:Ugh. by K.+S.+Kyosuke · · Score: 1

      Python seems to have made a major mistake when it didn't adopt Scheme/Lua-style local variable bindings. That would have nicely solved the misspelling problem.

      --
      Ezekiel 23:20
    6. Re: Ugh. by Zero__Kelvin · · Score: 0

      It is not a scripting language. You should probably learn what Python is, how it works, what its capabilities are, and have some actual experience with it before you decide if you should criticize it.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    7. Re:Ugh. by lucm · · Score: 1

      No. Just plain no.

      The switch statement is a valid construct present in many languages that also have first class functions (such as JavaScript or PHP). And if you think that functions are a less clunky way of doing something that in other languages can be done with a switch, I can only hope I'll never have to maintain your code.

      --
      lucm, indeed.
    8. Re:Ugh. by BarbaraHudson · · Score: 1

      * It's a scripting language.

      And Michaelangelo just had a brush.

      Lets compete to complete the average task in most offices. You do it in Assembly, I'll do it in Python and we'll see who is done first and gets the most work done in a year.

      It's a massive leg up from VBA and just Excel equations while being as easy as BASIC to learn.

      Kind of off-topic. Most offices don't have a bullpen of programmers. Selection bias much?

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    9. Re:Ugh. by K.+S.+Kyosuke · · Score: 1

      They're a less clunky way of doing what you're more likely to do in the non-machine-oriented language in question. If the thing you're trying to do starts looking like a huge switch in Python, you're most likely writing the wrong thing and *I* hope I'll never have to maintain *your* code. In fact, whole successful languages were actually based on avoiding the conditional. And a *small* switch is perfectly replaceable with Python's ifs, that's what elif is essentially for. Just because you *can* do something with a switch is usually not a sufficient reason to do so, anyway.

      --
      Ezekiel 23:20
    10. Re:Ugh. by Anonymous Coward · · Score: 0

      Python seems to have made a major mistake when it didn't adopt Scheme/Lua-style local variable bindings. That would have nicely solved the misspelling problem.

      But it wouldn't be nice. It'd be verbose.


      local foo = 20 # lua
      foo = 20 # python is more concise

    11. Re:Ugh. by ShanghaiBill · · Score: 1

      Most offices don't have a bullpen of programmers.

      Many offices have people writing Excel macros, Quickbooks plug-ins, VBA scripts, and web forms. That is programming, even if programming isn't their main job.

      Python has a gentle learning curve. It is a good language for beginners.

    12. Re: Ugh. by K.+S.+Kyosuke · · Score: 1

      And it would make the scope immediately obvious. It's the most concise solution that is actually a solution and not a denial of the scoping problem.

      --
      Ezekiel 23:20
    13. Re: Ugh. by K.+S.+Kyosuke · · Score: 1

      What is "most", really? There is a long tail of code that gets executed very infrequently. What you perceive as your needs is an outlier.

      --
      Ezekiel 23:20
    14. Re: Ugh. by ShanghaiBill · · Score: 0

      It is not a scripting language.

      Scripting languages are:
      1. Interpreted
      2. Run directly from source
      3. Tend to be dynamically typed
      4. Can often be embedded in applications

      Python is 4 for 4. It is a scripting language ... and there is nothing wrong with that.

      Disclaimer: I spent my morning writing Python scripts for FreeCAD.

    15. Re:Ugh. by BarbaraHudson · · Score: 1

      Many is not most. And in this study, they're classifying HTML as a programming language. Seriously (yes, I read the article. Yes, I know it's bad form on slashdot). The study kind of sucks, same as all such studies. Have you ever seen a valid one?

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    16. Re:Ugh. by 0100010001010011 · · Score: 1

      I don't understand how so many Slashdotters don't see that there is 'programming' outside of doing programming full time. It's like claiming that casual phone gamers don't count as gamers.

      My boss and his boss's boss don't care how I get a job done as long as it gets done. Sometimes it was as simple as removing duplicate lines from an excel file. I've worked with people that did it by hand. We had a set of VBA scripts to do 1 & 2D linear interpolation because we did it a lot.

      Some of our engineering apps were just buttons in Excel to run some predefined macros on a set of data from the test cells. We could have done it in C. Spent months prematurely optimizing it. Bringing in actual CS majors to do the whole thing. But the VBA worked, was fast enough and tested by the guy with the PhD in Engineering that developed the equations.

    17. Re:Ugh. by 0100010001010011 · · Score: 1

      Most offices don't have a bullpen of programmers.

      Ding ding ding. You get it. We don't have a bullpen of programmers to throw at every problem and develop a program in C. We have Mechanical, Electrical, Industrial, Aerospace engineers that know engineering and maybe VBA, probably Matlab and now more often than not Python.

      We have Marketing, HR, and PR majors that are given a task that they're doing over and over again and knocking out a script to automate some TPS reports that used to take them a day to generate. Aggregating data from some excel spreadsheet to another excel spreadsheet.

      Python is to the point where the non-programmers can benefit from code.

    18. Re: Ugh. by Anonymous Coward · · Score: 0

      Lua is moronic regarding scopes -- the default scope is global, whereas the default scope is local for Python. When 99.9% of your function/method variables are local, it's best to make your default scope local, like Python.

    19. Re:Ugh. by Anonymous Coward · · Score: 0

      Don't forget the great Arduino programming language.
      Who are the IEEE numb skulls behind this list?

      But yes, I would rate Python as a programming language right alongside HTML and Arduino.

      Long Live C.

    20. Re:Ugh. by phantomfive · · Score: 2

      If I can access the libraries from assembly, and am provided with a decent set of macros, I will beat you if you use Python.

      It's not the language, it's the coder.

      I am reminded that Wozniak used to hand-assemble his assembly code. And he would still have coded circles around you.

      --
      "First they came for the slanderers and i said nothing."
    21. Re:Ugh. by Luke+has+no+name · · Score: 1

      Your post and your signature are classic gatekeeping.

    22. Re: Ugh. by Anonymous Coward · · Score: 0

      > Scripting languages are:
      > 1. Interpreted

      So are many general-purpose programming languages.

      > 2. Run directly from source

      So are many general-purpose programming languages.

      > 3. Tend to be dynamically typed

      So are many general-purpose programming languages.

      > 4. Can often be embedded in applications

      This one is a better criterion, since I think "scripting" languages are defined more by their purpose than their technical features. A scripting language is really a programming language that has other software as its target instead of a hardware/OS platform.

    23. Re:Ugh. by 0100010001010011 · · Score: 1

      Current task from the boss: Classify these engineering plots using neural networks.

      I bought myself a head start with TensorFlow. How portable is your code going to be?

      Coding and programming is a means to an end for most professions. The farmer that fixes his tractor isn't a mechanic. Doesn't make his money being a mechanic and just knows how to fix tractors because it is a tool they use to get what they're really after.

      No doubt Woz could code circles around me for what he was coding for. That's not why I or any of my peers write code. It's a tool to get a job done and move on to the next job.

    24. Re:Ugh. by phantomfive · · Score: 1

      No doubt Woz could code circles around me for what he was coding for. That's not why I or any of my peers write code. It's a tool to get a job done and move on to the next job.

      Woz would get done and move on to the next job faster than you in any language.

      --
      "First they came for the slanderers and i said nothing."
    25. Re:Ugh. by phantomfive · · Score: 1

      I bought myself a head start with TensorFlow. How portable is your code going to be?

      btw of course assembly isn't portable. That is definitely an advantage of Python.

      --
      "First they came for the slanderers and i said nothing."
    26. Re:Ugh. by Anonymous Coward · · Score: 0

      > It's not the language, it's the coder.

      If you can't be more efficient in Python than in assembly, you're a shit Python coder.

    27. Re:Ugh. by Anonymous Coward · · Score: 0

      > Woz would get done and move on to the next job faster than you in any language.

      So petulant. You must be a joy to work with.

    28. Re:Ugh. by Anonymous Coward · · Score: 0

      Your tiny sliver of a view of the programming landscape is just adorable.

    29. Re: Ugh. by pthisis · · Score: 2

      Scripting languages are:
      1. Interpreted

      "Interpreted" is not a language feature, it's an implementation detail. There are C interpreters like EiC (and even assembly interpreters used in things like Bochs) and Python JIT compilers like PyPy.

      2. Run directly from source

      Even CPython compiles to bytecode, which is a tad more efficient that running directly from source.

      --
      rage, rage against the dying of the light
    30. Re:Ugh. by phantomfive · · Score: 1

      So petulant. You must be a joy to work with.

      I'm not. I'm a pain, but I get stuff done.

      --
      "First they came for the slanderers and i said nothing."
    31. Re: Ugh. by Anonymous Coward · · Score: 0

      It's also weak on encapsulation in various areas, which to me makes it a concern in enterprise.

    32. Re:Ugh. by BarbaraHudson · · Score: 1

      You shouldn't use terms you don't understand.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    33. Re:Ugh. by Anonymous Coward · · Score: 0

      Python is to the point where the non-programmers can benefit from code.

      Visual Basic met this need from the mid 90's in to the 2000's.

      I'll take this as a sign that Python is the new Visual Basic. The Slashdot hive-mind will hate it with a fiery passion in a few years.

    34. Re:Ugh. by Anonymous Coward · · Score: 0

      As another user pointed out:

      The biggest problem with Python is its incompatibility with itself. It is really annoying that RedHat and Ubuntu need different scripts. The situation is so bad as to need "venv" hack-around.

      Python fails portability harder than Java. At least the assembly developer isn't operating under the delusion that their software will run on a different platform.

      PHP is more portable than Python. Let that sink in.

      If you need portability, stay away from Python.

    35. Re: Ugh. by orlanz · · Score: 1

      Wow, your post takes up a larger percentage of this entire thread than the domain you are describing does in the programming landscape.

    36. Re:Ugh. by dbIII · · Score: 1

      Many offices have people writing Excel macros

      People still do that? After the third or 4th major syntax change breaking all previous macros I thought everyone had given up and handed it over to external software.

    37. Re: Ugh. by Zero__Kelvin · · Score: 1

      Python is jit compiled. See those .pyc files that show up after you run your program? They are python compiled files. Your method of determination is broken anyway, but I just wanted to point that out. Python is absolutely not a scripting language. Sorry to disappoint.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    38. Re: Ugh. by Anonymous Coward · · Score: 0

      In python

      foo = 25

      Might be used when you meant

      self.foo = 25

      Or

      self.bar = 25

    39. Re: Ugh. by Anonymous Coward · · Score: 0

      Try running that Python script in an embedded device versus assembly, see how efficient and error-free it is.

    40. Re:Ugh. by Anonymous Coward · · Score: 0

      If you don't understand the difference between marking something up and programming, you've no business posting in this thread.

    41. Re:Ugh. by TheRaven64 · · Score: 1

      So, by using a high-level language, I can get the same sorts of bugs and need the same sorts of work-arounds to avoid them that I used to have to deal with in C, ten years ago before compilers started spotting them automatically and warning me?

      --
      I am TheRaven on Soylent News
    42. Re:Ugh. by HiThere · · Score: 1

      It depends on what you are doing. For my part, I find your objections mainly irrelevant to most of my code, but I have a problem with how difficult it is to lay out structures with specified bit length variables. (Java's no better for my purposes.) I *need* for some variables to be 64 bits long, and others to be 16 or 32 bits long regardless of what the particular value stored in the variable happens to be. Easy in many languages, but quite difficult in Python. And the GIL is a real problem. It means that I need to run my program as a bunch of separate interpreter invocations. (Essentially I *could* use multiprocessing, though not multithreading, but there's no real benefit to make up for the costs.) And I need to know the format of strings. Utf8 is fine, and so is utf32 (though I'd want to convert to utf8 for output), but an unspecified format doesn't work at all. I most recently ended up converting all my strings into byte strings coded in utf8, and not using the language facilities. Annoying.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    43. Re:Ugh. by Hognoxious · · Score: 1

      Slashdotters don't see that there is 'programming' outside of doing programming full time.

      Should programming do "yes" or programming do "no", not programming do "guess so".

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    44. Re:Ugh. by lucm · · Score: 1

      So, by using a high-level language, I can get the same sorts of bugs and need the same sorts of work-arounds to avoid them that I used to have to deal with in C, ten years ago before compilers started spotting them automatically and warning me?

      That's part of the magic with interpreted languages. You don't have to compile, so that leaves more time to apologize to users for bugs that the compiler would have caught.

      --
      lucm, indeed.
    45. Re:Ugh. by Anonymous Coward · · Score: 0

      You can emulate switch/case statements using dictionaries in Python.

      https://www.youtube.com/watch?v=gllUwQnYVww

    46. Re:Ugh. by OfMiceAndMenus · · Score: 1

      I could do it in C#, it would look better, work better, and be easier to maintain.

      Not sure how you jumped all the way back to assembly.

      And your analogy of Michaelangelo is super flawed. Python's scripting language is the equivalent of using punch cards to have an automated paintbrush draw something every time you want to look at it, whereas a compiled language is more like looking at a normal painting.

    47. Re: Ugh. by K.+S.+Kyosuke · · Score: 1

      In that case, you've completely missed the point of Lua's scoping. Assignment is a mutator of the current scope, local creates a new scope in a controlled way. They're two different constructs. The default scope for new scopes is therefore local (because assignment doesn't create any!) but like in any sane language, it has to be introduced with a proper construct. Python's "let's introduce a scope with an assignment, or maybe not" was idiotic and Python people themselves have been forced to "solve" it with nonlocal - a hair-raising idea when we've had let-like constructs for more than thirty years. This was absolutely unnecessary for Python. Including the silent introduction of unwanted variables on typos, as I mentioned above.

      --
      Ezekiel 23:20
  3. Nope by Anonymous Coward · · Score: 0

    Most that work at IEEE Spectrum never had real jobs. This is a result of way too many IEEE staff parties in Amsterdam with Guido van Rossum.

  4. Lingua Franca by 0100010001010011 · · Score: 4, Insightful

    Python has hit critical mass in both popularity and tools available. C, C++, Java, Perl and anything else the average /.er is going to complain about going anywhere just like FORTRAN and COLBOL haven't.

    XKCD hit the nail on the head. It's something easy enough for middle schoolers to grock and powerful enough to use with TensorFlow. It's our office's go-to language for "I need this task done". It's basically BASIC where you can import math (numpy), plotting (matplotlib), neuralnetwork (TensorFlow) and other packages.

    Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.".

    You can knock out something in 30 minutes in Python that would take longer in anything else and the performance difference isn't worth doing it in something else.

    1. Re: Lingua Franca by corychristison · · Score: 4, Insightful

      You can knock out something in 30 minutes in Python that would take longer in anything else and the performance difference isn't worth doing it in something else.

      In reality this could be said of most scripting languages, including PHP, JavaScript, Bash, etc.

    2. Re: Lingua Franca by Anonymous Coward · · Score: 0

      Sure, Python is handy for a proof-if-concept prototype. But if you're building your business on it, let me know so I can avoid your products like the plague. In short, for production systems of any significant scale, if you're using Python then you're doing it wrong.

    3. Re:Lingua Franca by Anonymous Coward · · Score: 0

      It's a shame nobody's bothered to make a "curly brace and semicolon" two-way converter for Python.
      If someone did that, the wrapper syntax would take over the top spot overnight.

    4. Re: Lingua Franca by 0100010001010011 · · Score: 1

      But if you're building your business on it,

      You can't and you won't.

      Unless you don't drive a car and don't fly. dSpace is one of the few Hardware In The Loop vendors. Good chance something you rode in, flew in, or built the road you're driving on was tested on it. Scripted in Python (2.7, but that's an improvement from what was 2.5).

      They are migrating to a .NET API that you can access though Python.NET.

      any significant scale

      I think most developers don't understand how many niche industries there are out there. If Caterpillar sells 100 of it's largest mining truck in a year, how fast does the HIL tester need to be?

    5. Re: Lingua Franca by 0100010001010011 · · Score: 3, Interesting

      And until I hopped over to Python I did use PHP as that when I wanted something a bit better than Bash.

      But PHP, JavaScript and Bash aren't as easy to install on Windows. They certainly don't have the number of packages available.

      "How to ____ in Python" will turn up results for almost anything. I would be interested in seeing a CUDA backed neural network in Bash.

    6. Re:Lingua Franca by 0100010001010011 · · Score: 1

      It's depressing that so called 'programmers' lose their mind at different syntax. I can stomp my feet and pout at Spanish vs English word order but if I want to communicate in either I just suck it up and deal with it.

    7. Re: Lingua Franca by corychristison · · Score: 1

      I still prefer PHP for quick and dirty. If I need it reliable I generally use bash.

      I don't use Windows, so I guess there's that. :-)

    8. Re: Lingua Franca by lucm · · Score: 1, Interesting

      Did you even try to install NodeJS on Windows? Click click done. And npm happens to have the biggest number of packages of all package managers. And yes, it includes packages to do a CUDA backed neural network. As if anyone who has meaningful volumes of data to process in a neural net would use Python or JavaScript anyways.

      Don't Bash things you don't know (pun intended).

      --
      lucm, indeed.
    9. Re: Lingua Franca by lucm · · Score: 1

      You mean like docker or yum?

      --
      lucm, indeed.
    10. Re:Lingua Franca by Anonymous Coward · · Score: 0

      Whitespace-delimited languages are fine for one-off tasks, but they suck for collaboration (e.g. cut and paste into HTML forms) and version control (e.g. applying patches: oops, the patch was indented to a different invisible level...).

      Whitespace is the one thing that's keeping Python from being a true mainstream language.

    11. Re: Lingua Franca by Anonymous Coward · · Score: 0

      It's not because its different, it's because it's different in specific ways that many programmers, including me, find annoying.

      There is a team at work that only uses python for any projects. They're always asking if they can rewrite this or that component in python. If they were real programmers they could just handle the java, c, and bash right? Sometimes when there's a bug and we find out that they misnamed some field in a json payload, instead of fixing their script in 2 minutes they ask if we can change the interface. When I look at their code it is a mess. Not convinced the language is helping them in any way.

      It's ok if other people like it, but i never will.

    12. Re:Lingua Franca by Anonymous Coward · · Score: 0

      You can knock out something in 30 minutes in Python that would take longer in anything else and the performance difference isn't worth doing it in something else.

      So far I haven't had to code anything much in Python, though I have Java, C#,c/C++,ASM (minor), and Labview.

      Of them all, I oddly find myself likely Java best, when absolute performance isn't an issue. Java has decent performance, but doesn't give me the tools to really pull out all the stops like an evil C#/C++ hybrid with shared memory :).

      Labview is curiously enough the one I'd go to if I needed to knock out something quick, particularly if I don't need to maintain it for more than a year or so. Of course, if I had to purchase labview, or take the time to install it, then I'd just code it in something else. This article temps me to learn python.

      My biggest lesson from being at this coding game for awhile is to use the tools that are available for the purposes they work best at. Don't reinvent wheels, just don't, unless you really can't find a way around it, then think twice.

      For instance, if you come across a massively big export from a database that you have to over time manipulate in a myriad of ways, then the solution is not to see how much you can do with raw low level coding. Pull the thing back into a database, even if it is just an embedded one, then use the tools available to manipulate the data into whatever form you need, then write some thin export module if you need something special, or better yet, don't. If your data is in a nice embedded database, or what have you, just use that directly in your program. Wait until you are done to write out whatever the final result is.

      In short, if you need a database use one, don't try to do it in code. I have made this mistake a couple times in my life, and I hope not to make it again. Database centric design needs to be something taught in programming. I admittedly am not a comp sci major, but still, this should be fundamental to programming in my opinion. It gives you the separation you need to make maintainable and truly expandable code.

      As a programmer I admit to falling into the trap of always trying to build something with the tools I am familiar with, but that is not the key to the best results. You need to find the tools that solve your problem in a maintainable way. After all, what is more maintainable? A single sql script or half a dozen or more classes that do some complex manipulation?

    13. Re: Lingua Franca by Anonymous Coward · · Score: 0

      Pretty ire php code outperforms python code by a whole hell of a lot. (You know. Besides major companies working on php and python is a hipster toy)

    14. Re: Lingua Franca by Anonymous Coward · · Score: 0

      javascript makes a bunch of simple things needlessly convoluted.

      Just try opening a file with the standard library.

      Python says:
      with open('foo.bar') as f:
              print(f.read())

      NodeJS Says:
      fs = require('fs');

      fs.readFile('foo.bar', function(err, data) {
              if (err) {
                      throw new Exception(err);
              }
              console.log(data);
      });

      *sigh*

    15. Re: Lingua Franca by 0100010001010011 · · Score: 1

      Did you even try to install NodeJS on Windows?

      Have they fixed the fact that NPM dies when running into MAX_PATH on Windows?

    16. Re:Lingua Franca by K.+S.+Kyosuke · · Score: 1

      Or maybe character-based version control sucks? Whitespaces change and your inferior tool thinks that your code is different...that is OK in the 21st century?

      --
      Ezekiel 23:20
    17. Re: Lingua Franca by lucm · · Score: 1

      Those two examples are apples and oranges. You're the one adding needless stuff.

      Why don't you try again without the exception management and without using the "fs" variable? And if you want to have similar code you'd have to use the sync version of readFile and this becomes a one-liner.

      --
      lucm, indeed.
    18. Re: Lingua Franca by Billly+Gates · · Score: 1

      Did you even try to install NodeJS on Windows? Click click done. And npm happens to have the biggest number of packages of all package managers. And yes, it includes packages to do a CUDA backed neural network. As if anyone who has meaningful volumes of data to process in a neural net would use Python or JavaScript anyways.

      Don't Bash things you don't know (pun intended).

      This is 2017 and you can virtualize if your employer sticks you with Windows or you want to do things without breaking your Linux host OS as not all of us are neckbeared sys administrators who know init.

      Windows 10 pro even comes with hyper-V! It beats the snot out of VMWare Workstation as hyper-V is a type one hypervisor so no extra license needed. There is KMS for free for Linux loyalists that is type 1 as well and ssds and quad core CPUs galore in 2017.

      Windows does suck outside of python and .NET which is why Ubuntu and soon Suse for Windows is coming and MS is in a rush vastly improving visual studio. Node.j's is missing packages and has to use Chromes v8 engine last I looked.

      But anyway 2017 is a lot nicer than 2007 where host OS was essential

    19. Re: Lingua Franca by Anonymous Coward · · Score: 1

      You clearly don't write much JS. You can do it in two lines of code:

      >import fs from 'fs';
      >fs.readFile('foo.bar', console.log);

      You could even do it in one, if you're not planning on any other use of fs:

      >require('fs').readFile('foo.bar', console.log);

      Even if you still want to throw the error, which you normally wouldn't:

      >fs.readFile('foo.bar', (err, data) => { if (err) throw new Error(err); console.log(data);});

    20. Re: Lingua Franca by lucm · · Score: 1

      Dunno, never ran into that (alleged) problem.

      But just a quick look at your username and it's immediately obvious that typing long strings is something you enjoy, so I could see how someone like you would stumble upon edge cases like hitting a MAX_PATH limit.

      --
      lucm, indeed.
    21. Re: Lingua Franca by h33t+l4x0r · · Score: 2

      I remember a few years ago when npm was a real pain in the ass on windows and the community seemed hostile to people posting windows issues. These days it's much better and I rarely have any issues.

    22. Re:Lingua Franca by h33t+l4x0r · · Score: 1

      Yes but it still depends on the task. Obviously TensorFlow and Numpy are great but there's still not a decent HTML parser despite the popularity of using Python to parse HTML. I can see Node eating Python's lunch in the near future for stuff like this.

    23. Re:Lingua Franca by Anonymous Coward · · Score: 0

      It's very easy to profile a python script, find the "3%" that needs to be sped up and interface Python with C. You can get the extra 3% when you need it!

    24. Re:Lingua Franca by gweihir · · Score: 1

      It is also very nice as glue-code, as it has a pretty good interface for embedding C code.

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

      You can knock out something in 30 minutes in Python that would take longer in anything else and the performance difference isn't worth doing it in something else.

      I found Julia to be faster to code and run than Python.

    26. Re:Lingua Franca by Anonymous Coward · · Score: 0

      ... or just don't bother using whitespace delimited languages until their tooling catches up to the past 30 years of advances in curly brace tooling (editors, indenters, refactoring tools, source control, etc).

      Space-delimited languages require the programmer to revert to dark ages of tools. That's why they're not taken seriously by industry.

    27. Re: Lingua Franca by thePsychologist · · Score: 1

      Only partly true. Python does so many things right that languages Perl or Bash are just ugly in comparison, and are thus often slower to write medium-sized programs. And PHP and Javascript have limited applications ouside the web.

      --
      "What lies behind us, and what lies before us are tiny matters compared to what lies within us." Ralph Waldo Emerson
    28. Re: Lingua Franca by loonycyborg · · Score: 1

      Why would he drop exception management? It's real pain to figure out when something goes wrong without it. By default most python funcs throw an exception that can only be ignored explicitly, and if it ends up unhandled a useful error message with backtrace will be printed.

    29. Re: Lingua Franca by mapkinase · · Score: 1

      's slow. I mean really, really slow. A lot of times this doesn't matter, but it definitely means you'll need another language for those performance-critical bits.

      Nested functions kind of suck in that you can't modify variables in the outer scope. Edit: I still use Python 2 due to library support, and this design flaw irritates the heck out of me, but apparently it's fixed in Python 3 due to the nonlocal statement. Can't wait for the libs I use to be ported so this flaw can be sent to the ash heap of history for good.

      It's missing a few features that can be useful to library/generic code and IMHO are simplicity taken to unhealthy extremes. The most important ones I can think of are user-defined value types (I'm guessing these can be created with metaclass magic, but I've never tried), and ref function parameter.

      It's far from the metal. Need to write threading primitives or kernel code or something? Good luck.

      While I don't mind the lack of ability to catch semantic errors upfront as a tradeoff for the dynamism that Python offers, I wish there were a way to catch syntactic errors and silly things like mistyping variable names without having to actually run the code.

      The documentation isn't as good as languages like PHP and Java that have strong corporate backings.

      --
      I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
    30. Re: Lingua Franca by Anonymous Coward · · Score: 0

      Bash is a great scripting language, better for gluing together unrelated processes than any other I've used. I'd rather use Bash than Python for most scripting tasks, because it was designed to make them simple. Parsing text ? Easy as hell. Manipulating files ? Bring it on. Define a new domain-specific syntax ? In a heartbeat. In Bash, if I want to remove the extension from a list of files, I write "${files[@]%.*}", while the Python equivalent would imply calling a map function, or writing a loop, and importing an external module.

      Another interesting thing about Bash is how easy it is to integrate with other languages, so that you can defer specialized problems to specialized programs. For anything that require performance and algorithmic precision, I write in Haskell for its quality assurance, and C for its simple efficiency, while using Bash for the dirty plumbing (FYI, there are CUDA-backed neural networks libraries in Haskell that can be used by Bash in this way exactly).

      IMHO Python is too slow to replace C, too imprecise to replace Haskell, and too fastidious to replace Bash. It's the JavaScript of systems programming : a huge community of monkeys typing in unison managed to make a palatable ecosystem of it, and it is now mistaken for a good language.

    31. Re: Lingua Franca by angel'o'sphere · · Score: 1

      you're using Python then you're doing it wrong

      You are an idiot.

      Plenty of web sites are written in Python, Eve Online is mainly Python (Frontend and backend), most climate and weather research code I have seen is in Python.

      Get out from under your rock!

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    32. Re:Lingua Franca by Anonymous Coward · · Score: 0

      You can knock out something in 30 minutes in Python that would take longer in anything else and the performance difference isn't worth doing it in something else.

      For desktop applications? Sure, absolutely. Python is the go-to language, and wonderful at it.

      But your statement doesn't hold in general. For instance, I do a lot of scientific programming — not of the kind that involves operations on giant arrays, but the kind that involves multiplying trillions of small matrices to solve some highly nonlinear equations. Switching from Python to modern Fortran took around a month of coding, and reduced the execution time of a single simulation from about 3 days to about 1 hour.

    33. Re:Lingua Franca by Anonymous Coward · · Score: 0

      yeah you can knock out shit in 30mins

    34. Re:Lingua Franca by Anonymous Coward · · Score: 0

      Yeah but put all that in perspective. If it's that easy to code, those are the first jobs that will be lost to some future AI who could knock it out better than any human. I'd rather ask some AI in natural language to solve that problem than some code monkey who whines about working late hours.

      An AI, I might add, which will be written not in Python but in some form or derivative of C.

    35. Re:Lingua Franca by Anonymous Coward · · Score: 0

      What you said is 100% accurate, but it also betrays the problems with Python.

      What bothers me about Python is that with a newer generation of languages (many inspired by the LLVM) - Nim, Kotlin, Julia, etc. - you can have that ease of expression without sacrificing performance. So there's an opportunity cost there.

      Python expanded to where it is because of your main point, which is that for 85% of things that most people do, Python is fine performance-wise.

      However, many of the things you're talking about, like NNs and optimization and whatnot aren't actually being done by Python, they're being done by C/C++/Fortran. So you have this illusion of Python being the thing you're using, when the thing that makes Python usable is actually a different language.

      With many newer languages, you don't have to make that tradeoff. And for a lot of people, eventually you will bump up against the illusion that Python creates, and realize you have to use something else. And you'll start getting angry as hell that you didn't/couldn't just do your project from the beginning in something that is transparently performant. You'll start wondering why the hell people aren't using something that affords expressiveness and performance, where there is no illusion and no wizard behind the curtain.

      The truth is that Python is what it initially gained in popularity as: a scripting language. It's the scripting language that won the Perl-Python-TCL-Ruby competition so well that people started using it for everything, even where it shouldn't be, without even realizing they were using it for that, and even when the idea of a "scripting language" itself is kind of outdated because of these LLVM-based languages.

    36. Re: Lingua Franca by Anonymous Coward · · Score: 0

      And npm happens to have the biggest number of packages of all package managers.

      Yeah I wouldn't bring that up as a pro. The quality of the npm is also, by far, the worst of any package repository.

    37. Re: Lingua Franca by 0100010001010011 · · Score: 1
    38. Re: Lingua Franca by lucm · · Score: 1

      You're missing the point. The guy compared Python code that has no exception management with NodeJS code that has exception management. Then he used that unfair comparison to support his point that NodeJS is needlessly convoluted.

      So either you put in a try/except in the Python example or you remove the if(err) in the NodeJS example if you want to compare the "convolution".

      --
      lucm, indeed.
    39. Re: Lingua Franca by Anonymous Coward · · Score: 0

      It wasn't a small problem. Older versions of node generated hilarious long paths as part of the module system, easily breaking MAX_PATH.

      The problem was that a module would import another module, and the original npm never did any sort of deduping so they'd always be nested.

      Here, I'll give you an example of a plausible path being generated by npm based on an existing Less.js install:

      node_modules\less\node_modules\request\node_modules\har-validator\node_modules\is-my-json-valid\node_modules\generate-object-property\node_modules\is-property

      That's already 159 characters long, leaving just 100 character left not only for anything before that (since these files have to be in at least C:\ and probably have a meaningful folder name) but also after that: is-property is going to contain files!

      Plus, Less.js is itself actually a dependency. It's run as part of a script that deals with "compiling" web assets. Nest it inside of its dependency and you have even fewer characters to work with.

      Fortunately, they've since fixed it by installing all modules that can be installed into the root "node_modules" directory and only doing that nesting thing when there are conflicts. But the whole way NPM deals with modules (and the stupid way people writing them split things up - the "is-property" module is literally a single function that contains a single regexp) means that it was trivial for NPM-based projects to hit MAX_PATH.

      Now it's still possible, but no longer trivial.

    40. Re: Lingua Franca by Anonymous Coward · · Score: 0

      this could be said of most scripting languages, including PHP, JavaScript, Bash, etc.

      Not when you consider the tools available "with the typical Spectrum reader in mind". Not the same variety to the same extent.

    41. Re: Lingua Franca by Anonymous Coward · · Score: 0

      What do you mean when you say that "Python is to imprecise to replace Haskell"

    42. Re: Lingua Franca by tigersha · · Score: 1

      Yes but if you do use the syn version of readFile all the Nodies freak out. And there are NO syn version of thing like accessing mongodb, which, incidentally I needed today (for initializing my program with settings, in case you ask).

      Javascript's continuation passing style is total crap. The problem is that is pretty hard to modularize programs because you can't fit pieces of program together properly. It was a really, really bad design decision. And don't get my started on promises. No, they are not the answer to all the world's problems, at least not at the scale they are used in Node to fix all the problem with continuation callbacks.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    43. Re: Lingua Franca by tigersha · · Score: 1

      That is true. I work for a niche industry. We sell one device every two years.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    44. Re: Lingua Franca by tigersha · · Score: 1

      Since when is docker written in Python? It is written in Go as far as I know.

      Ansible is written in Python.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    45. Re:Lingua Franca by OfMiceAndMenus · · Score: 1

      That comic is comparing Python to PERL. Hell, if you're comparing to PERL, you'd feel like you were flying with C++.

    46. Re:Lingua Franca by Anonymous Coward · · Score: 0

      C++ doesn't feel like flying. It feels like being chained to a slow-moving train and every time you break the lock there's another ball and chain inside it.

    47. Re: Lingua Franca by lucm · · Score: 1

      And there are NO syn version of thing like accessing mongodb

      That's why God created Promises...

      --
      lucm, indeed.
  5. Here they come...! by Anonymous Coward · · Score: 0

    Que the Rust fanboy brigade in 3....2....

    1. Re:Here they come...! by Anonymous Coward · · Score: 0

      "que"? Huh? That's Spanish for "what". It is not an English word.

    2. Re:Here they come...! by Anonymous Coward · · Score: 0

      "Cue" shit stick.

    3. Re:Here they come...! by Anonymous Coward · · Score: 0

      The O'Reilly Rust book still hasn't shipped yet. I think the pub date has been pushed back about five times. O'Reilly is pretty careful, so what that probably means is that they kept waiting for a stable build to fix the problems they were running into. But then the fixed build introduced new problems, and so...

    4. Re: Here they come...! by Anonymous Coward · · Score: 0

      It could also be queue you fart knocker

    5. Re: Here they come...! by Anonymous Coward · · Score: 0

      Not really, what would the countdown mean?

    6. Re:Here they come...! by gweihir · · Score: 1

      Kind of tells you whether you should use it now. And kind of makes checking all the fantastic statements made by the fanbois pretty hard. (Not that it is unclear that most are alternate facts....)

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  6. Relevance? by Anonymous Coward · · Score: 2

    Python is a nice language. So are C,C++,C#,Swift,PHP,Powershell,Java,JavaScript,Typescript, etc... heck I even like COBOL. But what is the relevance of rating what the most used language?

    I think programming methodology is more interesting. Is purely functional, MVVM, object oriented, structural, etc... the best.

  7. What are they? by Gravis+Zero · · Score: 3, Insightful

    combine 12 metrics from 10 carefully chosen online sources to rank 48 languages

    What metrics are they and which online sources were used? If you're going to make such an assertion then why not explain or link to the details?

    To me, it sure sounds like a list of the most problematic languages combined with the number of people who use them.

    --
    Anons need not reply. Questions end with a question mark.
    1. Re:What are they? by lucm · · Score: 1

      To me, it sure sounds like a list of the most problematic languages combined with the number of people who use them.

      Exactly. That's like saying: GM cars are the most popular because you can find a lot of GM spare parts in junkyards.

      --
      lucm, indeed.
    2. Re:What are they? by Anonymous Coward · · Score: 0
    3. Re:What are they? by Anonymous Coward · · Score: 0

      What metrics are they and which online sources were used? If you're going to make such an assertion then why not explain or link to the details?

      http://spectrum.ieee.org/ns/IEEE_TPL_2017/methods.html

    4. Re:What are they? by MSG · · Score: 1

      Well, you could click the link in the article that says "Read more about our method and sources," or you could choose a custom ranking and not only see the sources listed but adjust how influential you think they should be in the combined ranking.

      Or you could complain on a forum because you're not really interested in the answer, you're just unhappy that your language of choice isn't the one everyone else likes. :)

    5. Re:What are they? by Anonymous Coward · · Score: 0

      They do explain their sources and methods:

      http://spectrum.ieee.org/ns/IEEE_TPL_2017/methods.html

  8. Re:What is the interpreter written in? by 0100010001010011 · · Score: 2

    Why use what is essentially a giant abstraction layer for another language?

    Eric Raymond’s 17 Unix Rules covers this:

    Rule of Generation
    Developers should avoid writing code by hand and instead write abstract high-level programs that generate code. This rule aims to reduce human errors and save time.

    Rule of Economy
    Developers should value developer time over machine time, because machine cycles today are relatively inexpensive compared to prices in the 1970s. This rule aims to reduce development costs of projects.

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

    Python beats C in all 3.

  9. Perl by hattable · · Score: 4, Insightful

    How I miss thee.

    --
    OMG facts!
    1. Re:Perl by Anonymous Coward · · Score: 0

      have you been transported to an alternative universe where the latest version of perl is not easily available for download?

      or are you just stupid

    2. Re:Perl by Anonymous Coward · · Score: 0

      have you been transported to an alternative universe where the latest version of perl is not a steaming pile of shit despised by everyone?

      or are you just stupid

    3. Re: Perl by Anonymous Coward · · Score: 0

      I /really/ like Perl. It was the first scripting language I ever learned.

      I maintain some legacy apps written in Perl for a few of my clients. Just a few weeks ago one of them needed some changes. This specific application was written in the late 1990's with about a dozen or so developers maintaining it between initial development and me. It's a total mess, but I've figured out its quirks now.

      Quoted 15 hours of work. Only took 3 hours of work, plus 30 mins of testing. At $100/hr I just wish they needed more changes, more often. :-)

    4. Re: Perl by CRC'99 · · Score: 1

      I /really/ like Perl. It was the first scripting language I ever learned.

      I still use perl on a daily basis. From web interfaces to batch data processing to realtime hardware data collection (using good old RS485 busses).

      The RS485 control part even has multi-threading, as well as converting https Server Side Events to RS485 data streams.

      One of the best programs I ever wrote :)

      --
      Sendmail is like emacs: A nice operating system, but missing an editor and a MTA.
    5. Re:Perl by gweihir · · Score: 1

      AT least Python has PCRE. Even if the interface is not nearly as nice as in Perl. One of my few gripes with Python.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    6. Re:Perl by ArchieBunker · · Score: 1

      Perl was all the rage in the 90s. Then we had Ruby and now Python. In five years some other language is going to be hot.

      --
      Only the State obtains its revenue by coercion. - Murray Rothbard
    7. Re: Perl by Anonymous Coward · · Score: 0

      Another long-time Perl user here as well. Still use it predominantly for most things, else C. Tried Ruby at a job -- what an atrocity of a language (the next person who says "it's Perl but better" will get punched. No, it isn't Perl, it's awful. Even the regexes aren't compatible, particularly $ vs. \Z vs. \z). As for Python, my take on it is that it's still pretty blah as well but at least better than Ruby in many cases. I can't get over how major Python projects that interface with MySQL predominantly use this horrid thing (and I absolutely love this hilarity). Yeah... Python... I'll pass. I will say, however, I have little to no interest in Perl 6.

    8. Re:Perl by angel'o'sphere · · Score: 1

      Python is old, too. Not much younger than Perl.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:Perl by alantus · · Score: 1

      Despised by everyone? There is a well established community of Perl programmers out there.

      Maybe despised by people that have to be forced into following good practices because they aren't able to do it on their own. Like Python forcing you to indent code, therefore making one-liners impossible.

    10. Re:Perl by Anonymous Coward · · Score: 0

      Working at a large Telecom. Seeing lots of Perl scripts in legacy code, but almost everything written more recently for the comparable use-cases (between shell scripts for really simple stuff, and C++/Java for larger projects) is done in Python.

    11. Re: Perl by Anonymous Coward · · Score: 0

      "I /really/ like Perl. It was the first scripting language I ever learned."

      This is common for inexperienced programmers.

      As is bragging about your consulting rate online.

    12. Re:Perl by ebvwfbw · · Score: 1

      Perl still rocks. Depends on what I'm doing if I use perl, python, haskell, c or even assembler. The last program I wrote was in Perl, last week. I wrote it in about 10 minutes and it updates an entire database full of users and gives me a report. All that in I think it was about 50 lines of code. Worked correctly the first time. For that job, perl was absolutely the right language to do it in. I also don't have to worry about someone else updating it. I've had a lot of success in people off the street understanding it and being able to update it.

      Java, Python, especially Haskell, C and Assembler - forgetaboutit. They need to know what they're doing a LOT more. Otherwise you'll get more bugs in the code. If it runs at all. I've grown to really hate Java over the years.

  10. python is great... for programs that fit on a page by Anonymous Coward · · Score: 0

    It's great for cobbling little toys together, but not for serious projects.

    1. It does not catch entire classes of problems that compile time checked languages do.

    2. It is dynamically typed.

    3. It is slow as shit.

    So cool, use it for small projects, but if people move more to building serious projects out of it that is going to lead to even MORE rubbish software as people fail to catch basic problems that a compiler would catch for you, and they also fail to run any of the analysis tools that might help.

    It's a scripting language for god sake. Let's keep it in perspective.

  11. Re:What is the interpreter written in? by steveha · · Score: 4, Informative

    There are no Python to machine code compilers out there.

    Interestingly, you are incorrect. There is one: PyPy. It's Python written in Python. And it's fast!

    http://pypy.org/

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
  12. REEE Autism Spectrum by Anonymous Coward · · Score: 0

    declares Rust The #1 Programming Language

  13. Re:python is great... for programs that fit on a p by Anonymous Coward · · Score: 0

    it's not a bad language as Dickapulos pointed out. Not have to compile is one of its strength. And probably the academia use skews the popularity.

  14. Understood by Snotnose · · Score: 3, Insightful

    Python rocks. I love it. I've written 2-3 major apps in it over the last 15 years. That said, using spaces for block definition is brain dead. Seriously. I know I'm gonna get flamed for this but, whatever.

    tldr; Python is a great language with one huge fucking hole. When tabs vs spaces change the way a program runs, something is wrong. Yeah, I know you can tell your editor to change tabs to some random spaces, but still.

    When I find code for SomethingIReallyWouldLike, and it Doesn'tFuckingWork, and I find out FuckwitUsed2CharacterTabs, then something is broken. Broken hard. Broken bad.

    1. Re:Understood by lucm · · Score: 1

      using spaces for block definition is brain dead

      It is. Just the fact that there's a keyword (pass) that does nothing except prevent the indentation from falling apart says it all.

      However there's many things that are even more retarded in Python:
      - package management
      - text encoding
      - the whole import thing which makes it impossible to use sibling modules without dirty hacks
      - mutable default arguments
      - the abuse of underscore, such as the lovely __main__
      - the "ternary operator", which is basically a drunk if statement

      I think at this point PHP have got their shit together better than Python.

      --
      lucm, indeed.
    2. Re: Understood by Zero__Kelvin · · Score: 2

      Yes .... The idiot who used tabs is broken. Python allows tabs, it doesn't encourage it. Competent programmers don't use tabs unless they are writing a makefile.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    3. Re: Understood by Anonymous Coward · · Score: 0

      PHP 7.1 is actually a massive shift forward.

      It's still definitely geared towards websites, but has matured in many other areas.

    4. Re: Understood by gweihir · · Score: 1

      Very much this. A competent coder understands that tabs are not defined the same everywhere and just cause problems, and hence just disables them in the editor used. It is also extremely easy to replace them with proper spaces if you know how wide they are supposed to be in a piece of code.

      Anybody that really has a problem with this should not be let near program code as they are just incompetent.

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

      Bollocks. Have been coding probably longer than ou and it's the new kids who fucked up tabs by not understanding them. Now because of wankers who make whitespace significant apparently we are back to punch card thinking.

    6. Re: Understood by Anonymous Coward · · Score: 0

      It's cute that you Pythonistas still fight over tabs vs spaces. Seriously guys, "expand" and "unexpand" have been around for decades. Pick one (vote, or arm wrestle if you have to), and then add a commit hook. Problem solved.

    7. Re: Understood by serviscope_minor · · Score: 2

      Yes .... The idiot who used tabs is broken. Python allows tabs, it doesn't encourage it. Competent programmers don't use tabs unless they are writing a makefile.

      I disagree. If one action in a language is always idiotic then it is not the idiot who is at fault, but the language. C lets you run over the end of an array which is awful, but the counterpoint is that it's faster to not do the checks so it ultimately allows a very skilled programmer to write more efficient code. There's a tradeoff .

      What's the tradeoff with Python in this case?

      The only reason to not use tabs for indenting in fact is because that's the method the python community chose. In other languages, tabs are a much better choice since one tab means semantically one level of indent. The programmer can then choose their optimum viewing conditions by selecting the tab stops they prefer. Tabs are a much better choice, but it's programs like EMACS which ruined he world this way by using the mindlessly crazy two space, 4space, 6 space, tab indent scheme. WTF.

      --
      SJW n. One who posts facts.
    8. Re:Understood by Anonymous Coward · · Score: 0

      >- package management

      How so? Pip always works for me and python modules are great, too.

      >- text encoding

      Python3 uses Unicode for strings and 8-bit bytes for "bytes". What do you mean?

      >- the whole import thing which makes it impossible to use sibling modules without dirty hacks

      foo: import .bar

      ?

      >- mutable default arguments

      What does that even mean?

      >- the abuse of underscore, such as the lovely __main__

      Abuse? it's just part of the identifier.

      >- the "ternary operator", which is basically a drunk if statement

      I agree, it should have been just "if foo 2 else 3" but their rationale is they wanted to make it obvious which case was the normal one.

      >I think at this point PHP have got their shit together better than Python.

      Oh god no. What with the operator precedence in PHP? Totally nonsensical.

    9. Re: Understood by Zero__Kelvin · · Score: 2

      There is no excuse for using tabs in any language, as I said. Python supports it because Guido knew there are hordes of idiots that can't understand why. You blaming emacs for tabs being the wrong choice is absurd. Tabs have always meant "some user defined distance", and spaces have always meant distance 1. Uniformity is king, and so tabs are stupid. Period.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    10. Re: Understood by Anonymous Coward · · Score: 0

      Some of us write code in environments where every byte counts. There you prefer two tabs to eight bytes.

      Actually, you could say "only affluent and incompetent programmers use spaces instead of tabs".

    11. Re:Understood by Anonymous Coward · · Score: 0

      So broken that it's the most popular language in use...

    12. Re: Understood by Anonymous Coward · · Score: 0

      Everyone complains about this intractable problem of tabs vs spaces except for the people actually writing python. It's just a non-issue in practice.

    13. Re: Understood by Zero__Kelvin · · Score: 2

      As I said. You are incompetent. Nobody writes code in environments where every byte counts in 2017. It's called cross compiling. You should get a basic understanding of how to develop software some day.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    14. Re:Understood by lucm · · Score: 1

      >- mutable default arguments

      What does that even mean?

      That means that you haven't done a lot of Python.

      Passing mutable lists or dictionaries as default arguments to a function can have unforeseen consequences. Usually when a programmer uses a list or dictionary as the default argument to a function, the programmer wants the program to create a new list or dictionary every time that the function is called. However, this is not what Python does. The first time that the function is called, Python creates a persistent object for the list or dictionary. Every subsequent time the function is called, Python uses that same persistent object that was created from the first call to the function.

      https://docs.quantifiedcode.co...

      ^ this behavior is beyond retarded.

      --
      lucm, indeed.
    15. Re: Understood by serviscope_minor · · Score: 1

      There is no excuse for using tabs in any language, as I said.

      You said it and I explained why I think you're wrong. Tabs are the superior choice because they encode semantic meaning.

      Tabs have always meant "some user defined distance",

      Bingo! That's precisely correct. 1 tab is one indent level. That's the beauty: it doesn't matter how far and the user can define the distance to be whatever they want. If you use nothing but tabs, then if you prefer indents as 2 spaces, then you can set that. I like indents at 4 spaces, then I too can set that. And code I write which looks to me to be indented by 4 spaces will be a scant 2 on your screen.

      You blaming emacs for tabs being the wrong choice is absurd. Tabs have always meant "some user defined distance", and spaces have always meant distance 1.

      You are literally agreeing with me angrily. If tabs are meant to be a user defined distance, then forcing source files to have tabs which must be 8 spaces is an absurd choice. You can't have it both ways.

      Uniformity is king,

      So having one tab meaning 1 indent level regardless of the user's personal preference is ideal then. What's less uniform than having every house style specify a different number of spaces per indent level which is what happens if you don't use tabs.

      --
      SJW n. One who posts facts.
    16. Re: Understood by Zero__Kelvin · · Score: 1

      Great. Speaking of houses, go order drapes and tell them you need one that is 24 user defined distances plus 4 inches and see how far that gets you. Make sure to tell them that is only true if you are the user, your wife wants them too, but hers need to be 32 and that might mean they are the same, or it might mean they are completely different... You have no way of knowing. Use whatever they give you so you get a good visual on the quality of your code.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    17. Re: Understood by serviscope_minor · · Score: 1

      that's a broken analogy because the functioning of the code doesn't depend on the tab stops.

      In fact you are arguing against the entire principle of separating presentation from content.

      Tell me, how good do those "best viewed in internet explorer at 640x480" web pages look today?

      --
      SJW n. One who posts facts.
    18. Re: Understood by Anonymous Coward · · Score: 0

      Everyone complains about this intractable problem of tabs vs spaces except for the people actually writing python.

      False: There are people writing Python code that complain about tabs versus spaces.

      It's just a non-issue in practice.

      False: It is an issue in practice for some people, and for others it is not.

      Please keep your overly broad, and thus easily falsifiable, statements where they belong: Elsewhere.

      Thanks.

    19. Re: Understood by Zero__Kelvin · · Score: 1

      The functioning of the code DOES depend on the tab stops. That's the point. Again, never use tabs, except when writing a makefile, and even then only because make itself was designed wrong. Enjoy the stench of your own ignorance, and working with incompetents like yourself!

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    20. Re: Understood by serviscope_minor · · Score: 1

      The functioning of the code DOES depend on the tab stops.

      lolwut?

      In which language?! That's not the case in any language, because the tab stops are a property of your display environment (e.g. editor, terminal, github, bitbucket, etc), but the language cannot know.

      Since you claim that the functioning does depend on the tab stops, then tell me how a language that even cares about whitespace (such as python) can tell that I typed ":set ts=3" in gvim before running the code.

      I suspect we're talking at crossed purposes here because obviously you don't mean that but that's really what you wrote means. The thing I mean by "tab stops" is how wide tabs appear in terms of spaces on the screen, I don't know what you mean. Naturally that width cannot affect the functioning of the code since it depends on (for example) the contents of the vimrc on the machine on which I'm viewing the code.

      If you use N tabs for an N level indent and spaces to align anything else (e.g. splitting a function over lines), then whatever you set the tab stops to, the code will look right.

      Again, never use tabs,

      Merely saying the thing more angrily isn't in fact an argument!

      I say that if you use one tab as one level of indent, it works fine. Despite being the best choice it's a bad choice for python since the community chose spaces. For C, C++, Java, C#, bash, SQL, matlab and many others tab is the superior choice.

      My reason is that it separates presentation from content.

      --
      SJW n. One who posts facts.
    21. Re: Understood by Anonymous Coward · · Score: 0

      > The functioning of the code DOES depend on the tab stops.

      Not if the tabs remain as tab characters. If your editor is replacing tab characters with spaces, you're doing it wrong.

    22. Re: Understood by Anonymous Coward · · Score: 0

      > The only reason to not use tabs for indenting ...

      You want to use tab characters (as distinct from tab key). That is fine, just don't use Python then. Nobody cares that you use some other language to write your programs in so that you can varying the look of it with different tab settings.

      Python programmers (most of them) use different tools that convert the tab key into an appropriate number of spaces and block indent/outdent functionality and don't care for your need to mindlessly crazy use tab characters.

    23. Re: Understood by Zero__Kelvin · · Score: 1

      You truly are the world's biggest idiot. This whole discussion has been about Python, a language where things are often broken by idiots who use tabs. I'm dumbfounded right now at your stupidity.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    24. Re: Understood by Zero__Kelvin · · Score: 1

      Dumbfuck. I open a file that some idiot used tabs to create. I add a line, using spaces as God intended, and save the file. It is now broken. Off you go now ...

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    25. Re: Understood by Anonymous Coward · · Score: 0

      Congratulations, you fail at text editing.

      If you can't pick your tools and configure them correctly, how are you not the dumbfuck?

    26. Re:Understood by Anonymous Coward · · Score: 0

      By that logic, you should eat shit. 50 billion flies can't be wrong!

    27. Re: Understood by serviscope_minor · · Score: 1

      Wow dude! I usually had you pegged as one of the more sensible people here, not sure what's set you off.

      This whole discussion has been about Python,

      You see, you also said:

      Again, never use tabs, except when writing a makefile, and even then only because make itself was designed wrong.

      Now to me that sounds very much like you're making a statement about all coding, not just python, because you know, that's what you wrote.

      Now I've not actually disputed that spaces are the best choice for Python. The community has landed on spaces and to go against the grain will invite disaster. Nonetheless that does not mean that Python or any other language depends on the tab stops. That's literally impossible for reasons I've explained.

      Python's stuck with spaces (it was a dreadful choice allowing both), but tabs are otherwise the superior choice. You've given no argument for that except for rage, and odd claims about tab stops.

      --
      SJW n. One who posts facts.
    28. Re: Understood by Anonymous Coward · · Score: 0

      Tabs have always meant "some user defined distance", and spaces have always meant distance 1.

      One tab character is one tab character, regardless of what distance the user has defined. Tabs are no less uniform, and don't require shoving personal spacing preferences down everyone's throats. I suspect that might be the part you enjoy most about spaces, though.

    29. Re: Understood by Zero__Kelvin · · Score: 1

      You have never written python code obviously, or more specifically tried to develop it in a team environment. If you did we wouldn't be having this discussion. I accept your apology.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    30. Re: Understood by Anonymous Coward · · Score: 0

      Changing tab witdh in an editor is visual, one tab character remains one tab character. It's 0x09, no matter what. You have no understanding of character encoding obviously. I accept your ignorance and look forward to receiving your letter of resignation. The team environment has had enough.

    31. Re: Understood by Zero__Kelvin · · Score: 1

      No shit Sherlock. That's the problem. Tab and space are two different characters. You can't see that you are mixing them and when you do it breaks the code. Thanks for verifying you have never actually written Python code.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    32. Re: Understood by Anonymous Coward · · Score: 0

      > You can't see that you are mixing them and when you do it breaks the code.

      Why can't you see when you are mixing them? I can in my editor. What editor do you use?

    33. Re: Understood by Zero__Kelvin · · Score: 1

      Holy shit. You have to be the most stupid motherfucker on the planet besides Trump. Do the world a favor and kill yourself. Seriously.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    34. Re: Understood by Anonymous Coward · · Score: 0

      Seriously... I CAN SEE THE SPACES AND TABS IN MY EDITOR. So can everyone else on my team because we use good tools.

      Are you some kind of troll or just completely incompetent?

    35. Re: Understood by Anonymous Coward · · Score: 0

      If uniformity is king, everyone would be using the same character. Everyone using tabs is functionally the same as everyone using spaces. A tab being a user-defined distance does not change its functionality. Uniformity is king but your "tabs are stupid" argument is invalid. Period.

    36. Re: Understood by Anonymous Coward · · Score: 0

      Right, I'm an idiot because I easily solved a problem you claim is a showstopper. The fact that you can't solve it must make you a genius.

      Know what? Our code is never broken or inconsistent, either, because we can easily spot and fix the inconsistent indentation. And we do use tabs.

      In short, you're not just wrong, but so arrogant you can't even see why you're wrong.

    37. Re: Understood by bug_hunter · · Score: 1

      I'm with you buddy.
      I much prefer tabs for all the reasons you describe.
      You also managed to argue quite eloquently despite the fact Zero was going on massive swearing rants at you.

      --
      It's turtles all the way down.
    38. Re: Understood by Anonymous Coward · · Score: 0

      Heh. As I thought, ya got nothin'. I win.

    39. Re: Understood by Anonymous Coward · · Score: 0

      No, I think I'll stay alive just to spite you.

      I hope you will lose some sleep knowing that I'm out here, stupidly disagreeing with you and getting work done using OMFG tabs in Python...

    40. Re:Understood by erapert · · Score: 1

      and I find out FuckwitUsed2CharacterTabs

      There's no such thing as 2 character tabs.
      Could you please clarify what you mean?

    41. Re:Understood by ebvwfbw · · Score: 1

      Sounds like a broken lex. Should eval a space and tab to the same thing.

  15. Yeah but, by Anonymous Coward · · Score: 0

    Can it run gorilla.bas?

  16. Python is for retards only by Anonymous Coward · · Score: 0

    It's no wonder we need so many H-1B and other imports if that's the state of computer science in the US...

    1. Re:Python is for retards only by Snotnose · · Score: 1

      Really? That's your response? Python is a great language with a major hole in the middle of it. Has nothing to do with retards, nor H1-Bs (many of whom I've worked with and they are not retards).

      Python fails because it's bitch to import code from SomeUnknownD00d into yours, hoping SUD was kind enough to convert tabs to spaces. And to logical spaces. If my code has tabstops of 4, and SUD has tabstops of 2, all bets are off.

    2. Re:Python is for retards only by pthisis · · Score: 1

      Python fails because it's bitch to import code from SomeUnknownD00d into yours, hoping SUD was kind enough to convert tabs to spaces. And to logical spaces. If my code has tabstops of 4, and SUD has tabstops of 2, all bets are off.

      This is wrong. SomeUnknownD00d can use whatever tab stop and mix of spaces/tabs that he wants and you can import from your code no problem, even if your tab stop is different or you use all spaces or whatever. Spacing only has to be consistent within a single block, there's no inter-module dependency there.

      --
      rage, rage against the dying of the light
    3. Re:Python is for retards only by Anonymous Coward · · Score: 0

      >import code from SomeUnknownD00d into yours

      If you mean copy&paste from web forums: What does you legal department say about that? Isn't that copyright infringement?

  17. MathWorks should be concerned by 93+Escort+Wagon · · Score: 2

    I know a few EE faculty who have moved from using Matlab to using Python. Some of the grad students think the department should take a more active role in encouraging students to do the same - or to eliminate Matlab from courses entirely.

    --
    #DeleteChrome
    1. Re:MathWorks should be concerned by 0100010001010011 · · Score: 2

      Simulink Embedded Coder. (There's a reason they won't put it on the cheap home use license).

      Mathworks is going to be fine.

    2. Re:MathWorks should be concerned by ckatko · · Score: 1

      Octave replaces Matlab, and scilab/xcos is a simulink replacement.

      http://www.scilab.org/scilab/g...

    3. Re:MathWorks should be concerned by 0100010001010011 · · Score: 1

      What hardware support does it have?

      I have yet to see a job opening for model based design using scilab/xcos embedded design.

  18. Mod parent DOWN! by Anonymous Coward · · Score: 0

    Who cares? Raspberry Pi uses Python, so its great

    1. Re: Mod parent DOWN! by Anonymous Coward · · Score: 0

      My RPi does not have Python installed, but it does have Perl and Lua. (Arch Linux)

    2. Re: Mod parent DOWN! by TimSSG · · Score: 1
      Good to know; I am thinking of trying Arch Linux and also thinking of trying Raspberry Pi. I now know I can try both at the same time. Tim S.

      My RPi does not have Python installed, but it does have Perl and Lua. (Arch Linux)

  19. Re:python is great... for programs that fit on a p by lucm · · Score: 1

    Sure, if you're writing printer drivers it's probably not for you, but for people who have to solve business problems, not technology problems, it's a good tool that allow them to do their job quickly. There's plenty of high quality math packages and it's one of the languages that is the easiest to use for database access.

    --
    lucm, indeed.
  20. What does this do that Java does not? by Latent+Heat · · Score: 1

    What does Python do for you that Java does not do better?

    Java is the new COBOL? No, Java is the new Turbo Pascal. Yes, it is compiled, but it is incrementally compiled inside Eclipse or NetBeans so the compile step is nearly instantaneous. You say C++ IDEs point out your errors, but you have to run a time-consuming compile step to see all of your errors -- not so with Java.

    Java is the new statically-typed bondage-and-discipline language like Pascal? No, Java has Reflection. You can call any method on any object provided you know its signature. Yeah, yeah, Reflection is clumsy, but you use it inside of a library. You know all those Java how-to books telling you about all of those ActionListener inner classes to intercept button pushes and menu selections cluttering up your code? Fuggedaboutit! Class java.beans.EventHandler uses Reflection to connect a button or menu selection to a method in any object you want, provided it has the correct signature. Yes this is "dynamic" and it bypasses the static type checking that your target method indeed has the correct signature, but it is exactly what Python does.

    Java is the new FORTRAN? No, Java is the new Matlab with its enormous numerical library and Command and Figure windows for immediate execution, scripting, and plotting numerical results. Matlab is Java -- the Command and Figure windows are JFrames. Matlab is a Java shell -- from the Command Window or from M-files you can create instances of any Java object and poke at them (invoke their methods). If you don't want to pay serious coin for Matlab, there is a free software package called Mathnium, written entirely in Java and offering the same kind of Command and Figure window command-shell scripting goodness.

    Beyond that, Java has proper Garbage Collection rather than reference-counted garbage. For numerical processing Java has proper arrays with optimized bounds checking instead of whatever the heck NumPy cobbles together. Java has real support for native threads running on different cores instead of whatever kind of wimpy simulation (green threads?) is offered on Python. Java has a standardized GUI library in Swing instead of what the heck are you supposed to use in Python?

    1. Re:What does this do that Java does not? by Gojira+Shipi-Taro · · Score: 4, Insightful

      Not be owned by Oracle.

      --
      "Oh my God. This is terrible. This is the end of my Presidency. I'm fucked."; ~ Donald J. Trump
    2. Re:What does this do that Java does not? by theweatherelectric · · Score: 1

      Java is the new statically-typed bondage-and-discipline language like Pascal? No, Java has Reflection.

      Pascal has reflection as well.

    3. Re:What does this do that Java does not? by Anonymous Coward · · Score: 0

      Yup came here to say this. Oracle is killing Java. Python is replacing it. Teaching my neighbor's kids to code in Python using Minecraft as a framework. They're even writing books about it.

    4. Re: What does this do that Java does not? by Bob_Geldof · · Score: 1

      NumPy is built on the BLAS/LAPACK and is way more useful for doing true numerical work. You should check out William Kahan's website for a good critique on why Java is completely unacceptable for numerical code. https://people.eecs.berkeley.e...

      --
      887321 = 337*2633
    5. Re:What does this do that Java does not? by Anonymous Coward · · Score: 0

      What does Python do for you that Java does not do better?

      less boilerplate

      class HelloWorldApp {
      public static void main(String[] args) {
      System.out.println("hello world!");
      }
      }

      vs
      print("hello world")

      Java is the new COBOL? No, Java is the new Turbo Pascal. Yes, it is compiled, but it is incrementally compiled inside Eclipse or NetBeans so the compile step is nearly instantaneous. You say C++ IDEs point out your errors, but you have to run a time-consuming compile step to see all of your errors -- not so with Java.

      Actually, that's not really an argument in its favour. Turbo Pascal is dead -- get over it. If java was the new COBOL, I could reasonably consider learning it, just to guarantee that I will have an outstandingly paid job 30 years from now, supporting and extending legacy applications written in a dead and incomprehensible alien language. And that is much closer to the truth.

      Java is the new statically-typed bondage-and-discipline language like Pascal? No, Java has Reflection. You can call any method on any object provided you know its signature. Yeah, yeah, Reflection is clumsy, but you use it inside of a library. You know all those Java how-to books telling you about all of those ActionListener inner classes to intercept button pushes and menu selections cluttering up your code? Fuggedaboutit! Class java.beans.EventHandler uses Reflection to connect a button or menu selection to a method in any object you want, provided it has the correct signature. Yes this is "dynamic" and it bypasses the static type checking that your target method indeed has the correct signature, but it is exactly what Python does.

      Actually, Java is a statically-typed bondage language. And since that has become a problem for some developers, it has been patched with reflection to bypass a strong point of a language.
      So, You are too hot in Your shirt? Don't buy our competitors, just take a knife and make some healthy holes in Your shirt.

      Java is the new FORTRAN? No, Java is the new Matlab with its enormous numerical library and Command and Figure windows for immediate execution, scripting, and plotting numerical results. Matlab is Java -- the Command and Figure windows are JFrames. Matlab is a Java shell -- from the Command Window or from M-files you can create instances of any Java object and poke at them (invoke their methods). If you don't want to pay serious coin for Matlab, there is a free software package called Mathnium, written entirely in Java and offering the same kind of Command and Figure window command-shell scripting goodness.

      Hooray, java is great because it has capacity to interact with fast libraries. Well done, You get a prize, but You have to share them with almost every other language out there.

      Beyond that, Java has proper Garbage Collection rather than reference-counted garbage. For numerical processing Java has proper arrays with optimized bounds checking instead of whatever the heck NumPy cobbles together. Java has real support for native threads running on different cores instead of whatever kind of wimpy simulation (green threads?) is offered on Python. Java has a standardized GUI library in Swing instead of what the heck are you supposed to use in Python?

      Finally, some real fucking complaints that one can argue with. Which, to be fair, is a telling sign of a java programmer -- let's write some useless things at the front, and maybe add some meat in one paragraph. Shame most of the meat stinks anyway.
      Garbage collection -- You are actually right! First time in this post, but it's a start.
      Numerical processing? Don't joke, if speed of arrays is a concern then You shouldn't use Java at all. You shouldn't use Python for it as well -- use a C/C++

    6. Re:What does this do that Java does not? by pthisis · · Score: 1

      Beyond that, Java has proper Garbage Collection rather than reference-counted garbage

      Neither the Python nor Java language defines a GC algorithm, ref-counting or otherwise, and different implementations of each use different GC methods. PyPy, for instance (which is the Python JIT implementation that most people who care about performance use) has no ref counting but uses an incremental hybrid mark-sweep GC.

      Even the CPython implementation, which does use ref-counting, combines it with a generational GC to detect cycles.

      Java has real support for native threads running on different cores instead of whatever kind of wimpy simulation (green threads?) is offered on Python

      Python has native support for OS-level threads and has since the bad old days when the 1.1 JVM only had green threads. Python also has superior support for multiprocessing (e.g. the ability to fork() without exec(), which Java historically has lacked) which means you're not stuck throwing out memory protection every time you want to have concurrency.

      You're probably conflating OS-level thread support with the global interpreter lock, which is an actual Python pain point for concurrent programming in some circumstances.

      Java has a standardized GUI library in Swing instead of what the heck are you supposed to use in Python?

      Alternatively one might say that Python has a real cross-platform library in wxpython that actually uses the native widgets rather than attempting to emulate them badly a la Swing.

      --
      rage, rage against the dying of the light
    7. Re:What does this do that Java does not? by offerk · · Score: 1

      You don't like Java's or Python's GUI programming, but what would you use?

      --
      I learn from all my mistakes, I intend to be a genius at the end of my life.
    8. Re:What does this do that Java does not? by aberglas · · Score: 1

      He is talking about junk languages like C++, which can only handle crude reference counting.

    9. Re:What does this do that Java does not? by phantomfive · · Score: 1

      Switch to VGA mode and write directly to video memory. Not to everyone's taste, but you know, give me complete control.

      --
      "First they came for the slanderers and i said nothing."
    10. Re:What does this do that Java does not? by angel'o'sphere · · Score: 2

      What does Python do for you that Java does not do better?
      Obviously all the things Java does not have:
      o dynamic typing
      o modules/functions
      o string template expansion with dictionaries

      Should I go on?

      statically-typed bondage-and-discipline language like Pascal? No, Java has Reflection
      What is that supposed to mean? Reflection has nothing to do with static typed or not ....

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    11. Re:What does this do that Java does not? by serviscope_minor · · Score: 3, Insightful

      He is talking about junk languages like C++, which can only handle crude reference counting.

      Nope. There have been "proper" GC solutions for C++ for ages, like the Bohem collector which do work. You can also write GC in C++: I watch a talk (Herb Sutter?) on writing a GC smart pointer type. So if you really really need GC, you can have it.

      OTHO it's rarely necessary because C++ produces very little garbage. About the only situation poorly handled by smart pointers is mutable general graphs. I've never actually had cause to use one of those.

      --
      SJW n. One who posts facts.
    12. Re:What does this do that Java does not? by serviscope_minor · · Score: 1

      Java is the new COBOL? No

      Yes. Being the new COBOL isn't about compiled vs interpreted or finer details like incremental compilation. It's not even in relation to whether it's a "good" language in any regard. It's that there are countless lines of Java now in huge, sprawling business systems, like COBOL. It's popular in businesses for implementing internal crud because the existing systems are in Java and Java programmers are easy to find, and it doesn't have too many awful hairy failure modes and you can pay large companies a lot of money to keep hideously obsolete systems running.

      Beyond that, Java has proper Garbage Collection rather than reference-counted garbage. . For numerical processing Java has proper arrays with optimized bounds checking instead of whatever the heck NumPy cobbles together

      Javas's "proper" garbage collection is why it doesn't work that great for the kind of stuff I do. It has to allocate everything using expensive free-store allocation, compared to C++ where the majority of objects are allocated for free on the stack. That adds huge overheads.

      --
      SJW n. One who posts facts.
    13. Re:What does this do that Java does not? by dbIII · · Score: 1

      What does Python do for you that Java does not do better?

      The science grads you need to write your code because the CS grads were shortchanged in mathematics know how to write in Python and not in Java.
      Sometimes it's not about the right tool for the job but instead the tool people know how to use, and since Python is the new BASIC it's sometimes a better fit.
      After android has had a bit more of a run (yes it's been years - but how long did it take for the average developer to be able to handle 64 bits and the idea of having more than one cpu/core?) we'll see a few more using Java.

    14. Re:What does this do that Java does not? by angel'o'sphere · · Score: 1

      It has to allocate everything using expensive free-store allocation, compared to C++ where the majority of objects are allocated for free on the stack.
      Any examples for such a program? All C++ programs I ever have seen allocate the majority of their objects on the heap.
      Using auto on the stack is only in rare cases (aka very temporarily objects) possible. Never wrote such code.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    15. Re:What does this do that Java does not? by hord · · Score: 1

      Java is the new C. Perl is the new COBOL.

    16. Re: What does this do that Java does not? by Anonymous Coward · · Score: 0

      That's slow. Use Vulkan.

    17. Re:What does this do that Java does not? by serviscope_minor · · Score: 1

      Any examples for such a program? All C++ programs I ever have seen allocate the majority of their objects on the heap. Using auto on the stack is only in rare cases (aka very temporarily objects) possible. Never wrote such code.

      Most likely all programs you've ever used. For a start, any time you declare a variable not as a pointer (though in some cases, Java can do escape analysis on those). That includes compound types like std::pair, iterators, std::complex, std::priority_queue and so on. In addition, LLVM's libstdc++ (and soon to be GCC's one?) use the short string optimization. String classes are quite large, and have something like a 32 byte array internally which is actually long enough for many strings. They only switch to heap allocation when the string gets too long. That means if you write something like:

      std::string s = "hello";
      std::string t = s + world + "\n";

      you'll never hit the free store, even for the temporary objects formed as a result of operator overloading.

      It's especially useful for maths. If you use a fixed size numerics library then all the intermediates in linear algebra expressions are stack allocated, not heap allocated. The result is extremely efficient code, which comes completely for free for the programmer.

      --
      SJW n. One who posts facts.
    18. Re:What does this do that Java does not? by TheRaven64 · · Score: 1

      The article you link to is about introspection, which is a subset of reflection. With introspection, you can do things like ask what methods an object implements or what fields it has. With reflection, you can do things like replace the implementation of a method at run time. Languages that actually support reflection often integrate it in core ways with the core frameworks. For example, one of the common design patterns in Cocoa is Key-Value Observing, where you register to receive events when a property of an object changes. If you are assigning to instance variables of an object directly, then you need to call some helpers to make this work, but if you use the normal accessors then the framework makes it automatic, by replacing the accessor with an implementation that fires the will-change notification, then calls the original implementation, and then fires the did-change notification. From the page that you linked to, I don't believe that you could implement this in Pascal.

      --
      I am TheRaven on Soylent News
    19. Re:What does this do that Java does not? by angel'o'sphere · · Score: 1

      I would say 90% of all variables I ever used in C++ are pointers. Does not matte if they are smart pointers.
      Stings are a very bad example ... they are only a datatype meant as replacement for char*

      In any real world application, e.g. a word document 90% of all objects will be heap allocated. It is impossible to load a word document on the stack, or type it in with all data on the stack.

      Sure you can now come with a pointless counterexample:
      WordDocument doc; // lives in the stack (but it subsections wont)
      File wDoc("Path/to/file"); // lives in the stack, but the byte buffer you read the document into, does not
      doc = wDoc.readAll(); // might allocate even more buffers

      Sure you can write (and need to sometimes) C++ programs where all data is allocated once and the rest is volatile on the stack, but you hardly can do that for an interactive program with UI and/or a compiler like gcc, or a DB like MySQL etc. p.p.

      The idea that C++ is superior to Java in certain areas is overrated. More correct is: in most areas they are competely the same, and for a few areas C++ offers more or better options than Java.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    20. Re:What does this do that Java does not? by Anonymous Coward · · Score: 0

      Alternatively one might say that Python has a real cross-platform library in wxpython that actually uses the native widgets rather than attempting to emulate them badly a la Swing.

      Java has SWT if you want to use native widgets.

    21. Re:What does this do that Java does not? by theweatherelectric · · Score: 1

      With reflection, you can do things like replace the implementation of a method at run time.

      You can do that with Pascal. You just assign your method implementation to one of the method properties of some object. It's the standard way of doing events in the VCL.

    22. Re:What does this do that Java does not? by ebvwfbw · · Score: 1

      Java is killing java. I remember I learned it back in the 1990s. Then they revised it such that not even the trivial examples in the book would work anymore. It's a miserable little language that should be put out to pasture.

    23. Re:What does this do that Java does not? by aberglas · · Score: 1

      The Bohem collector "uses a mark-sweep algorithm". I.e. NOT a modern GC. It presumably works by assuming that anything that looks like pointer is a pointer. Very hacky.

      C++ creates heaps of garbage. Every time you assign a string you are creating garbage. Without proper GC C++ programs tend to do a lot more copying of data structures than Java/.Net ones.

    24. Re:What does this do that Java does not? by OfMiceAndMenus · · Score: 1

      Calling a go-to standard language like C++ a 'junk language' just belies your inability to use it, and your lack of understanding of computers and programming in general.

      It's not the fastest, easiest, or prettiest, but it works and it's solid as a rock all around. The only shortcoming for C++ is poorly trained developers.

    25. Re: What does this do that Java does not? by pthisis · · Score: 1

      The Bohem collector "uses a mark-sweep algorithm". I.e. NOT a modern GC

      I'm not a C++ fan at all, but in this context this doesn't make sense. The vast majority of Java implementations (including the Oracle JDK) also use mark-sweep GC algorithms too, and many of the most cutting edge GC algorithms are mark-sweep algorithms. Boehm-Weiser uses a pretty sophisticated mark-sweep policy that is both generational and incremental.

      http://javarevisited.blogspot.... notes that:
      "Concurrent Mark Sweep Garbage collector is most widely used garbage collector in java and it uses an algorithm to first mark object which needs to collect when garbage collection triggers."

      http://www.oracle.com/webfolde... explains the current generational mark-sweep algorithm used by the Oracle JDK (standard Java).

      --
      rage, rage against the dying of the light
    26. Re: What does this do that Java does not? by aberglas · · Score: 1

      The trick for modern (post 1980s) garbage collection is that objects are *moved* in to different generations. So things that hang around are kept separate from transient objects. That provides huge improvements, as well as eliminating fragmentation. But in order to do that you need to know *exactly* where the pointers are. And that cannot be done with a crude 1960s model of programming.

    27. Re: What does this do that Java does not? by pthisis · · Score: 1

      Copy collection and other compacting approaches have some major advantages, especially decreasing memory fragmentation, but they also have major disadvantages including higher latency and loss of cache coherence. And greater overall memory use - the old "double your memory" problem is long since solved, but if you have very large objects there are still issues there. Compacting was super popular in the 1990s but many modern GCs have moved back toward more traditional mark-sweep with incremental /generational enhancements, especially in high performance NUMA environments.

      Copy collect (and related mark-compact, etc approaches) is certainly still viable in many circumstances and there have been a lot of advances in minimizing the latency impact, but calling current mark-sweep based approaches outdated or not "real" GC is nonsense.

      --
      rage, rage against the dying of the light
  21. Re:What is the interpreter written in? by K.+S.+Kyosuke · · Score: 1

    I keep seeing these articles that proudly proclaim some shiny language as being #1, and the interpreter (or a large amount of the support libraries) are inevitably written in C or C++

    ...unless the language is Common Lisp, Chez Scheme, Pharo/Squeak, or any other mature environment that is written in itself? Well of course CPython is a joke, but let's not generalize unfairly. Not everyone made the big C mistake.

    --
    Ezekiel 23:20
  22. Re:python is great... for programs that fit on a p by K.+S.+Kyosuke · · Score: 1

    1. It does not catch entire classes of problems that compile time checked languages do. 2. It is dynamically typed.

    What I've actually noticed is that different classes of languages catch different entire classes of problems, not that one class of languages avoids one or more classes of problems while not introducing no other problems relative to some other class of languages. So it's always a trade-off with respect to what problems you perceive as the most painful and for what other problems you're willing to trade them. There's no programming environment at the moment that is superior at absolutely everything. For some big problems, even your "compile time checked languages" are not likely to be perfectly suitable (see AllegroGraph).

    3. It is slow as shit.

    Well, CPython is slow as shit. Python is a language and therefore it is neither fast nor slow.

    --
    Ezekiel 23:20
  23. kind of a silly comparison by buddyglass · · Score: 1

    Does it make sense to compare Python to SQL to HTML? Completely different beasts. Seems more reasonable to zoom in on specific use cases and gauge popularity in those particular contexts. For instance, web applications. Results from Stack Overflow jobs:

    node.js: 304
    Spring: 180
    Rails: 172
    ASP.NET: 111
    django: 80

    In that particular context Python is more-or-less last place. Thing is, Python is used for plenty more than just web application back-ends. Much like Java. But there's a big difference from doing hard-core stats/science stuff with Python and doing Django dev. They both use Python, but they're completely different.

    IMO, anyone considering which language to invest in should first ask him or herself: what kind of software development do I actually want to do? Then, within that context, evaluate the contenders.

    1. Re:kind of a silly comparison by ckatko · · Score: 1

      Yeah, but then we wouldn't be having a clickbait discussion.

  24. Easy to read code by Roger+W+Moore · · Score: 1, Insightful

    The number of spaces preceding a statement determines the scope of that statement? Wow. That seems totally nonsensical to me.

    Any more than the presence of a curly bracket 42 lines earlier determines the scope of a statement in C++? I agree it seems strange at first but it is actually really easy to adapt to and by forcing correct indentation it actually makes code easier to read.

    1. Re:Easy to read code by Anonymous Coward · · Score: 0

      Well yes, but have You tried autoindending code?
      Since indentation is not a part of grammar of C++, autoindentation will always create unambiguous formatting of code (for Your preferred format, of course). Now, since indentation is a part of the language grammar in python, autoindentation only sort-of-works in python. If You start writing such a thing:
      for i in range(20):
              if a > 10:
                      print("asdf")
      and You press enter at the end of ')', where should be the next line indentation be? C++ allows You to unambiguously decide that by putting an arbitrary, but visible symbol. In fact, I enable (and encourage others to) the visualization of non-visible characters (either coloring indentation levels, or assigning a standard-ish visible characters to spaces and tabs), just to visualize indentation in python. And let's not forget -- these rigid indentation rules are broken for splitting long lines, or for splitting list comprehensions into many lines.
      It's not that I have a large problem with that while I write new pieces of code -- whether I place a } or I perform one or two key-presses to properly indent is no big deal. However, I have wasted precious minutes of my time, by doing the unthinkable crime of autoindenting my python code -- which can fuck up properly indented python code.
      How fucking difficult is adding a standard optional symbol to denote indentation information to formatters?

    2. Re:Easy to read code by Roger+W+Moore · · Score: 1

      where should be the next line indentation be? C++ allows You to unambiguously decide that

      You got that entirely the wrong way round. C++ is utterly ambiguous with the indentation - you can make it anything you want it to be. It's python where the indentation is entirely non-ambiguous. If the indentation is the same as the line above the statement is in the if statement. If it is less then it is in the loop. Most auto-indenters will start with the indentation the same and all you have to do is press delete once so if you are really pedantic enough to worry about key presses it's marginally easier since you don't need to hold down shift+[, just press delete but I can't believe that's a serious argument! If your auto-indenter is not getting that right find a better one. Python's syntax is really not that hard at all, just slightly different to what you are used to.

    3. Re:Easy to read code by Anonymous Coward · · Score: 0

      >And let's not forget -- these rigid indentation rules are broken for splitting long lines, or for splitting list comprehensions into many lines.

      Don't do that then. It's silly to split an unfinished statement - and you're not printing it on a 1980 teletype (I assume), so there's no upside either.

  25. VBScript is higher than Rust! by Anonymous Coward · · Score: 1

    VBScript is higher than Rust!!! 19 vs 22! YAHOOOOO!

  26. C? by Anonymous Coward · · Score: 0

    I havent seen any advertisements for C jobs in this part of the world. Here it raining clould, automaton passed as AI, java and automation.

    1. Re:C? by gweihir · · Score: 1

      You probably have not looked right. There are basically no "C coder" jobs, but there are a lot of "expert in xyz and can also code c". Jobs that primarily ask for coding skills in one language are just for code-monkeys that will go unemployed in the not-too-distant future when the next hype comes along.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  27. Re:What is the interpreter written in? by Anonymous Coward · · Score: 0

    There are many other compiler projects too. Not to mention sub-python language compilers like cython.

  28. Re:python is great... for programs that fit on a p by gweihir · · Score: 1

    That comment just shows you have no clue. Statically typed languages are not superior to dynamically typed ones ones. Statically typed is a bit better for beginners, but then it stands in your way. Static type safety is just an older hype from the "lets make a language that any moron can code in" crowd, and it basically never delivered on most of its promises.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  29. Re:What is the interpreter written in? by steveha · · Score: 4, Informative

    Even the Python folks tell you to write your high performance code in C or C++.

    True, but one of the smartest things Guido van Rossum did early on was to make it easy to interface C and C++ code to Python. It's why SciPy is winning so big in the sciences; it's the convenience of Python with the performance of Fortran. The libraries that do the work for SciPy are old numerical libraries that are very well optimized, very well debugged, very well understood, and very very useful. So, you can work in Fortran... or you can work in Python, enjoying the much friendlier interpreted language, and barely give up any performance vs. the pure Fortran. The hard work is done in Fortran, and the overhead of using Python to set up your calculations is trivial compared to the work of the calculations themselves.

    https://www.scipy.org/

    Python also provides a "lab notebook" environment through the Jupyter project. Nobody is going to try to use Fortran or C directly in the notebook.

    http://jupyter.org/
    https://www.datacamp.com/community/tutorials/tutorial-jupyter-notebook

    And pretty much every library you might want to use has already been glued into Python by someone. Computer vision? Running code on a GPU? Signal processing? Solving equations? Whatever you need to do, you can do it conveniently in Python and it will be fast.

    So yeah, if you write your own matrix multiply in pure Python it will be roughly 50x slower than compiled C. But nobody does that, and in the real world Python is fast enough to do real work.

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
  30. Fortran used to be very popular too by Anonymous Coward · · Score: 0

    ... and Fortran also had a horrible indentation syntax issue.

    If only they simply allowed braces to delimited sub-blocks and then Python would indeed conquer the world (perhaps/temporarily). Such a change would be perfectly compatible with the existing syntax and would only make Python more robust and better.

  31. Re:What is the interpreter written in? by LightningBolt! · · Score: 2

    > the interpreter (or a large amount of the support libraries) are inevitably written in C or C++.

    Whether a language bootstraps itself is super important when choosing a language for a project. /s

    "Well, gee boss. I realize you want us to build a web API for this internal data, and yeah we have this team of node developers, but JAVASCRIPT ISN'T SELF-BOOTSTRAPPING!!!! We must do it in C."

    > essentially a giant abstraction layer for another language?

    All computer languages are giant abstraction layers for machine language. Even your beloved C.

    --
    Old people fall. Young people spring. Rich people summer and winter.
  32. Re:What is the interpreter written in? by Anonymous Coward · · Score: 0

    I accept much of this, and we have more than 40 yeras of philosophy and practice underpinning this.

    However "developers should value developer time over machine time" is flat-out wrong. On large scale applications like I have to deal with, we are multiplying inefficiency across a 6 figure core count. This costs a lot more than I do.

  33. Static typing by aberglas · · Score: 1

    Visual Basic has (optional) static typing.

    That alone makes it a much better language than Python for any significant code.

    1. Re:Static typing by K.+S.+Kyosuke · · Score: 1

      Strict data validation is obviously useful for many applications, although many type systems are very limited and I'd think that general preconditions subsume them. Probably any language could profit from those. Nevertheless, there are large bodies of Python code that work just fine (admittedly, often because they've been written by smart people aware of their limitations, but still).

      --
      Ezekiel 23:20
  34. Re: What is the interpreter written in? by Anonymous Coward · · Score: 0

    Again, PyPy is written in Python.

  35. Don't base decisions on popularity by OrangeTide · · Score: 1

    You should use whatever language interests you. It may be that your interest is academic, hobby or for a career. For my career, I need to know C and assembler (a few different architectures). That's what pays all my bills. For my hobby interest, there are lots more good options and I dabble in FORTH, Go, Lua, and some obscure stuff. None of my needs or interest match up with Python, but that's OK, popularity doesn't translate into interest. And popularity alone isn't a great indicator of commercial value, as you can make very good pay in something obscure like Erlang versus something more mainstream like Ruby.

    --
    “Common sense is not so common.” — Voltaire
  36. Strange by Anonymous Coward · · Score: 0

    Why would C# come before Swift when it comes to mobile development?

    Why would Python come before Javascript when it comes to web development?

    Why is Java not even listed when it comes to embedded environment?

    1. Re:Strange by Anonymous Coward · · Score: 0

      Using Java on embedded systems is fucking idiotic.

  37. Re:What is the interpreter written in? by angel'o'sphere · · Score: 1

    I does not.
    It is faster and easier to generate C code with Python than with C.
    Developers are faster in Python than in C.
    And the third point is unimportant.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  38. Unrealistic and useless by CustomSolvers2 · · Score: 1

    There are multiple issues which make almost impossible to deliver accurate enough conclusions regarding the overall programming language popularity. Some examples: huge variety of environments (e.g., web, desktop, mobile, embedded systems, etc.), tasks (algorithm-focused development, GUI-focused developments, additions/extensions on existing software, automation of programming-related actions, etc.), etc. Additionally, such an outcome wouldn't make too much sense as far as all the (modern) programming languages are pretty similar. Their minor differences are only truly relevant under highly demanding conditions and when being used by experienced enough programmers, situations where generic samples of knowledge are pretty much useless (expecting experts to take seriously generic samples of knowledge while doing their work?!).

    Kind-of-useful alternatives might be: comprehensive enough surveys asking experienced programmers about the pros/cons of different languages or benchmarks telling the objectively weak/strong points of some of languages under well-defined conditions. Even in these cases, the resulting information would be pretty meaningless; similarly to what happens with any attempt at coming up with dumbed-down explanations about the reasons for specialised actions happening without wanting to get a proper understanding about the whole situation. Experienced programmers should mainly trust in their opinion (+ the conditions under which they work more comfortably). Not-too-knowledgeable people shouldn’t try to make knowledge-based decisions without the input of experts. Everyone should focus on adequately analysing their specific conditions and not expecting generic-always-working solutions which rarely exist.

    --
    Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
    1. Re:Unrealistic and useless by CustomSolvers2 · · Score: 1

      (Anectdote which has happened to me right now only slightly related with this thread)

      Although I have various versions of Visual Studio on my main computer, I usually rely on VS 2012. I have been using that exact version during the last years quite regularly, mostly when programming in .NET languages (mainly C# and VB.NET for desktop applications). During the lasts months, I have been using VS only sporadically and, when using it again, I have been seeing slight changes with respect to its previous behaviour (what I don’t recall having ever seen before with this or any other previous VS version)! It might be taking too long to start, some secondary configurations being different or even having new details which I didn’t see before (but present in newer VS versions). Note that I haven’t consciously updated this VS version since a quite long time ago (not counting the fact of installing newer-but-theoretically-independent VS versions on the same computer).

      What does all this have to do with this thread? It is about Python, a language where the difference tabs/spaces matters unlikely what happens with the .NET languages I use (I discovered what I will be telling now while dealing with C#, Class Library project type). In any case, I do have my personal preferences regarding dealing with indentation when required (bear in mind that VS takes automatically care of this issue in quite a few scenarios): I prefer tabs. I have always used tabs without any problem (= without having to look at the configuration of the editor) in all the VS versions and any other IDE/editor (e.g., Eclipse, Notepad++, NetBeans, CodeBlocks, etc.). Today, I have been unable to use tabs in Visual Studio 2012 (for the first time ever)!! I was modifying a part of an existing code and relocating it such that the automatic VS indentation wasn't working; when I pressed tabs to put it where I wanted, it did work (behaved as if I was pressing spaces)!! I insist: this has happened to me for the first time ever, after having been using Visual Studio pretty regularly for over the last 7 years and this specific VS 2012 version for over the last 2 years! I fixed it quite quickly (in Options -> Text Editor -> All Languages -> Tabs, I selected "Keep tabs"; note that I found all the options in that window unselected), but I found it really curious and worth sharing.

      --
      Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
  39. Python and Trump are winners by Anonymous Coward · · Score: 0

    Trump is the most popular President. Hillary is a loser.

  40. Never! by aglider · · Score: 2

    My religion asks me to use C.

    When I'll reach the enlightenment, then I'll move to assembler.

    --
    Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    1. Re:Never! by Anonymous Coward · · Score: 0

      Assembler? Enlightenment requires machine code.

      -- I write code, understood by computers, occasionally understood by humans.

    2. Re: Never! by aglider · · Score: 1

      1. No machine code

      2. I am not a machine

      3. I am human

      4. Goto 1

      --
      Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
  41. Re:What is the interpreter written in? by Anonymous Coward · · Score: 0

    > There are no Python to machine code compilers out there.

    There are: Pypy, shedskin, Jython, cython, IronPython.

  42. "annual report"? by Anonymous Coward · · Score: 0

    IEEE Spectrum's annual report on the top programming languages

    We get these articles once a month. Must be some other definition of "annual" than I'm used to.

  43. #1 in POPULARITY by cjonslashdot · · Score: 3, Insightful

    "Popular" != "Best"

    Also, one should choose the right language for the task. The right language for a small office task is not usually the right language for a scalable microservice. E.g., Google discovered long ago that if an app written in Ruby or Python requires 100 servers to meet demand, but the same app written in C++ or Go requires only ten servers, then there is a substantial cost difference. (Although Go is quite terrible for maintainability - do a Google search for "Go gotchas".)

    Ignore popularity. Make your own choices.

    1. Re:#1 in POPULARITY by Anonymous Coward · · Score: 0

      "Popular" != "Best"

      And it's also why I don't trust their metrics. There's way not enough javascript and PHP and other idiocy in these metrics to be accurate for the "popular" bracket. And quality? Meh. Python 3 is probably best read as python's suicide note (compare perl 6), making inertia the main claim to its viability.

      What python does have is cult-like status ("is this pythonic?") and a fair share of very devout followers. They're a more thinking kind than those worshipping PHP (q.v. "fractal of bad design") but no less devout for all that.

      Since the IEEE metrics are very probably cherry picked and so bullshit, what this really is, is (someone within) the IEEE declaring their eternal allegiance to python as a political move, by declaring it the be-all end-all of programming languages. Which is silly since we already know it is not.

      So the only way the whole thing makes any sense is as a political move against other languages. Do notice that the languages with the most vehement following other than python are curiously low in the rankings. All the IEEE-declared "runners up to python" are pretty bland, really. This is no coincidence.

  44. Which version? by Anonymous Coward · · Score: 0

    I mean, its not like they are compatible...

  45. Moooo. Follow the cow ahead of you. by Anonymous Coward · · Score: 0

    Moooo. Follow the cow ahead of you.

    Learn python to learn to code, but if you want to earn a better living, move on to some other language so you don't have to compete with someone happy to earn $5/day, not $50/hr.

    Python is a great language. It it useful for all sorts of reasons.
    It is also not-so great for many uses. It teaches some good habits, which can be carried over to other languages.

    Lots of real applications are written in Python. I like a few of them. There are GUI tools, server tools, devops tools, and 10 line quick scripts.

    None of this would alter the declaration or make someone who believes another language should be at the top.

    I would just say this ... if 50% of the world speaks 1 language, how much money is there to be made if you specialize in that language? 25 yrs ago, someone who spoke both English AND Mandarin was not so easy to find. Now that English is taught in schools around the world, most young adults have enough skill with it not to need a translator.

  46. McDonalds has be most popular burger by Anonymous Coward · · Score: 0

    Python is popular for the same reason McDonald's is, Python is convenient.
    It's not the best language by most metrics but like VB it's good for quick and dirty.

  47. 2016 called, they want their stale stories back by lucm · · Score: 1

    Yes it's a pro. npm is a fantastic resource. The fact that there is a house of cards situation going with some packages is true, but then again the same shit happens with Python.

    Been there just the other day. For some reason I had to write a quick & dirty utility to send faxes and to process incoming pdf sent by a fax reception service. At first I tried to do it with Python but I quickly got in the quicksands of old libraries that only work with Python 2, and weird libraries that required Cython and a endless stream of conflicting requirements.

    After my 3rd virtualenv and who knows how many failed cython compile, I gave up and did a quick search on npm. I found what I needed immediately, and the whole thing (sending faxes + doing ocr on the pdf scans) required less than 15 lines of code. It's not pretty but the thing works and it will do the job for the business while they're transitioning to some other process that doesn't require faxes.

    npm is awesome.

    --
    lucm, indeed.
  48. Re:python is great... for programs that fit on a p by Anonymous Coward · · Score: 0

    Ironically, one of reasons for Python's popularity is because it is a language "any moron can code in".

    And have fun maintaining code written 10 years where the objects have 0 type information about them. This may come as a shock to you, but people don't always properly document their code or write tests with adequate coverage either due to laziness or they've got a gun to their head to hurry up and get something done. That sort of thing happens all the time in The Real World. You should try spending some time in it.

  49. vba is faster by nten · · Score: 1

    VBA is about ten times faster than numpy for blas type numerical tasks. But I grant python is easy to use with nice syntax.

    --
    refactor the law, its bloated, confusing and unmaintainable.
  50. 2.7 or 3.X? by Anonymous Coward · · Score: 0

    Inquiring minds want to know.

    They are basically two entirely different languages...

  51. Re:What would you use for GUI programming? by Anonymous Coward · · Score: 0

    (a different AC than the GP)

    The market has already overwhelmingly answered this question 10 years ago.

    The browser.

    Most "apps" are now browser-based. Nobody wants to deal with your language of choice's stupid GUI libraries.
    And especially not with porting issues.

    And don't get me started on Java Swing.

    Yes, browser-based UIs suck, but they suck much less in 2017 than they did in 2007 and the trend seems to be continuing towards a more positive experience.

  52. Which version? by spongman · · Score: 1

    I'm just waiting for the upcoming release of Python v3...

  53. Re: python is great... for programs that fit on a by Anonymous Coward · · Score: 0

    On a project it might take only one moron, or one typo, to screw things up. Ideally you have processes including code review and testing to check that, but that is still not absolute certainty. Something that makes it hard for typos to screw things up helps a bit. But then C and C++ have = and == and it's possible to commit a multitude of sins in C++ with templates, although c++11 and 14 tidy up some of the syntax and make some less likely, and also to avoid RAII and deep copy errors. There's a lot of pre C++11 out there, of course.

  54. Tab stops by jabberw0k · · Score: 1

    The DEC VT52 (1975) and most other terminals and printers of the 1970s and 1980s, including the Epson MX-80, used tab stops at 9, 17, and every 8 thereafter. A relative few (VT100) had settable tab stops. The every-8 setting is still the default on HP Laserjets and practically any console or terminal emulator you can find. Emacs merely follows the standard.

  55. Still using it here by Anonymous Coward · · Score: 0

    Still works great

  56. small matrix by nten · · Score: 1

    I should qualify that these results are with small matrix math in large quantities. I suspect the ffi overhead in numpy was eating me alive. VBA either pre or jit compiled I think. Probably cleaner c interfaces. Or just how numpy is optimized. Ublas in boost is horrible at small matrix stuff. Eigen is way better for that.

    --
    refactor the law, its bloated, confusing and unmaintainable.
  57. Re:What would you use for GUI programming? by Anonymous Coward · · Score: 0

    Most "apps" are now browser-based. Nobody wants to deal with your language of choice's stupid GUI libraries.

    I used to do web design and started learning JavaScript. Then along came React, Handlebars, Angular, Knockout, and a million other do-the-same-thing-in-a-slightly-different-way frameworks that made getting a job a nightmare, because employers only wanted someone with years of experience in the EXACT framework they were using, chosen years ago by a front-end developer who had long since moved on.

    I gave up and went into web analytics. Bonus: most of the marketing/SEO people I work with are young women. :)

  58. Not Matlab? by Anonymous Coward · · Score: 0

    What, it's not Matlab? I would not have expected based on the number of Mathworks adds.

  59. global interpreter lock by kvishalk · · Score: 0

    One of the key issues with python is its global interpreter lock, making multi-threading highly inefficient. And its performance is not more than half of that of perl. Though for the purpose it is mostly used for, I don't think it matters. I liked the "one way of doing things" rather than the perl's "many way of doing things". Hate the mandatory indentation.

  60. Re: python is great... for programs that fit on a by gweihir · · Score: 1

    And there is a lot of mistakes you can make in Java, JavaScript, etc. The point is that errors that the compiler can catch because of a type system violation turn out to be mostly inconveniences that then give you typically non-exploitable run-time errors (except for DoS). Sure, that is not true for all of them, but in the greater scheme of things, static type safety does not lead to more reliable or more secure code. The problem is, as so often, that the more help you give the coder, the less skilled they become and then they overlook more and more bad things that the compiler cannot catch. So any small gain in security and reliability tends to get offset by that, possibly making things worse overall. Or to put it differently: If you leave the training-wheels on the bike, the cyclist will never really learn how to drive that thing.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  61. Vhdl more popular than Verizon ??? Really by Anonymous Coward · · Score: 0

    How can this be correct ? Very few development if done in vhdl these days.. even in Europe. I like to see how these numbers were gathered.

  62. python? Which python? by Eunuchswear · · Score: 1


    $ ls -l /usr/bin/python*
    lrwxrwxrwx 1 root root 9 Jan 24 14:00 /usr/bin/python -> python2.7
    lrwxrwxrwx 1 root root 9 Jan 24 14:00 /usr/bin/python2 -> python2.7
    -rwxr-xr-x 1 root root 3783608 Jan 19 2017 /usr/bin/python2.7
    lrwxrwxrwx 1 root root 9 Jan 20 2017 /usr/bin/python3 -> python3.5
    -rwxr-xr-x 2 root root 4747120 Jan 19 2017 /usr/bin/python3.5
    -rwxr-xr-x 2 root root 4747120 Jan 19 2017 /usr/bin/python3.5m
    lrwxrwxrwx 1 root root 10 Jan 20 2017 /usr/bin/python3m -> python3.5m

    --
    Watch this Heartland Institute video
  63. Yeah, well... by whitroth · · Score: 1

    In '94, I was a member of the IEEE computer affiliate, and the Jan, '94 issue of Computer literally presented, including the front cover, OOP as the silver bullet answer to the programming backlog.

    Oh, and OO won't ever have null pointer exceptions, etc.

    Where's my 1lb box of salt?

  64. Embedded and Mobile by Anonymous Coward · · Score: 0

    IEEE doesn't list Python as a language for embedded systems or mobile, but I run Python scripts on my iPhone and iPad all the time (http://omz-software.com/pythonista/) and I use a micro-controller running a special version of Python (https://micropython.org/). Even the European Space Agency is funding Micropython for potential use in their space program (https://forum.micropython.org/viewtopic.php?f=8&t=744).

  65. has it improved many order of magnitude??? by Anonymous Coward · · Score: 0

    Read and cry:
    http://hackaday.com/2010/10/02/decoding-mp3-in-python/

    in a nutshell: a dude wrote a mp3 decoder in pure python, code was 34 time too slow to play it real time. GOD WHY.

    1. Re:has it improved many order of magnitude??? by Anonymous Coward · · Score: 0

      It's fine for GUI but nothing else.

  66. Informative Topic by businesswindo · · Score: 1

    Really, Python is one of rock programming language which gives great support to build various types of apps and software.

    1. Re:Informative Topic by mfnickster · · Score: 1

      > Really, Python is one of rock programming language

      As opposed to Perl, which is jazzzzzz!!

      --
      "Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
  67. Re: What is the interpreter written in? by K.+S.+Kyosuke · · Score: 1

    I explicitly mentioned "CPython", because that's what most people use, given PyPy's current limitations. It's not implausible that PyPy will replace CPython in the some moderately distant future, obviously.

    --
    Ezekiel 23:20