Python docs disappointing

C

Carl Banks

As someone trying to learn the language I want to say that the tone on  
this list towards people who are trying to learn Python  feels like it  
has become anti-newbies.

I don't think this NG is anti-newbie so much as anti-whining-loser.

Unfortunately, some newbies might see this and perceive it to be abuse
of newbies in general. It is not so. People who have chips on their
shoulder, who make loaded, emotionally-provocative comments, who make
no effort on their own, who expect us to do their homework and/or job
for them, etc., there are the people who going to get an unfavorable
tone.

Newbies who ask respectable questions without having an attitude will
generally get respectable answers.

For example, the guy who was looking for Python sample code for the  
Google Map API, calling him a troll was harsh.

No it wasn't, that guy is Xah Lee, a person who's been trolling Usenet
for a long time. He is best ignored, but I don't blame someone for
snapping at him.


Carl Banks
 
A

alex23

Paul Rubin said:
Stephen, Alex, etc.: have you actually used the php.net doc system?
Don't knock it til you've tried it.  IMO it is superior to Python's
system.  

I've tried it, a lot. Is it okay for me to keep criticising it now, or
would you like some time to find some other allusion to ignorance with
which to wave away my opinion?
 
S

Steven D'Aprano

Further, I have seen many requests here which are nothing really to do
with Python, say a query about which algorithm to use. Response "Not
really a Python question, but try ...". Put the same question on (say)
the C ng and you'd be told in no uncertain terms to Foxtrot Oscar.

We're a lot friendlier than the C newsgroup.

Personally, I think knowing the right algorithm to use is as much a part
of Python programming as knowing whether to call mystring.upper() or
string.upper(mystring).
 
X

Xah Lee

The prob with python docs is with the python priests.

there are frequent posts about python doc's poor quality, and some
efforts to improve the doc (such as wiki or seggestions), about few
times a year (in so much as i've seen), the typical response is
pissing fight, with python priests to tell them not to start another
wiki, or “you should apply in our church first and formulate a PEP
proposal first or kindly donate or otherwise fuckoffâ€, and so on.

i've wrote several articles about this issue, total time spend on this
is probably more than 2 months full-time work. See:

• Python Documentation Problems
http://xahlee.org/perl-python/python_doc_index.html

just about each article above generates a thread of flames.

I also have re-wrote the entire python regex doc in 2005:

• Pyhton Regex Documentation: String Pattern Matching
http://xahlee.org/perl-python/python_re-write/lib/module-re.html

there are some positive reviews, but most are drawn out by nay-sayers.

I often receive thank you emails for 2 particular articles, which are
most frequently google searched as indicated by my weblog:

• Python Doc Problem Example: gzip
http://xahlee.org/perl-python/python_doc_gzip.html

• Python Doc Problem Example: sort()
http://xahlee.org/perl-python/python_doc_sort.html

• Sorting in Python and Perl
http://xahlee.org/perl-python/sort_list.html

See also:

• Language, Purity, Cult, and Deception
http://xahlee.org/UnixResource_dir/writ/lang_purity_cult_deception.html

Xah
∑ http://xahlee.org/

☄
 
D

David Lyon

Since you're talking about documentation, which is a part of python,
don't you think you should be discussing it on python-dev ?

That's where discussions about the documentation should be held.

haha - I'm just curious to see how long it will for them to
shut the discussion down.

Before you do that, you should clearly work out in your own mind
how you think things need to improve. It's not good enough just
saying this or that is bad without having specific ideas on what
needs to change.

Good luck fellow sinner and blasphemer...

How dare you suggest that things could be improved...
 
R

rurpy

Before you do that, you should clearly work out in your own mind
how you think things need to improve. It's not good enough just
saying this or that is bad without having specific ideas on what
needs to change.
'''

He did. Did you read, for example, the critique of the gzip
docs for which he gave the url

http://xahlee.org/perl-python/python_doc_gzip.html

There were some things I might not completely agree with
there, but basically, I thought it was right on, including
his suggestions on how to improve it.
 
R

r

Since you're talking about documentation, which is a part of python,
don't you think you should be discussing it on python-dev ?

Yea, them's be a friendly bunch to noob ideas ;). Hey i got a better
idea, lets go to the IRS and see if we can persuade them to stop
taxing us...
That's where discussions about the documentation should be held.
haha - I'm just curious to see how long it will for them to
shut the discussion down.

Yea, probably not long at all, of course not before the troll calling,
bulling, defamation of character, etc, has lost it's fun.
Before you do that, you should clearly work out in your own mind
how you think things need to improve. It's not good enough just
saying this or that is bad without having specific ideas on what
needs to change.

see links that xah posted, and there is more he did not post.
Good luck fellow sinner and blasphemer...
How dare you suggest that things could be improved...

how dare YOU suggest they NOT be improved!!!
 
E

Ethan Furman

Kee said:
As someone trying to learn the language I want to say that the tone on
this list towards people who are trying to learn Python feels like it
has become anti-newbies.

Learning a new language is difficult enough without seeing other
newbies getting shamed for not knowing everything there is to know
about Python before asking their questions.

For example, the guy who was looking for Python sample code for the
Google Map API, calling him a troll was harsh. Suggesting he broach the
question to Google was a reasonable answer. By the same token, his
asking this list about the missing Python examples seems reasonable
also. Seems to me that people on a Python list might have some
background knowledge or even samples of the Google Python code that was
no longer on the Google web site.

There seems to be a general consensus among the newbies that other
languages have a user contributions resource tied to the main official
docs to allow newbies to teach each other what they have learned. The
desire is for python.org to have the same kind of support resource so
that us newbies can self support each other.

Kee Nethery

As someone who is (hopefully!) leaving newbieness I can say I have had
no problem with the helpfullness of this list. I will also say that
before I ever posted any questions I had devoured Dive Into Python and
How To Think Like a Computer Scientist Using Python (both excellent),
and I try to put as much detail into my questions as I can so nobody has
to guess what I'm trying to do.

As someone who relies heavily on the docs I will also say that the idea
of giving the ability to modify the official documentation to somebody
who is /learning/ the language is, quite frankly, terrifying. I have no
issues with a seperate system, some of which have been suggested, but
good reference documentation is crucial. If you find examples lacking,
there are plenty of web-sites, or even (dare I say it?) actual hard-copy
books! ;) My bookshelf currently has Learning Python, Programming
Python, Python Cookbook, Python Programming on Win32, and Regular
Expressions. All great books, and not too pricey if you can get them used.

My $0.02.

~Ethan~
 
R

r

As someone who relies heavily on the docs I will also say that the idea
of giving the ability to modify the official documentation to somebody
who is /learning/ the language is, quite frankly, terrifying.
(snip)

Ethan,
I think what you and a few others seem to miss is ... Of course nobody
wants Joe-Noob writing the Python docs -- thats lunacy, would you give
your 12 year old the keys to a shiny new corvette? -- No! What people
are asking for is the ability for a noobs input on the official docs,
and for that input to be taken seriously. Sure some of the suggestions
will be nothing more than "helpful ignoramuses" with unhelpful
suggestions as some have said, but the input channels need to be
there. Currently Python dev seems to be more output than input,
however i could be wrong? We some real I/O going on here.

Also the Python tut is full of fluff (sorry Guido) and it contributes
to late learning of the language. Luckily however Python has many
users who really love the language and have taken the time to write
beautiful tutorials that start at various levels of entry. Read xah's
take on the official tutorial, it's spot on baby!

A little note for tutorial writers:
==================================

Dear Expert,
Whilst writing any tutorial on any subject matter please remember, you
may be an expert, but mostly *non-experts* will be reading your
material... pssft, this may come as a surprise, but tutorials are
meant for *NON-EXPERTS*!

Please refrain from stroking your own ego by obstrufcation of the very
ideas you wish to convey to these influential minds. Sure exposing
your huge intelligence to the world may give you warm-fuzzies-in-your-
tummy, but believe me your poor students will be rendered as helpless
as Paris Hilton at a "panties required" spelling bee.

Please try, and i know this is a lot to ask, to use the most simple
explanation to convey the point -- and *only* the point at hand! Take
for example the introduction of functions. You could go with your gut
instinct, "shoot from the hip" and pop off something like this that
prints a Fibonacci series up to n...

def fib(n):
a, b = 0, 1
while b < n:
print b,
a, b = b, a+b
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

And all you would have accomplished was to blow holes thru the
students mind! Now like the next guy, i love calculating series of
numbers all day, but this is a piss poor example of functions for the
new student, or anybody for that matter! While your student is
racking his brain trying to figure out what "a" and "b" stand for,
much less n, and not to mention what the heck a "Fibonacci" series is
in the first place (Google can help though) , he (the student) has
forgotten that this example is simply how to write and call a
function. A much better example would be the following...

def add(x, y):
print x+y
3

WOW, with that small piece of code you have just transported three
main principals of a function in a very simple and strait forward way
smack-dab into the cerebral cortex of the student, and your fingers
did not even break a sweat!

1. function names should describe exactly what they do
2. functions take arguments
3. functions do something with those arguments(like mini programs!)

You could followup with this fine example that extents on the
first...

def add(x, y=2)
return x+y
error...


However Ethan (and Co.), not everybody who downloads Python the first
time knows about this. Also the Python website is filled to the brim
with a hodgepodge of "links-here" "links-there", "links-every-freaking-
where" (are we getting paid by the link people?) causing most noobs
brain to start blowing chunks just while tring to find a good
alternative to the official tut!

Really, it's bloat on a proportion that only elephant sized bloat
wares like M$, M$-Office, Adobe-PDF, and the like, can hold a candle
to. Python really needs and enema, and thats no joke!
 
D

David Lyon

As someone who relies heavily on the docs I will also say that the idea
of giving the ability to modify the official documentation to somebody
who is /learning/ the language is, quite frankly, terrifying.

What is more terrifying is the way feedback from newbies is handled.

Your statement implies that the only way feedback can be handled is
to throw the keys down in discust and walk away. That's primative
behaviour. And misleading, because that isn't going to happen.
My bookshelf currently has Learning Python, Programming
Python, Python Cookbook, Python Programming on Win32, and Regular
Expressions. All great books, and not too pricey if you can get them
used.

So, what you're advocating is let things stay how they are...

Ignore feedback... tell people to freak off...
 
P

Paul Rubin

r said:
Whilst writing any tutorial on any subject matter please remember, you
may be an expert, but mostly *non-experts* will be reading your
material... pssft, this may come as a surprise, but tutorials are
meant for *NON-EXPERTS*!

I think the Python tutorial is aimed at users who are newbies to
Python but not newbies to programming. Writing a tutorial for total
newbies is a completely different problem, that would result in a much
different document that's less useful to the existing tutorial's
intended audience.
 
A

Antoine Pitrou

r said:
Yea, them's be a friendly bunch to noob ideas ;). Hey i got a better
idea, lets go to the IRS and see if we can persuade them to stop
taxing us...

You know, the most interesting thing in this thread is certainly its title :
« Social problems of Python doc »

Yes, the little social problem here should be clear: if you have complaints to
voice or improvements to suggest to the Python docs, you should do so on the
issue tracker (*). For most topics, this is the only reasonable way to signal
problems to the Python developers community, and so it is in most free software
/ open source projects.

Just because you are able to write tongue-in-cheek (**) comments on python-list
or, even worse, on a third party website, and generate a long thread about how
Python doc (supposedly) s*cks
1) doesn't mean there is a legitimate issue (we all know how people can quickly
inflame about empty subjects)
2) even though there can be a legitimate issue, doesn't mean Python developers
will go out of their way and parse the entirety of the messages to find
potentially useful data in them. The bug tracker is the place for this, and it's
your task, if you want to help, to submit suggestions in it.

FYI, the Python doc is very actively maintained nowadays, and bug reports /are/
taken into account. If you think you've got a lot of time for ranting about how
the doc sucks, but don't want to spend the couple of minutes needed to post
issues on the bug tracker, it speaks a lot about your motivation. Admittedly, in
every successful community, there are attention seekers who are not interested
in actual participation.

(*) http://bugs.python.org

(**) yes, humour is fine, but it doesn't replace actual, informational content


Antoine.
 
M

Mark Lawrence

Antoine said:
You know, the most interesting thing in this thread is certainly its title :
« Social problems of Python doc »

Yes, the little social problem here should be clear: if you have complaints to
voice or improvements to suggest to the Python docs, you should do so on the
issue tracker (*). For most topics, this is the only reasonable way to signal
problems to the Python developers community, and so it is in most free software
/ open source projects.

Just because you are able to write tongue-in-cheek (**) comments on python-list
or, even worse, on a third party website, and generate a long thread about how
Python doc (supposedly) s*cks
1) doesn't mean there is a legitimate issue (we all know how people can quickly
inflame about empty subjects)
2) even though there can be a legitimate issue, doesn't mean Python developers
will go out of their way and parse the entirety of the messages to find
potentially useful data in them. The bug tracker is the place for this, and it's
your task, if you want to help, to submit suggestions in it.

FYI, the Python doc is very actively maintained nowadays, and bug reports /are/
taken into account. If you think you've got a lot of time for ranting about how
the doc sucks, but don't want to spend the couple of minutes needed to post
issues on the bug tracker, it speaks a lot about your motivation. Admittedly, in
every successful community, there are attention seekers who are not interested
in actual participation.

(*) http://bugs.python.org

(**) yes, humour is fine, but it doesn't replace actual, informational content


Antoine.
Thank you for this fine, cultured, reasonable response. Seriously!!!
 
B

Bruno Desthuilliers

r a écrit :
(snip)
A little note for tutorial writers:
==================================

Dear Expert,
Whilst writing any tutorial on any subject matter please remember, you
may be an expert, but mostly *non-experts* will be reading your
material...

I can only second Paul on this : just like the K&R, Python's official
tutorial targets experienced programmers, not total noobies.
 
E

Ethan Furman

David said:
What is more terrifying is the way feedback from newbies is handled.

Your statement implies that the only way feedback can be handled is
to throw the keys down in discust and walk away. That's primative
behaviour. And misleading, because that isn't going to happen.

Allow me to put back the sentence you unfairly snipped:
I have no issues with a seperate system, some of which have been
suggested, but good reference documentation is crucial. If you find
examples lacking, there are plenty of web-sites, or even (dare I say
it?) actual hard-copy books! ;)

To be clear, what I am advocating is that *official documentation not be
opened up to everybody,* _especially not people who don't yet grok the
language_.
used.

So, what you're advocating is let things stay how they are...

Ignore feedback... tell people to freak off...

I had not addressed feedback before, but I shall do so now: Discuss
concern on the Python list first to make sure it is not a lack of
understanding, then, if a legitimate issue with the docs exists, use the
bug tracker. If one can't be bothered to take the time to be a
Responsible Citizen, I am not going to be bothered by lacking that one's
comments/concerns/feed-back.

~Ethan~
 
R

rurpy

You know, the most interesting thing in this thread is certainly its title :
« Social problems of Python doc »

Yes, the little social problem here should be clear: if you have complaints to
voice or improvements to suggest to the Python docs, you should do so on the
issue tracker (*). For most topics, this is the only reasonable way to signal
problems to the Python developers community, and so it is in most free software
/ open source projects.

"the *only* reasonable way"? That's clearly wrong (unless you
want to wiggle in the room provided by "reasonable" or "most").
There is discussion on the dev list, there is discussion here.

The issue tracker is fine for many things, but the process it
provides is equivalent to peep-hole optimization. How does one
submit a tracker issue for something like the overall organization
of the docs (for example, the mis-placement of things like data-
types in the library manual rather than the language manual)?

The big problem with the docs is poor writing (this includes
not using examples when they can help explain something more
clearly than verbiage alone). It is understandable why this
should be so -- most programmers are good at and enjoy
programming, not writing and the python community is, say,
about 99.9% programmers.

This is why all the attempts (at least that I've noticed) are
programming focused -- build a wiki, write a new doc processing
framework, etc. Unfortunately none of those addresses the real
problem -- the need for clear, well written, well organized
*content*. I don't see how telling people to submit tracker
issues will solve this problem. I can rewrite some section so
it sounds good to me, but likely it will be just as bad (perhaps
in different ways) that what is there.

The post that started this thread proposed something like paying
professional writers to improve the docs. This may or may not
be a practical suggestion. But the immediate response it
engendered was an auto-immune-like group response: the docs
are great already, don't complain, fix them yourself, yada, yada;
the same response that any criticism of free software produces.

It's really too bad the the python community can't seriously
discuss ways to improves the docs. There are other possibilities
for instance the Fedora Docs project (can't say I'm impressed
by what they've produced but that doesn't mean their model
is useless). There is a need for an approval process managed
by someone who actually understands what good technical writing
is. And perhaps editors who can polish or work with programmers
who provide the raw technical description of some module.

Some kind of higher level more global process is the only
way I can see that the docs will be improved to any sort
or professional standard. I don't see how issues like this
will be addressed by submitting tracker items.

Personally, I have given up on this issue. The social factors
involved really pretty much determine that the Python docs
will never reach a very high quality -- that's just the way
it is and I've come to accept that.
 
R

r

Only useless feedback.

And who decides what is useless and what isn't Steven?. You?, alex23?,
Bruno?, Paul? Carl? Who makes these decisions and do *they* make them
without pride or prejudice? Do they approve an idea by someone they
hate because it it good, or do they toss it in the trash just to spite
them, because they have the power to do so? As we can see much
resistace exists against even the ideas of change. How will change
ever take place with such defiance!

I am sorry but i feel many here would not judge fairly based on the
merits of an idea without allowing "buddy-systems" or "pecking-orders"
to get in the way. Sad really, only Python suffers in the end.

Some say the tutorial is not meant for non-programmers, but for
programmers with no Python experience. So! How does that justify
obstruction of the tut? Why not present the same information in a way
both can easily understand? I thought Pythons original vision was to
allow easy entry into programming for anybody -- experienced or not!
Anybody remember "CP4E"?

Is this an ivory tower thing? i dunno, but it seems to be...???
 
M

Mark Lawrence

r said:
Only useless feedback.
[snip]

I am sorry but i feel many here would not judge fairly based on the
merits of an idea without allowing "buddy-systems" or "pecking-orders"
to get in the way. Sad really, only Python suffers in the end.
I disagree with these comments. I do not believe that Python has a
buddy system or a pecking order getting in the way of anything. As you
are making thsse accusations, either provide hard evidence that can
persuade me that your perspective on this is correct or shut up.
 
S

Steven D'Aprano

"the *only* reasonable way"? That's clearly wrong (unless you want to
wiggle in the room provided by "reasonable" or "most"). There is
discussion on the dev list, there is discussion here.

Discussion here is spitting into the wind. The noise-to-signal ratio is
high enough that the people who can fix an issue aren't likely to see it
here. Unless somebody raises a report in the bug tracker, it will go
nowhere, fast.

The same happens for issues on the dev list: I can't count how many times
people there have said "put it in the bug tracker, or it will be
forgotten".

The issue tracker is fine for many things, but the process it provides
is equivalent to peep-hole optimization. How does one submit a tracker
issue for something like the overall organization of the docs (for
example, the mis-placement of things like data- types in the library
manual rather than the language manual)?

The same way you would submit a tracker issue for anything.

"Documentation bug: Data types are misplaced in the library manual
instead of the language manual.

Suggested alternative: move page docs.python.org/xyz.html to abc.html"


The big problem with the docs is poor writing (this includes not using
examples when they can help explain something more clearly than verbiage
alone).

There's a difference between insufficiently good writing and poor
writing: think of grading the docs, where 100 is "perfect in every way"
and -100 is "perfectly awful in every possible way". (It's not a linear
scale.) A score of 0 is "mediocre, just barely acceptable". Poor writing
has a negative score. In my opinion, Python's docs are perhaps a 40 or
50, significantly better than most technical docs I've seen.


[...]
I can rewrite some section so it sounds good to me, but likely it will
be just as bad (perhaps in different ways) that what is there.

Bug reports are valuable even if you don't have the skills to provide a
patch. Bug reports with patches are even more valuable, but that doesn't
mean that the failure to provide a patch *necessarily* dooms your report
to oblivion.

The post that started this thread proposed something like paying
professional writers to improve the docs. This may or may not be a
practical suggestion. But the immediate response it engendered was an
auto-immune-like group response: the docs are great already, don't
complain, fix them yourself, yada, yada; the same response that any
criticism of free software produces.

I haven't seen any such knee-jerk responses. What I've seen is a set of
sensible, *practical* advice:

- complaining on its own, especially here, is pointless;

- Python is a community effort, if you see something that needs fixing,
do something about it;

- many of us DON'T want arbitrary people "correcting" the official docs
without oversight, and believe that would be a disaster (arbitrary people
aren't give check-in privileges to add code to Python's standard library,
nor should they be given check-in privileges to add docs);

- if people are keen on a Python wiki, then by all means publish one,
just don't expect the Python dev team to build and manage it for you;

- bug reports and patches to the docs are ALWAYS welcome, even if they
are rejected;

- if you don't have the skills to fix a bug (including doc bugs), an
alternative is to pay somebody else to do so instead.

It's really too bad the the python community can't seriously discuss
ways to improves the docs. There are other possibilities for instance
the Fedora Docs project (can't say I'm impressed by what they've
produced but that doesn't mean their model is useless). There is a need
for an approval process managed by someone who actually understands what
good technical writing is. And perhaps editors who can polish or work
with programmers who provide the raw technical description of some
module.

Yes, you're correct.

[sarcasm] Now that we've agreed on what needs to be done, the problem is
solved!!! [end sarcasm]


Some kind of higher level more global process is the only way I can see
that the docs will be improved to any sort or professional standard. I
don't see how issues like this will be addressed by submitting tracker
items.

You want community input into the docs, but you're not willing to give
that input except to bitch and moan and sook that the tracker is no good.

Even if the PSF had a full-time team of professional documentation
writers and editors, guess what, you would STILL need to submit issues to
the bug tracker, because otherwise THEY WON'T BE TRACKED.

Personally, I have given up on this issue. The social factors involved
really pretty much determine that the Python docs will never reach a
very high quality -- that's just the way it is and I've come to accept
that.

Ultimately it boils down to two factors:

Money.

Effort.

If you won't put in the effort, and you won't put in the money, then it
won't happen. Moaning that other people aren't putting in the money to
hire team of professional writers isn't productive, and moaning that
other people aren't putting in the effort to improve the docs isn't
either.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,778
Messages
2,569,605
Members
45,238
Latest member
Top CryptoPodcasts

Latest Threads

Top