Slashdot Mirror


Python Language Founder Steps Down (zdnet.com)

After almost 30 years of overseeing the development of the world's most popular language, Python, its founder and "Benevolent Dictator For Life" (BDFL), Guido van Rossum, has decided to remove himself entirely from the decision process. From a report: Van Rossum isn't leaving Python entirely. He said, "I'll still be there for a while as an ordinary core dev, and I'll still be available to mentor people -- possibly more available." It's clear from van Rossum's note he's sick and tired of running the organization. He wrote, "I don't ever want to have to fight so hard for a PEP (Python Enhancement Proposals) [PEP 572 Assignment Expressions] and find that so many people despise my decisions." In addition, van Rossum hints he's not been well. "I'm not getting younger... (I'll spare you the list of medical issues.)" So, "I'm basically giving myself a permanent vacation from being BDFL, and you all will be on your own." From the email: I am not going to appoint a successor. So what are you all going to do? Create a democracy? Anarchy? A dictatorship? A federation? I'm not worried about the day to day decisions in the issue tracker or on GitHub. Very rarely I get asked for an opinion, and usually it's not actually important. So this can just be dealt with as it has always been. At Slashdot, we had the privilege of interviewing Guido van Rossum, a Computer History Museum honoree, in 2013.

112 of 241 comments (clear)

  1. Comment removed by account_deleted · · Score: 2, Interesting

    Comment removed based on user account deletion

  2. Re:(sic)?? by helpfulcorn · · Score: 1

    I'm not sure why you're being modded down, I'm curious about this myself. Despise is a word, it's the proper spelling, it's not used incorrectly, it's in a grammatically correct position... so wtf [sic]?

  3. Yup by Daetrin · · Score: 3, Funny

    "Guido van Rossum, has decided he would like to remove myself entirely from the decision process"

    Definitely sounds like a dictator! Or a poor editor! Or both!

    --
    This Space Intentionally Left Blank
  4. I'm forking it! by Anonymous Coward · · Score: 1

    Please download and start using my new Python known as "Trouser Snake". It's exactly the same except
    1 without all the obstinate gray beards on the board.
    2 revision numbers will count down rather than up

  5. We'll lose the first generation by Bruce+Perens · · Score: 5, Insightful

    I'm 60, and yeah, health things creep up on you. We'll lose the first generation of Free Software / Open Source folks soon.

    1. Re: We'll lose the first generation by ChoGGi · · Score: 1, Insightful

      First gen already started dying off
      https://en.wikipedia.org/wiki/...

    2. Re:We'll lose the first generation by 110010001000 · · Score: 1

      Don't worry. Most apps are free on the App Store now. Isn't that what you mean?

    3. Re:We'll lose the first generation by Anonymous Coward · · Score: 1

      Too bad you didn't back life extension and instead chose the space bandwagon.

      At some point, people have to die. Life extension is immoral -- there are only so many people who can exist on this planet, and life extension is the old stealing from the young.

    4. Re: We'll lose the first generation by HiThere · · Score: 1

      No. Open source is rather old, but Free Software didn't happen before the revision of the copyright laws that made essentially everything copyright. And Open Source happened in reaction to Free Software.

      Things happen in time at a time for a reason...even if it isn't always clear what the reason is.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    5. Re:We'll lose the first generation by q_e_t · · Score: 1

      I hope you'll be with us a good many years yet.

    6. Re: We'll lose the first generation by Anonymous Coward · · Score: 1

      She was fantastic but not an open-source advocate...

    7. Re:We'll lose the first generation by Joey+Vegetables · · Score: 1

      Well, their/your legacy will certainly live on. There can be no doubt that FOSS has changed our world in ways that couldn't have even been imagined in the beginning. However, I'm 51 and in poor health, so probably in the same boat as you in terms of facing the inevitability that at some point this life does end for everyone. I hate that every year I have to go to more funerals, and often of people around my same age or even younger. My biggest fear is not of dying, but of outliving more and more of the people I care about.

    8. Re: We'll lose the first generation by ChoGGi · · Score: 1

      https://en.wikipedia.org/wiki/...

      I'd say she was an early version of that, but then I guess we could make the same argument about Ford.

  6. Meanwhile in Perl land... by Mal-2 · · Score: 5, Funny

    Meanwhile in Perl land, the founders have tried to step down multiple times, but nobody could read their resignation letters.

    --
    How is the Riemann zeta function like Trump rallies? Both have an endless number of trivial zeros.
    1. Re:Meanwhile in Perl land... by Bruce+Perens · · Score: 4, Funny

      Fortunately for them, there's more than one way to do it!

    2. Re:Meanwhile in Perl land... by Actually,+I+do+RTFA · · Score: 1

      Meanwhile in Perl land, the founders have tried to step down multiple times, but nobody could read their resignation letters.

      That's not true. The resignation letters included the phrase "and whomever reads this inherits our responsibilities" so everyone pretends they don't understand.

      --
      Your ad here. Ask me how!
    3. Re:Meanwhile in Perl land... by DCFusor · · Score: 2

      I think they now just call perl6 Rakudo, rather than the idiocy of having two incompatible languages of the same name like python. And it seems Larry is more or less out of implementation altogether - just a spiritual leader now.

      --
      Why guess when you can know? Measure!
    4. Re:Meanwhile in Perl land... by freeze128 · · Score: 1

      Then how do you know they tried to step down?

    5. Re:Meanwhile in Perl land... by Charlotte · · Score: 1

      All of them obfuscated!

    6. Re:Meanwhile in Perl land... by skovnymfe · · Score: 1

      Not everyone is an idiot who can't read.

  7. Salute to you Sir! by Qbertino · · Score: 4, Insightful

    Thank you for the wonderful language. Someone who devotes such significant portions of his life to the greater good deserves respect. I also hope he has long years and a healthy life to live ahead of him and can watch his baby grown and mature even further. Python is a beautiful language, IT would be poorer without it.

    --
    We suffer more in our imagination than in reality. - Seneca
    1. Re:Salute to you Sir! by DCFusor · · Score: 1

      If you make a language simple enough that monkies can do it, you'll get monkey code. Many outfits never figured this out in their quest to find a way to get morons to code for moron pay.

      --
      Why guess when you can know? Measure!
    2. Re:Salute to you Sir! by drinkypoo · · Score: 3, Insightful

      IT would be poorer without it.

      Yeah, what would we do without code samples whose flow is destroyed by copying and pasting them from webpages? That's really improved my life!

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:Salute to you Sir! by Pseudonym · · Score: 4, Interesting

      You can tell a lot of thought was put into Python, but almost exactly none of that thought came from anyone who knew more than a couple of programming languages. Python reimplements many of the mistakes of the past, and not very well.

      IT would indeed be poorer without Python. There's a whole cottage industry in getting rich from fixing broken Python code.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    4. Re:Salute to you Sir! by Anonymous Coward · · Score: 1

      It's designed that way to stop people like you who program by copying and pasting things from web pages from programming in Python. We don't want to hear you come complain when it doesn't run.

    5. Re:Salute to you Sir! by Pseudonym · · Score: 1

      Yeah, I make a living fixing Haskell code written by morons.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    6. Re:Salute to you Sir! by Joey+Vegetables · · Score: 1

      I think you meant monkies [sic].

    7. Re:Salute to you Sir! by drinkypoo · · Score: 3, Insightful

      I consider a communication medium that mutilates messages to be defective, not the messages that are being mutilated.

      If the same thing happens to a piece of C code, a) it still works and b) you can run it through indent to get back something human-understandable. Python has to exist in the real world where things like this happen. The people who defend this characteristic of Python clearly do not live where the rest of us live.

      We used character position to control flow by putting things in columns on the older computers. Then we stopped doing that, and it was a significant advance. Then Python started doing it again.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    8. Re:Salute to you Sir! by Raenex · · Score: 1

      If the same thing happens to a piece of C code, a) it still works and b) you can run it through indent to get back something human-understandable. Python has to exist in the real world where things like this happen. The people who defend this characteristic of Python clearly do not live where the rest of us live.

      It's amusing that you choose C to bash this particular aspect of Python with. In the real world, C is prone to all sorts of all-too-common human errors, including bugs that results from code not matching the semantics implied by indentation.

      C defendants have always put the onus on the programmer, the need for more training or higher quality programmers. But here you are passing final judgment on Python because of what amounts to an annoyance.

    9. Re:Salute to you Sir! by drinkypoo · · Score: 1

      C defendants have always put the onus on the programmer, the need for more training or higher quality programmers. But here you are passing final judgment on Python because of what amounts to an annoyance.

      Python doesn't stop people from writing poor-quality code, and meanwhile, this "annoyance" has caused me problems personally — before even trying to use Python for anything serious. I'm glad I learned my lesson at that point. I'm only sad that so many people have based their projects on Python, because it means that they have subjected many others to their madness.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    10. Re:Salute to you Sir! by Raenex · · Score: 1

      Python doesn't stop people from writing poor-quality code

      No language does, but it does prevent code where indentation does not match semantics. Beyond that, there are many, many C-style errors that are avoided in languages like Python, errors that traditional C apologists shrug aside and make noises about programmers not blaming their tools.

      'm only sad that so many people have based their projects on Python, because it means that they have subjected many others to their madness.

      *snort* Keep on ignoring the madness of C.

    11. Re:Salute to you Sir! by drinkypoo · · Score: 1

      *snort* Keep on ignoring the madness of C.

      C and its descendants have good reasons for their insanity, like backwards compatibility, and efficiency. Python has no good reasons for its insanity, especially since its creator should have been able to learn from other languages' failings, and from computing history. People are constantly reimplementing Unix poorly because of their failure to understand it; this is an example of the same kind of thinking.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    12. Re:Salute to you Sir! by Hognoxious · · Score: 1

      No language does, but it does prevent code where indentation does not match semantics.

      Indentation shouldn't need to match semantics. That's what punctuation is for.

      Indentation is for the benefit of humans. If your semantics is defined by something sensible like { }, if fi, begin end or whatever - doing one thing and doing it properly - then it's a trivial matter to run it though a lovely lister to get any indentation that any particular human desires.

      P.S. Bagging on the GP for choosing C as an example is pathetic. He could have pretty much chosen any other language and his point would still be valid.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    13. Re:Salute to you Sir! by Raenex · · Score: 1

      Indentation shouldn't need to match semantics. That's what punctuation is for. Indentation is for the benefit of humans.

      Err, since the presentation of the code is for humans, to allow bugs due to human-prone errors that can trivially be disallowed is nonsensical. You could keep the punctuation and disallow for the misleading indentation. Obviously Python eschewed that option, but let's not pretend that buggy code should be tolerated if we can avoid it trivially by the compiler.

      P.S. Bagging on the GP for choosing C as an example is pathetic.

      No, what's pathetic is using C as your comparison, when C is so demonstrably bad.

    14. Re:Salute to you Sir! by Raenex · · Score: 1

      C and its descendants have good reasons for their insanity, like backwards compatibility, and efficiency.

      The backwards compatibility is understandable, which basically says the multitude of bug-prone design choices are enshrined into the language forever. The efficiency reasons are overused as an excuse for a language that is pretty terrible with regards to consistency or avoidable bug-prone design decisions.

      Python has no good reasons for its insanity

      Actually, the bug-prone issues of languages like C where semantics does not match presentation is one of the reasons Python chose the path it did, so it's quite funny that you choose C to bash Python with in this example. C is considered a liberation from the tyranny of rigid indents, but it brought its own problems.

      I personally would have preferred if Python kept the braces but disallowed misleading indentation, but I'm not going to dismiss the entirety of the language over that one issue.

    15. Re:Salute to you Sir! by Hognoxious · · Score: 1

      I can "trivially disallow" nesting errors by counting +1 for each { and -1 for each }.

      Of course, you introduce a new class of errors by having space+tab and tab+space look the same but not be considered so by the compiler.

      I don't deny that C has faults but they're irrelevant to the matter at hand, which is that making indentation significant is crap. Pretend it says pascal bash if it makes you feel better. Seems you need it.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    16. Re:Salute to you Sir! by Raenex · · Score: 1

      I can "trivially disallow" nesting errors by counting +1 for each { and -1 for each }.

      You mean you're going to manually do that every time you look at a piece of code, and ignore the indentation? No, you're not. That's why bugs exist because of misleading indentation.

      Of course, you introduce a new class of errors by having space+tab and tab+space look the same but not be considered so by the compiler.

      I agree, I do not like Python's implementation. I think they should have disallowed mixing of spaces and tabs. Of course, when it comes to reading code, C (or pick your favorite language) has always had trouble with tabs vs. spaces.

      I don't deny that C has faults but they're irrelevant to the matter at hand, which is that making indentation significant is crap.

      It's relevant, because C was used to dismiss Python as a language on a single issue in which C has its own problems, including many more. If you act like a hypocrite, as "drinkypoo" did, I'll point it out.

  8. Steps down? by Oswald+McWeany · · Score: 1

    He steps down.

    If I recall my childhood correctly, he could have just slid down a python instead.

    --
    "That's the way to do it" - Punch
  9. Time to bail out by Anonymous Coward · · Score: 1, Insightful

    SJW takeover in 3....2.......

  10. out of the loop by bugs2squash · · Score: 5, Funny

    Stepping down is no good, to truly be out of the loop you have to un-indent.

    --
    Nullius in verba
  11. Unfortunately ... by fahrbot-bot · · Score: 1

    ... it's still unclear if the space (or tab) Van Rossum leaves, by removing himself from the Python Language decision process, will make things easier parse.

    --
    It must have been something you assimilated. . . .
  12. TESP: Backspaces instead of indents by goombah99 · · Score: 4, Funny

    TrouserSnake Improovmet Proposal #0001: Because of the confusion caused by the inconsistent use and display rendering of White space Tabs versus spaces, the proposed change is to use backspaces to denote block clauses. A further extension of this proposal is to center justify all lines of text. This will end the discrimination of the left justification hegemony that disenfranchises cultures the practice Left justification. Center justification is fair and "just".

    --
    Some drink at the fountain of knowledge. Others just gargle.
  13. I'm the new dictator by 110010001000 · · Score: 4, Funny

    I've taken over Python from Guido. My first edict will be to require that only tabs be used for whitespace. This will save valuable disk space. No complaints allowed. I am also assigning APK as my vice-dictator.

    1. Re:I'm the new dictator by Oswald+McWeany · · Score: 1

      I've taken over Python from Guido. My first edict will be to require that only tabs be used for whitespace. This will save valuable disk space. No complaints allowed. I am also assigning APK as my vice-dictator.

      If you're saving disk space does that mean "{" should never be placed on a new line.

      --
      "That's the way to do it" - Punch
    2. Re:I'm the new dictator by 110010001000 · · Score: 4, Funny

      Good thinking. You will be my other vice-dictator in charge of the Code of Conduct for the language.

    3. Re: I'm the new dictator by NeoMorphy · · Score: 1

      { is"left titty" and } is "right titty".

    4. Re: I'm the new dictator by Oswald+McWeany · · Score: 1

      { is"left titty" and } is "right titty".

      A good rule of thumb is you always need as many left ones as right ones .

      --
      "That's the way to do it" - Punch
  14. Re:Questions and observations by Yosho · · Score: 5, Informative

    Are there any computer languages that are well-designed and well-documented?

    "Well-designed" is purely a matter of opinion, and I'd say there are many that are well-documented. To be fair, there's a distinction between language documentation and standard library documentation, and sometimes library documentation can be a bit lacking -- but there are still many that are excellent.

    Why was there enthusiasm for Python? It seems to me that now there is less enthusiasm for Python. Is that correct?

    Python is the second most popular language on GitHub and its popularity has been climbing yearly. There are many reasons why there's enthusiasm for it, and they're mostly personal opinions, but many people would tell you the reasons they like Python are the speed of development, intuitive language syntax, a comprehensive standard library, and massive numbers of open source libraries.

    Why do programmers adopt new languages so enthusiastically? Is that an interesting hobby?

    Yes, actually, designing and learning new languages is fun for many people.

    --
    Karma: Terrifying (mostly affected by atrocities you've committed)
  15. TSIP #0002: Font usage for improved context. by Anonymous Coward · · Score: 1

    I suggest that "Bolding", "italic", and blinking font should be used to distinguish static, class, and method functions.
    ALL CAPS can be used for INTERFACES and VIRTUAL CLASSES.

  16. Re: Questions and observations by TJHook3r · · Score: 4, Insightful

    Python is incredibly popular due mainly to flexibility and ease of use. It's taught in schools so I imagine it will only keep growing although Guido leaving is a bit of a blow.

  17. Re:(sic)?? by mikael · · Score: 1, Redundant

    "sic" means mis-spelling or incorrect grammar reprinted as originally transcribed.

    --
    Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
  18. Wow! You can step down from founding something? by uCallHimDrJ0NES · · Score: 2, Funny

    This is great! I thought being a founder of something was an indelible historical event, but apparently, you can step down from being a founder! I'm going to go found some evil groups right away...once I step down, I won't be a founder any more, so I will be absolved forever. Awesome!

    --
    Cloudiot: A person who does not see offsite storage as a way to lose control over access to his or her own data.
    1. Re:Wow! You can step down from founding something? by uCallHimDrJ0NES · · Score: 4, Funny

      I don't have to defend my observation. I've stepped down.

      --
      Cloudiot: A person who does not see offsite storage as a way to lose control over access to his or her own data.
    2. Re:Wow! You can step down from founding something? by fahrbot-bot · · Score: 1

      This is great! I thought being a founder of something was an indelible historical event, but apparently, you can step down from being a founder! I'm going to go found some evil groups right away...once I step down, I won't be a founder any more, so I will be absolved forever. Awesome!

      Is that you, Papa John?

      --
      It must have been something you assimilated. . . .
  19. Re:(sic)?? by Geoffrey.landis · · Score: 4, Informative

    "sic" isn't used in the summary, so I assume you are referring to the use in the actual article, https://www.zdnet.com/article/...

    the quote is: "I don't ever want to have to fight so hard for a PEP ... and find that so many people despise (sic) my decisions."

    The word "despise" seems to be correctly spelled, so it's not clear why it should marked sic. Technically, that's just Latin meaning "thus," (implying correct as written verbatim from the original)-- but since it is correct, there's no particular reason to point that out-- it's not a misspelling.

    So, I don't know why the "sic" either.

    --
    http://www.geoffreylandis.com
  20. So Long and Thanks For The Snakes by SoftwareArtist · · Score: 3, Insightful

    The IT world would be poorer without all his work. Time for a well deserved vacation.

    --
    "I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
  21. Clearly we need an anarcho-syndicalist collective! by gestalt_n_pepper · · Score: 1

    But we're taking turns to act as a sort of executive-officer-for-the-week--

    --
    Please do not read this sig. Thank you.
  22. Re:Questions and observations by unimacs · · Score: 2

    There's not a lot that's completely new. Maybe it's just me but it seems like most "new" languages I see bear a strong resemblance to one or another old one. So why the new ones? They aim to fix some weaknesses that existed in the older languages. Python to me seems likes a reaction to the arcane and messy world of perl scripts.

    Lots of stuff is borrowed and this helps adoption rates.

    And yes, I do think a lot of programmers enjoy learning new languages.

  23. Re:Questions and observations by Pinky's+Brain · · Score: 2

    Python improved on the existing scripting languages, but it fucked up the v2 to v3 transition and lost some momentum in the process. It's still the most popular scripting language ignoring javascript, so I don't see a lack of staying power. Pascal simply lost to C, they competed in a single niche and winner takes all.

    I don't think your perception of how fast the field moves is accurate.

  24. Re:(sic)?? by Hognoxious · · Score: 1, Flamebait

    Thank you, Captain Fucking Obvious.

    The question was no doubt related to the fact that there isn't any misspelling or incorrect grammar in the quoted excerpt. I can only surmise that the Wired reject who wrote the article somehow thought it should be "despite", which wouldn't make any goatfrigging sense at all in that position.

    Or he's one of the increasing number of imbeciles who think it means "I don't agree with the preceding". The kind who also write "per say" and "add norzium".

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  25. Re:(sic)?? by orev · · Score: 1

    No, it is not used that way. It means the editor is indicating the preceeding word or phrase is either spelled incorrectly or has incorrect grammar. It's usually used in a quotation that is reproduced verbatim and copies the incorrect spelling/grammar, to let the reader know it is intentional.

  26. Re:(sic)?? by giggleloop · · Score: 1

    I'm also wondering why they used it in normal parentheses rather than the proper square brackets too.

  27. Can Lennart by Anonymous Coward · · Score: 1

    take over? I am sure he would not mind helping out or?

  28. Thank you for Python .... by kbahey · · Score: 3, Insightful

    Detractors aside, Python is a great language. Of course, like all languages it has its warts.

    But flexibility wise, it is awesome.

    Learning Python has been on my to do list for decades, and finally I got to it last year.

    Among the things I developed with it is a small web application specific to one project (a form that users fill, and get back a configuration file). This used the Bottle framework.

    I am also using Micropython on ESP8266 and ESP32 microcontrollers, and it is easy to press Ctrl-C and have a Python prompt over USB! Debugging is very easy, and the language is very easy.

    Not to mention things like Home Assistant, which is written in Python, and writing custom modules for it was pretty easy, once you got to learn HA's API.

    So Guido: thank you so much for decades of making things work for us. I wish I have learned it sooner, but better late than never ...

  29. Re:(sic)?? by mrbester · · Score: 1

    As there was no misspelling nor error in conversational grammar it can either be attributed to an editor attempting and failing to appear clever, or that the journalist is misusing it for an equally incorrect reason, such as the one GP opined.

    So, either a dumb editor or a reporter imposing bias. How can I get into this journalism lark and get paid to write crap?

    --
    "Wait. Something's happening. It's opening up! My God, it's full of apricots!"
  30. Re:(sic)?? by Black.Shuck · · Score: 4, Funny

    /. missed a trick in quoting the FA thus:

    "I don't ever want to have to fight so hard for a PEP ... and find that so many people despise (sic) (sic) my decisions."

  31. Re:Questions and observations by jeff4747 · · Score: 3, Informative

    Python has a Global Interpreter Lock problem that slows down multiprocessing significantly and it hasn't been solved.

    Hasn't been solved....except in every implementation that isn't CPython. If your code really needs to not have the GIL, run it in IronPython or Jython or any of the others.

    Also, if your code is that performance-critical, an interpreted language is not a good idea.

  32. Re:Questions and observations by Tough+Love · · Score: 2

    It seems to me that now there is less enthusiasm for Python. Is that correct?

    Python has longstanding performance issues that the project governance has declined to address, giving a big boost to more sensible/responsive projects like Go. And the mandatory whitespace is just idiotic, sorry but it is. Plus scoping is crappy and if you want to do static typing, sorry you just can't.

    --
    When all you have is a hammer, every problem starts to look like a thumb.
  33. Re:Maybe At Last It Can Have a Non Whitespace deli by Anonymous Coward · · Score: 1

    This has always been the absolute lamest complaint about Python.

  34. Better Headline by Anonymous Coward · · Score: 1

    Benevolent Dictator discovers it sucks being Benevolent. Would prefer regular Dictator title.

  35. Poorly managed language design by Anonymous Coward · · Score: 4, Interesting

    I've been using Python since the mid 2000's, and the evolution of its design has been worrying. The 2-to-3 transition is an obvious, glaring example.

    But there has also been a steady accretion of additional syntax and language-level features, leading me to think the project is taking a C++-like attitude of never saying "no" to any proposal, just throw the next one on top of the pile. Type annotations, decorators... and now this recent PEP, which changes the most basic syntactic distinction in the language (expressions vs. statements).

    Coherence and conceptual integrity are important, and each one of these changes chips away at the essence of the language and adds complication. Some amount of change is healthy, but it has to be managed carefully by language designers who are willing to say "no" and say it often. Erlang, Lua, and Go come to mind as well-managed languages that haven't lost sight of their original design.

    I don't know if Python is better off without Guido, but from a language design point of view, I don't think he's done an especially great job.

    1. Re:Poorly managed language design by 31eq · · Score: 1

      Python has reached its middle-aged bloat. There was plenty of saying "no" for the first ten years or so. It's now got a lot of features that are all useful for somebody, and a lot of cruft that's accumulated as the obvious way to do things has changed. It's becoming an advanced language for experts rather than a simple and versatile language that's quick to pick up. This isn't a unique problem and calling it poorly managed is unfair to the language designer. The time's ripe for a new language designer to come up with a new language that learns the lessons of the past two decades or so. I haven't seen it.

    2. Re:Poorly managed language design by shutdown+-p+now · · Score: 1

      It all started to go downhill when kids snuck features like "while" and "for" into our PLs, when everyone knows that a conditional with a goto is perfectly readable and works just as well.

  36. Re:Thankyou by Tough+Love · · Score: 2

    Interpreted language for performance critical system?

    The lack of clue is strong in this one. Java also has an interpreter but it light years ahead of Python in performance.

    --
    When all you have is a hammer, every problem starts to look like a thumb.
  37. Re:Grammar Nazi by DCFusor · · Score: 2

    But it would still run correctly in perl...which is why some hate and some love it. Sometimes a grammar Nazi myself, but hey, whoosh!
    After all, grammer is the difference between knowing your shit, and knowing you're shit. The whom is so obsucre here I'd wager most don't know what you're talking about. We're still working on "loose" is not the opposite of "win" around here...

    --
    Why guess when you can know? Measure!
  38. Re: Questions and observations by Bing+Tsher+E · · Score: 1

    My issue with python is the use of indentation and blank lines as a part of the syntax. That crap went out of vogue with Fortran...

    Do you know much about FORTRAN?

    FORTRAN was structured such that each line fit on an 80 column punched card. It's sort of a modern anomaly to code FORTRAN with a full screen editor. Historically, it was coded in handwriting on grid paper forms with 80 boxes for the characters of each line of code. You wrote the code by hand, then turned it in to a keypunch operator.

    Programmers who wanted to punch their own code would stick around until office hours were over to get access to the keypunch in person. There were actual manual card punch tools to slide a punch mandrel back and forth over an individual card to 'fix' an individual line of code in the deck without having to wait for access to the cardpunch. Yes, the program's primary form of storage was a deck of cards. Don't drop your deck!

    Comparing python to fortran is a bit silly.

    And yes, obviously modern FORTRAN is different.

  39. Re:(sic)?? by Barefoot+Monkey · · Score: 1

    You mean where he wrote "and find that so many people despise (sic) my decisions"?

    It means "despise" isn't his own choice of words - it's literally the actual word used by the people he's talking about to describe how they felt about some of his decisions, and not merely his interpretation of how they felt.

    The word "sic" is short for the Latin phrase "sic erat scriptum", which translates roughly to "exactly as written". It's used by writers to indicate when they are deliberately reproducing someone else's words, phrasing and spelling.

  40. Re:Thankyou by drinkypoo · · Score: 1

    The lack of clue is strong in this one. Java also has an interpreter but it light years ahead of Python in performance.

    I'm sorry, I may have missed something, but I thought what Java had was a JIT compiler, not an interpreter.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  41. Re:Thankyou by angel'o'sphere · · Score: 1

    but I thought what Java had was a JIT compiler, not an interpreter.
    The interpreter is the JIT compiler. It only compiles stuff when it measures it should be compiled. In a long running application that is obviously nearly everything.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  42. Re: Seek & DESTROY - Metallica by Anonymous Coward · · Score: 1

    Your partial defense of APK is misguided. That is, indeed, him making those posts. I'm almost certain of it.

    When APK is impersonated, he doesn't hesitate to posy angry replies about it. He's done nothing of the sort here. The "shekelboy" posts and almost certainly the long-winded anti-semitic replies are APK's doing. Just a few hours ago, he was replying to posts about impersonation with "shekelboy" posts, including in response to actual and obvious impersonation of him.

    It's unfortunate. I've made the same defense of APK at times that you have. Many people have done so, attributing his actions to mental health disorders. As far as I'm concerned, he's no longer worthy of any such defense.

  43. Re: Questions and observations by Pseudonym · · Score: 2

    Or to put it another way, Python is the 8-bit interpreted BASIC of the 21st century.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  44. Re:Questions and observations by Pseudonym · · Score: 2

    Remind me never to hire you.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  45. Re:Questions and observations by Pseudonym · · Score: 2

    You can't have a high level language that supports threading and is also easy to use unless you have a GIL. Or at least, if we presume that you absolutely have to have a C/C++ interface for libraries, then you need a GIL to have threads.

    Rubbish. Even for extremely simplistic implementations, you don't need a GIL where a "global foreign function interface lock" would suffice.

    Most C and C++ libraries are thread safe (for some definition of "thread safe") these days, and any non-toy language with a C foreign function interface can cope with this just fine. This is doubly true of declarative languages, which tend to go to a lot of trouble to ensure that you can call pure functions in C with no locking overhead.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  46. Re:Questions and observations by 110010001000 · · Score: 1, Funny

    Don't hire me. I've seen your sig.

  47. Re: Questions and observations by HiThere · · Score: 1

    You could also add a macro preprocessor. I've considered doing this for documentation purposes, but actually Doxygen is good enough. Sphinx, however, was a terrible choice, and pydoc generates eye-tearingly horrible html. (This is a pity as it's ancestor for Python 2, Epydoc, was my favorite documentation tool for Python. )

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  48. Re:Questions and observations by Pseudonym · · Score: 4, Interesting

    And the mandatory whitespace is just idiotic, sorry but it is.

    Python just implements it badly. Nobody complains about mandatory whitespace in Haskell, partly because it doesn't have Python's rough edges, and partly because it isn't strictly mandatory.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  49. Re:Maybe At Last It Can Have a Non Whitespace deli by HiThere · · Score: 1

    Well, with a modest preprocessor you can already do so. Just pick an appropriate unicode character, say U+00B7, to use as your spacing character, and have the preprocessor change it to tab (or spaces, your choice).

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  50. Re:Questions and observations by Pseudonym · · Score: 1

    Let's just say I've had that sig for a while.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  51. Re:Maybe At Last It Can Have a Non Whitespace deli by Pseudonym · · Score: 1

    I agree. Of all the hurdles preventing anyone from shipping production-quality code in Python, this is by far the lowest.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  52. Re:Thankyou by Pseudonym · · Score: 1

    A typical Hotspot VM has something like three interpreters and a JIT compiler. Modern Java is essentially designed to waste RAM.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  53. Re:Grammar Nazi by Actually,+I+do+RTFA · · Score: 1

    It's my fault. I should have included "(sic)". It wasn't my error, but in the letter I was quoting!

    --
    Your ad here. Ask me how!
  54. Re:Questions and observations by steveha · · Score: 2

    Python improved on the existing scripting languages, but it fucked up the v2 to v3 transition and lost some momentum in the process.

    It's true that the 2 to 3 transition didn't go as smoothly as hoped. I'm not sure I agree that the Python devs messed up the transition. Maybe nobody could have done a better job, and I do think the changes were worth doing.

    Python 3.x was an opportunity to make "breaking" changes to Python: to make changes that would break old Python 2.x programs. Using this opportunity, the Python devs cleaned up the language.

    Some method functions returned lists, others returned iterators... now in Python 3.x everything returns iterators, because it's trivial to turn an iterator into a list. So your programs are "lazy" by default, and there's less cognitive overhead. Win/win.

    I'm fond of the change where 1 / 2 returns 0.5 instead of returning 0. It's a bit surprising that integer division can return a float result, but it's even more surprising to most people for nonzero numbers to produce a zero result.

    I'm also fond of the way Python 3.x forces I/O to handle Unicode conversion, so a 3.x program either fails instantly the first time you test it or else runs reliably. The Python 2.x "feature" of letting you ignore Unicode, then randomly blowing up later, was enough to make me eager to make the switch.

    So IMHO the changes were well thought-out and I approve of them. But they were changes. The real problem is that Python 2.x is a pretty sweet language, so staying with it was pretty attractive. There would be nonzero pain to migrate to Python 3.x, so doing nothing was an attractive choice.

    But over time the various popular libraries were converted to be Python 3 compatible, and the Python devs kept adding improvements, and now basically everyone agrees that Python 3.6 and newer are the best Python versions ever.

    It's free software and someone could have forked the sources for Python 2.7 and backported features from Python 3.x; but nobody loved Python 2.x that much. Grumbling and inertia yes, actual work to keep Python 2.x viable no.

    Pascal simply lost to C, they competed in a single niche and winner takes all.

    I agree 100%. There was nothing Pascal did that C couldn't do, and do better. In the early days C was much less type-safe but that was fixable and has been fixed.

    C is the king of the third-generation languages and is unlikely to be displaced in the foreseeable future.

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
  55. Re:Questions and observations by steveha · · Score: 2

    Python has longstanding performance issues

    Fair enough. It's much slower than even Java, let alone languages like C. (But it can use libraries written in compiled languages like C and Fortran so it can be extremely fast in specific domains.)

    that the project governance has declined to address

    You say that as if the Python devs are refusing to do something that would be easy. The latest versions of Python are faster and more memory-efficient than earlier versions of Python. The design of the language makes it hard to really optimize so there aren't easy performance gains just waiting for someone to make them.

    The fastest Python is PyPy, and that's fast because it has a JIT that compiles your code's hot spots into native code. It isn't that fast until the JIT kicks in.

    And the mandatory whitespace is just idiotic, sorry but it is.

    You're entitled to your opinion, but please don't give your opinion as if it were a fact. Some people, such as me, like the fact that if code looks like it's part of a block, it actually is part of a block. I don't think that's "just idiotic". You're free to hate it and I won't try to convince you.

    Plus scoping is crappy

    I have no idea what you are complaining about here.

    if you want to do static typing, sorry you just can't.

    Actually, you can. Python 3.x supports "type annotations" which let you document the types that various values should be, and there are static checkers that make sure your programs conform to the annotations.

    The static checking is not built-in to Python itself, so you could say that Python "enables" static type checking without "providing" it. But to say that "you just can't" do it is a mistake.

    By the way, the history of type annotations is IMHO interesting. Guido van Rossum found out that multiple large organizations (Google, Microsoft, etc.) were making their own ad-hoc static type annotations, requiring standardized comments that documented the types. He applied the principle that "there should be one, and preferably only one, obvious way to do it" and added type annotations to the language spec.

    The static type checker still works in Python 2.x if you use appropriate comments.

    http://mypy-lang.org/

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
  56. Big legacy projects by DrYak · · Score: 1

    Also, if your code is that performance-critical, an interpreted language is not a good idea.

    Yup, try convincing ESR about that.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  57. Re:(sic)?? by arglebargle_xiv · · Score: 1

    van Rossum is Dutch, and they spell it as "verachten".

    Yeah, of course, the Dutch would say "verachchchchchten", and not something more hygienic like "gardziÄ".

  58. Outlasted by Python 2.7 by DrXym · · Score: 1

    Perhaps working on Python wouldn't be so rancorous if the project was pulling in the same direction.

  59. Re:Questions and observations by Joey+Vegetables · · Score: 1

    Everyone is slamming this comment, and I myself don't fully agree with it, but I think the OP has a point. If you have a lower-level language that can scale up to a degree, *and* a higher-level language that can interface with it, then you get the best of both worlds. Where I disagree is that I don't know that C, C++, or Python are always going to be the best choices in all circumstances.

  60. Re:Questions and observations by apoc.famine · · Score: 1

    Why do programmers adopt new languages so enthusiastically? Is that an interesting hobby?

    Why are you on this site? How did you get here? Why do you stay?

    I'm really serious. How did you become a /. poster/reader with a moderately low UID while seemingly being totally unfamiliar with programmers?

    --
    Velociraptor = Distiraptor / Timeraptor
  61. Re:Questions and observations by dbrueck · · Score: 1

    Yeah, overall I'm not a fan of the GIL, but I think this kinda misses a some of what the GIL provides - it's a bit more than thread safety inside a function library or around an FFI call. The GIL makes it so you can't corrupt the internal state of the VM including high level data structures like dictionaries and objects.

    For example you can have any number of threads concurrently reading and writing to dictionary, sets, custom objects, arrays, etc. without any sort of explicit locking and it doesn't crash, there are no memory leaks, and your data structures don't get turned into corrupted garbage. And this happens automatically with pure Python code, regardless of whether it's built in, you wrote it, or it's from some third party.

    So the cost of this feature is crazy high - sometimes too high - but it's not without its benefits.

  62. Re:Questions and observations by dbrueck · · Score: 1

    Your 2->3 experience sounds similar to mine... lots of good changes were introduced with 3.x. I stayed with 2.x for a long time because it just worked really well. And I still have a few projects that are on 2, but at some point when starting a new project I just used Python 3 for it, and by then every library I needed had already been converted.

    Honestly, the biggest hurdle was muscle memory on debug prints (statement vs function call), haha.

  63. (sic) indicates the ellipsis was in the original. by thebiss · · Score: 1

    Otherwise the reader might think something was edited out of the quote for brevity.

    --
    Beware: I believe all are created equal, and have the right to life, liberty, and the pursuit of happiness.
  64. Re:Thankyou by Tough+Love · · Score: 1

    Thankyou for stepping down Guido. Now maybe something can seriously be done about Python's crappy performance.

    Yah, whoever modded that down can consider themselves part of the luddite mafia dedicated to keeping Python crappy. Proud of yourself.

    See, this is why Python still sucks.

    --
    When all you have is a hammer, every problem starts to look like a thumb.
  65. Re:Questions and observations by ath1901 · · Score: 1

    For me it was the relative imports. I want to shift to Py3 but haven't. At first it seemed like a great thing but then it turns out you must distinguish between scripts and modules. You get this long list of ways imports can either work or not work depending on things.

    First, I like relative imports. I move stuff around (files and directories) and I don't want to update imports more than necessary. If moving stuff is hard, I don't do it and the code suffers.

    Second, I like adding small run scripts at the end of all files which run the unit tests (or manual tests or both). This way I can configure most simple text editors to just "execute the current file" to run the relevant tests. No IDE necessary. Also, it provides a direct link between the module and the module specific tests so I don't run more tests than necessary. Most IDEs and test runners can't do that with just a quick keyboard shortcut but tend to run all tests or require a lot of key pressing to "select" the right tests.

    In python 3, I can't combine the two wishes above. Ten years after Py3 and I still haven't decided what to do about it. Either, accept always using absolute imports OR never execute a module. Guido said at some point that mixing executable scripts with modules was an antipattern but I do not agree. It means the language can do things you would normally need an IDE for. Batteries included.

    All in all though. Python is fantastic and the proof is in the libraries from pandas to all that webstuff. Thanks Guido!
     

  66. Re:Questions and observations by Aighearach · · Score: 1

    Thank you for the good explanation of additional details.

    Just wanted to reiterate that the cost is only high, and in fact only even exists, when using threading within a single process; using the unix style of fork/exec leaves the GIL not even having a cost at all.

    Generally the language designers assume that if you care about performance, you can do it the old way painlessly, but if you don't care about performance, you shouldn't even have to worry about it. And a GIL provides for both of these situations.

  67. 31 years too late by Hognoxious · · Score: 1

    Someone invent a time machine and go back and convince him that those little sideways moustache things are pretty cool. Look at the way the little ends curl round, like they're trying to contain something betwen them.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  68. Re:Questions and observations by Tony+Isaac · · Score: 1

    Are there any computer languages that are well-designed and well-documented?

    C# might not be popular on slashdot, but it is well-designed and incredibly well-documented.

  69. Frustrated, are we? by Qbertino · · Score: 1

    Shit gets produced in every language. In java or scala you'd be dealing with some pretentious douchbags insisting on doing things this way or that and failing to see the bigger picture.
    That's why languages like PHP have and installbase others can only dream of. And if you think Python has bad code you don't know nothing.
    I've been doing PHP for a living in the last 6 years or so and I'm probably going to stick with it because there's work to do and shit to clean up at every streetcorner.

    As Strousstrub says: There are two types of languages: those that everyone complains about and those that nobody uses.

    --
    We suffer more in our imagination than in reality. - Seneca
    1. Re:Frustrated, are we? by DCFusor · · Score: 1
      I basically agree - I don't know nothing, I know quite a lot. I'd agree that python isn't the winner for bad code, by a long shot - it'll catch up due to sheer popularity soon enough. Yes, I've seen plenty PHP..."My eyes! The goggles do nothing!"
      But one size doesn't fit all either. Loose typing, by whatever name (I like duck typing) works out some places nicely, and horribly in others. Not everything is text being served, some of us do scientific work, for example. Loose typing and poor coding along with unicode even mess up text, allowing a url bar to display look-alike characters to phish with.
      Languages that appear to promote cleverness are widely misused out of some motivation to seem clever to oneself, or to ensure job security - thus the hate for perl for example, even though that same freedom can be used to make it one of the clearest languages to read and understand if you're motivated that way (I am). But bit-fiddle in a loosely typed language? Try it sometime - and try taking say, one of Adafruit's hardware drivers in python and translating it into any other loosely typed language with ever so slightly different rules...maybe they should have used a strongly typed language so at least it'd be clear what the shuffling is doing?
      But no, if you project that the whole world only does what you do (eg what you can do in say, PHP which isn't exactly your standalone number cruncher and can't run on a client if you're doing client-server, which you may not be doing) - you're the frustrated one. I say use the right tool for the job at hand. It will rarely be say, lisp...it will sometimes be C, it'll have to be (ugh) JS if it has to run in a browser, it might even be perl if it runs in a server or needs to act as glue between big packages in C/C++... It'll be what fits your problem space. Trying to use the same tool for everything...well, that's just not going to work out, even for Rust, which solves a problem I've never had - or my employees - because we pay attention to memory and thread safety and allocation, and neither need nor want restrictions that might prevent us from doing it right.
      .

      But I digress, you said you'd be sticking with PHP because there's so much bad code in it for you to fix, job security and all that. Doesn't that agree with what I said above that you replied to? All those low paid beginners writing web sites for their uncle wrote that nasty stuff, or maybe some adult who is getting by pretending competence in an area they should be avoiding - or learning to only write checks they can cash.

      --
      Why guess when you can know? Measure!
    2. Re:Frustrated, are we? by DCFusor · · Score: 1
      FWIW, install base means nothing - a popularity contest is often misjudging value. Else MS Windows is the best ever and for all time! And all use-cases.
      Deciding such things by stack overflow or GitHub...a silly idea. The language most represented in the first is the one people have the most questions about. Which means either entitled shits who won't read a book or try things on their own, or some defect in the language itself.
      Github is for people who can't do their own version control, do nothing worth keeping to themselves, and is most often used as a resume because they're hoping against hope to find a better job than the one they're in or fear they're going to lose that one.
      .

      What does that have to do with good code or good languages to write it in?

      --
      Why guess when you can know? Measure!
  70. Sic was sic [Re:(sic)??] by Geoffrey.landis · · Score: 1

    "sic" can be used to indicate that the reporter disagrees with the preceding assumption.

    Yes, I suppose. Roughly, it might be translated "yes, he really said exactly that", so I suppose you could infer that to include some modicum of disagreement.

    --
    http://www.geoffreylandis.com
  71. Pre-commit hook fixes indent in all but Python by tepples · · Score: 1

    In the real world, C is prone to all sorts of all-too-common human errors, including bugs that results from code not matching the semantics implied by indentation.

    If you regularly collaborate over lossy channels that modify whitespace, set up a pre-commit hook in your version control system that checks and repairs indentation. This is possible for C, PHP, Java, C++, Pascal, or JavaScript, but not for Python.

    1. Re:Pre-commit hook fixes indent in all but Python by Raenex · · Score: 1

      And how many people actually run these tools? There's something to be said for having compiler-checked semantics.