Do you feel bad because of the Python docs?
Rotwang
sg552 at hotmail.co.uk
Tue Feb 26 16:26:24 EST 2013
On 26/02/2013 12:54, Steven D'Aprano wrote:
> One week ago, "JoePie91" wrote a blog post challenging the Python
> community and the state of Python documentation, titled:
>
> "The Python documentation is bad, and you should feel bad".
>
> http://joepie91.wordpress.com/2013/02/19/the-python-documentation-is-bad-
> and-you-should-feel-bad/
>
> It is valuable to contrast and compare the PHP and Python docs:
>
> http://php.net/manual/en/index.php
> http://www.python.org/doc/
>
> There's no doubt that one of PHP's strengths, perhaps its biggest
> strength, is the good state of documentation. But should we feel bad
> about Python's docs?
I strongly disagree with most of what the author writes. To start with,
there's this:
Let’s start out with a simple example. Say you are a developer that
just started using PHP, and you want to know how to get the current
length of an array. You fire up a browser and Google for “PHP array
length site:php.net”. The first result is spot-on, and one minute
later, you know that count($arr) will suffice.
Now let’s say that you wish to do the same in Python. In this case,
you would Google for “Python list length site:docs.python.org”, and
the first result is… a page with several chapters on standard types?
It seems to me that this is /completely/ the wrong way for a developer
who's new to Python to go about learning the language. If you don't know
enough Python to be familiar with len(), the sensible thing to is not to
try coding by finding out individual language features as and when you
need them, but to read the tutorial, systematically from start to
finish. This list is continually being bombarded with questions from
people who tried the former only to become stuck when something didn't
work the way they thought it should (I've been guilty of this too),
because knowing vocabulary is not the same thing as knowing how a
language works. The majority of such questions could have been answered
by simply reading the tutorial. More still could be answered by reading
the language reference, which really isn't very long.
That's not to say that experienced users don't need to look things up,
but then why would one restrict a web search to docs.python.org? Almost
every question I've had about how to do something in Python has already
been asked at StackExchange, and Google will find it.
When you Google for something, you will end up on a page that
explains a lot of things, including what you’re looking for. But how
are you supposed to know where on the page it is, or whether it’s
even on the page at all? The problem here is that the particular
operation you are trying to find documentation on, does not have its
own page.
And the solution is Ctrl-f.
The general norm for the Python community appears to be that if you
are not already familiar with the language, you do not deserve help.
If you do something in a less-than-optimal way, other Python
developers will shout about how horrible you are without bothering to
explain much about what you did wrong. When you ask out of curiosity
how a certain thing works, and that thing is considered a bad
practice, you will get flamed like there’s no tomorrow – even if you
had no intention of ever implementing it.
This is not my experience at all. Even when asking questions that I
could have answered myself if I had RTFM, I've received helpful advice
and nothing that could be construed as a flame. I don't know how this
compares to other programming language communities, but it's much
friendlier to newcomers here than, say, sci.math (whose competent
regulars are understandably suspicious of people asking idiotic
questions, given how many of those people turn out to be cranks).
PHP solves [ambiguity] by having examples for every single function
and class. If you’re not sure what is meant with a certain sentence in
the description, you just look at one of the included examples, and
all ambiguity is removed. It’s immediately obvious how to use things.
Python solves this by having an interactive interpreter. The tutorial
goes to the trouble of pointing out that "[i]t helps to have a Python
interpreter handy for hands-on experience".
If you are an experienced developer, then you are most likely in a
very bad position to judge how beginner-friendly the documentation
for a language is.
[...]
Most of all, accept that your personal experiences with Python, as an
experienced developer, are not worth very much. Listen to the newbies
when they tell you the documentation is hard to read or find stuff in.
But I'm not an experienced developer. I'm an amateur hobbyist who came
to learn Python having only had any real programming experience with BBC
BASIC and OPL (both as a child). I read the tutorial, then I read the
language reference, now I'm reading the library reference. They're all fine.
--
I have made a thing that superficially resembles music:
http://soundcloud.com/eroneity/we-berated-our-own-crapiness
More information about the Python-list
mailing list