[Python-Dev] vox populii illiterati

Guido van Rossum guido@python.org
Sat, 08 Feb 2003 13:30:21 -0500


> I very much appreciate Guido putting forward a PEP on if
> expressions, but I must say the idea of letting c.l.p 'vote' on it
> is unwelcome. Voting only makes sense when an electorate is educated
> enough to properly understand the proposition and its consequences;
> the discussion so far makes clear that that isn't true. Programming
> languages need to be designed, not agglutinated. (Otherwise you get
> Perl and Fortran 2000 (:->)

Part of my "cunning plan" is to show that indeed this doesn't work.
I'm hoping you will forgive me this once-only Macchiavellian move. :-)

> I think it is fair to say that being the head designer of a language
> can lead to frustration at times; I had to endure it on a much
> smaller scale and it was very hard to keep patiently explaining how
> the features had to fit together, and how they had to be both
> parseable and implementable and learnable, and that not every little
> difficulty is worth a language feature.

I admit I've lost some of my patience.  Showing that there is immense
resistance to if-then-else expressions (even if there is also a lot of
pressure to add them) would make it easier in the future to explain
why they aren't there.  Or vice versa.

> In the cases of several of the features adopted recently, a quick
> inspection has initially led me to believe that the feature was not
> interesting but study showed that it was. I just don't think you can
> delegate this kind of study to a group that is mostly inexperienced
> even at programming much less language design.
> 
> I want my BDFL. As Davy Crockett said, "Be sure you're right, then
> go ahead."

But in this case, I can't made up my mind!  And as long as I haven't
made up my mind, I won't add it.  Hmm...

Well, I think right now I don't need if-then-else expressions enough
to want them.  I just examined a fairly large (> 1300 lines) module
that I recently spent a lot of time with, looking for places where I
could use it.  I found a dozen places where there was an if-else
construct with similar one-line then and else branches that could
easily be rewritten as a single line using an if-then-else expression.
But I'm not at all convinced that the resulting code is any more
understandable (even though it's shorter by three dozen lines).

--Guido van Rossum (home page: http://www.python.org/~guido/)