For review: PEP 308 - If-then-else expression

Andrew Dalke adalke at mindspring.com
Sat Feb 8 14:35:14 EST 2003


Dale Strickland-Clark:
> I really don't have much sympathy for that argument. If you want to
> understand a language, you will need to know it.
>
> You can't expect to pick up a few basic terms and hope to understand
> everything.

I promote Python for computational biologists and chemists.  These
are people who use computers for their job,and do a bit of programming,
but do not generally consider themselves to be programmers.

I promote Python because it's a language which is easy to use and
understand by a broad range of people.  Scientists can start using
it with little effort, PRECISELY BECAUSE they need only to pick
up a few basic terms and can hope to understand everything.

And yet Python is also enjoyed by expert programmers, because
it is a very powerful and expressive language.  This means that
as a scientist gets more and more proficient at Python and writes
more and more complex programs, there is no need to switch to
another langauge to get more expressive power.  It also means that
code written by the scientist can (realtively easily) be integrated into
the main codebase developed by the software team.  And it means
the software developers can more easily help a scientist with a bit
of tricky code.

The more and more complex Python gets, the harder it is for people
who don't want to be software developers to learn how to use it.

In the lab, code gets swapped around, and passes on through
several generations of grad students and postdocs.  It is GOOD
that there is only a limited vocabulary from which to draw.  Otherwise
is becomes harder and harder to figure out someone else's code,
especially since the people I'm talking about don't want to learn
the whole gamut of the language and prefer to stick to a subset of
terms which gets things done.  This leads to dialects and leads to
a lack of the ability to share code and learn from others.

> You'd be criticising novellists next for using words that aren't in
> your vocabulary or refusing to learn French because people will use
> words you haven't learned yet.

Like Stephen J. Gould?  :)

Not the same.  Part of the enjoyment of reading those books is
the use of more complex language.  And most books are read by
far fewer people than use Python.  And it is hard and does take
effort to read books in other dialects.  Most people will decide
not to read a book if it's too hard to read.  I would rather not that
people ignored Python because it has become too hard to use.

And those people won't criticise the author, they'll say "it's too
hard for me", placing the blame on themselves.

As for French, my Spanish is bad, and my German and Swedish much
worse ... because I don't know a lot of vocabulary.  When I try to
read or communicate in those langauges, I realize just how much
work it is to learn a language, which leads to frustration.  I do know
people who learn human langauges for fun, but I am not one of them.

> Will people grow up about this? How hard is it to understand a bit of
> computer code?

Quite.  I've tried to figure out Lisp several times.  I understand it in
the abstract, but I still can't figure things out looking at the code.

I've had to read home-brew programming languages were I couldn't
even figure out why certain things existed.  ("Well, 5 years ago we
needed this special case for the tokenizer/parser/optimizer and it was
easiest to put a flag here").

It's even worse for those in my target audience, who do not want
to be good programmers but would rather be good scientist and simply
need to do some progamming as part of the job.

                    Andrew
                    dalke at dalkescientific.com







More information about the Python-list mailing list