3 ms·
Python is the language designed by a guy that did not understand the difference between tail-call optimization (a general, widely useful optimization) and somet
by aryastark 13y ago
Python is the language designed by a guy that did not understand the difference between tail-call optimization (a general, widely useful optimization) and something he made up as a strawman, called "tail-recursion elimination."
PHP began life as the antithesis of "goto considered harmful." The idea to embed a language directly into a mix of HTML/CSS/JS was just profoundly awful. Yet we still bash "goto" as the spaghetti monster. I guess we just can't detect irony today.
To your #1 point, I'm going to have to say there are a large number of powerful, well-funded, well-marketed idiots in this industry. If languages really mattered, we would all be using Scheme, ML, or Haskell or something. People are just now discovering Erlang, thanks to WhatsApp and Facebook. Despite Erlang being a year older than Perl. But Perl didn't make recent headlines for a $19bn sale, so...
- gohrt 13y agoCalling it "Tail-call optimization" shows a lack of understanding. "Tail-call elimination" is no mere optimization, it is an operational semantics that means certain operations happen in guaranteed bounded space instead of unbounded space, and therefore are guaranteed to be possible to execute if some simple initial conditions are met, vs virtually guaranteed to crash the program at arbitrary moments.
- yetanotherphd 13y agoPython was invented by an extremely talented programmer who didn't happen to know one particular thing. It's not the minutiae of theory that make Python so popular, but it's overall design philosophy geared towards ease of use and readability. Tail call elimination is more about allowing a particular style than anything else. Python encourages a different style, so why should Guido care about tail call elimination?