On Sun, 13 Oct 2013 09:37:58 +1100, Chris Angelico wrote: > This is design. Python has a king (Guido). It wasn't built by a > committee. Maybe you won't like some aspect of Python's design, but it > has one, it's not just sloppily slapped together.
While I agree with your general thrust, I don't think it's quite so simple. Perl has a king, Larry Wall, but his design is more or less "throw everything into the pot, it'll be fine" and consequently Perl is, well, *weird*, with some pretty poor^W strange design decisions. - Subroutines don't have signatures, you have to parse arguments yourself by popping values off the magic variable @_ . - More special variables than you can shake a stick at: @_ $_ $a $b @ARGV $& ${^ENCODING} $. $| $= $$ $^O $^S @F and many, many more. - Context sensitivity: these two lines do very different things: $foo = @bar @foo = @bar and so do these two: my($foo) = `bar` my $foo = `bar` - Sigils. Sigils everywhere. - Separate namespaces for scalars, arrays, hashes, filehandles, and subroutines (did I miss anything?), co-existing in the same scope, all the better for writing code like this: $bar = &foo($foo, $foo[1], $foo{1}) If you think that all three references to $foo refer to the same variable, you would be wrong. - Two scoping systems (dynamic and lexical) which don't cooperate. - Strangers to Perl might think that the way to create a local variable is to define it as local: local $foo; but you'd be wrong. "local" does something completely different. To create a local variable, use "my $foo" instead. More here: http://perl.plover.com/FAQs/Namespaces.html Likewise Rasmus Lerdorf, king of PHP (at least initially), but he had no idea what he was doing: "I had no intention of writing a language. I didn't have a clue how to write a language. I didn't want to write a language," Lerdorf explained. "I just wanted to solve a problem of churning out Web applications very, very fast." http://www.devshed.com/c/a/PHP/PHP-Creator-Didnt-Set-Out-to-Create-a-Language/ -- Steven -- https://mail.python.org/mailman/listinfo/python-list