What I would like to point out that one of his examples contrasting Python's hostility and arrogance to Ruby's friendliness is not a very good one. See, Python's interactive interpreter does not quit if you write 'quit'. Rather, the interpreter suggests that you should type Ctrl-D instead, which is extremely silly, I agree. It's like: "I know that you want to get out of here, but you need to say 'please' first"! [The phrase courtesy of Fredrik Lundh.]
Yep, you guessed it, Ruby's interpreter does quit from a 'quit'.
But.
I actually decided to give a little go at Ruby for a while and, of course, just typing 'ruby' on the command line should start an interactive interpreter, right? Nope.
[jajvirta@mamba jajvirta]$ ruby quit wtf? -:2: InterruptRuby doesn't even suggest an alternative to quit from this "interactive interpreter", which, of course, turns out not to be the interactive interpreter. Okay, then, what's it called? After a quick web search I find out it's
irb. Things should get
pretty easy after that, right? Nope.
[jajvirta@mamba jajvirta]$ irb
irb(main):001:0> help
NameError: undefined local variable or method `help' for main:Object
from (irb):1
irb(main):002:0> ?
irb(main):003:0> /?
irb(main):004:0> h
(irb):2: warning: invalid character syntax; use ?\n
SyntaxError: compile error
(irb):2: syntax error
(irb):3: unterminated string meets end of file
from (irb):3
What the fuck does all that nonsense mean then? [1] Give me a
break, Yegge, and give us better examples!
[1] Well, I do actually understand most of it, but I'd still like to have an interactive help of some sorts. And most of newbies would just get confused about that all.
...
Of course, Steve's still right about the general attitude, which is painfully clear in a python-dev mailing list thread initiated by Fredrik Lundh wanting "a quit that actually quits". There are some Involved Technical Details(tm) that prevent any simple technical solutions to the problem, but the general attitude of several people, including Guido van Rossum himself, is that the current behavior is not a bug.
Update: Ian Bicking points out that in Python 2.5, "quit" will display "use quit() to exit", which doesn't satisfy the "do what I told ya" requirement, but is good enough given the limitations and ugly corner cases surrounding making plain "quit" really quit.