Wikipedia:Peer review/Python (programming language)/archive1

Python (programming language)
This peer review discussion has been closed. I've listed this article for peer review because I think the article is of high quality and hope to see it progress to a Featured Article eventually. And since peer review is one of the steps on the way to a FA, I'm requesting it.
 * A script has been used to generate a semi-automated review of the article for issues relating to grammar and house style; it can be found on the automated peer review page for February 2009.
 * [[Image:Yes check.svg|20px]] Issues from automated review now fixed. --Cybercobra (talk) 09:05, 19 February 2009 (UTC)
 * [[Image:Yes check.svg|20px]] Issues from automated review now fixed. --Cybercobra (talk) 09:05, 19 February 2009 (UTC)

Thanks, Cybercobra (talk) 09:04, 16 February 2009 (UTC)

Comments by User:Fubar Obfusco:

This is an intentionally blunt review. I'm not discussing the many good things about this article, but rather focusing on areas for improvement. My apologies if it comes across as harsh.

The flow of the article seems unusual. The development process of the language, including such details as where the developers check the code in, is discussed before the language itself is introduced. I'd suggest moving the Development section later in the article, and remove unnecessary details such as the historical location of the CVS repository.
 * [[Image:Yes check.svg|20px]] Done --Cybercobra (talk) 09:22, 19 February 2009 (UTC)

In some places, there are excessive footnotes for uncontroversial material. Nobody doubts that Python is used at YouTube or that the original BitTorrent client was written in Python -- so why do these claims need three citations apiece?
 * [[Image:Yes check.svg|20px]] Fixed by other editor --Cybercobra (talk) 01:59, 21 February 2009 (UTC)

In contrast, some less well-supported statements (see below) are sparsely cited and refer to advocacy material as sources.

There are a lot of statements of intent and goals: Python is intended to be flexible, easy to learn, easily extensible, simple, etc. It seems to me that someone somewhere has to have studied whether these are actually accomplished. Have there been any studies on (say) students learning Python, on whether it is actually easier to learn? It's nice to talk about design goals, but they're all over this article.

Some statements are made which sound like Python advocacy, and which are sourced to documents at python.org. Example:


 * Python requires less boilerplate than traditional statically-typed structured languages such as C or Pascal, and has a smaller number of syntactic exceptions and special cases than either of these.

... followed by a citation to the General Python FAQ section that encourages the use of Python in education. This comes across as more advocacy than encyclopedia. A comparison between Python and C or Pascal should be sourced to some actual data (like, say, the complexity of the parser? number of different kinds of statements?) about the languages.

It seems to me that discussion of the language's type system and object system could be more carefully separated from the list of built-in types. (And there's some interesting history to be discussed there, notably type/class unification and the whole old-style/new-style classes thing.)
 * [[Image:Yes check.svg|20px]] Done, although I don't personally have enough time to write on old vs new style classes at the moment, so I added a notice template about it. --Cybercobra (talk) 22:29, 19 February 2009 (UTC)

Speaking of types, there are a few places where "statically typed" is used to mean "explicitly typed" (i.e. C/Java-like), which is an error.
 * [[Image:Yes check.svg|20px]] Done, and it's manifest typing for the record :-) --Cybercobra (talk) 21:48, 19 February 2009 (UTC)

--FOo (talk) 10:27, 16 February 2009 (UTC)

Review by Wronkiew

I reviewed about a third of the article, and found a lot to comment on. First, I found no grammar or spelling errors in what I read. Also, I learned a few things about Python from reading it. You can make major improvements to the article in a number of areas. In general, it assumes that the reader is familiar with programming language theory. Only a very small number of readers who come across this article will have that level of CS education. Terms such as continuation, duck typing, and generator are used without any introduction or definition. The lead section is full of programming language jargon that few readers will understand. Part of the Good Article criteria is compliance with WP:JARGON.

The article could also use a cleanup with regard to NPOV. The sections that I read were unrelentingly positive about the language's features without discussing the tradeoffs and risks. Several sentences discuss the intent in designing the language. These sentences do not reference reliable sources, and do not name the person or group whose intent is described. This, and occasional references to van Rossum as a "benevolent dictator", gives the impression that the article was written by insiders, and suggests a conflict with the policies of neutrality and verifiability. Someone else also commented about this in the talk page archives. They posted a detailed list of problems, many of which have not been addressed.

Another area in need of improvement is readability. The Usage section is particularly difficult to read because so many of the sentences are disguised lists. If the contents of the lists are critical, it may be worthwhile to reformat them as such. You could alternately keep them in sentence form, but trim them down to a few interesting subjects, and explain them in more detail.
 * [[Image:Yes check.svg|20px]] Done refactored into lists --Cybercobra (talk) 22:02, 19 February 2009 (UTC)

Another way you can improve readability is to go through the article and make sure that the subject of each sentence has already been introduced. One sentence that starts with an unfamiliar subject can be found at the beginning of the Development section: "A Python Enhancement Proposal (or PEP) is a...". Every reader who is not already familiar with the Python development process will be lost when they read this sentence, because they will have no idea what a PEP has to do with the development of Python. The section needs to start with something like "Python was developed...", and then go on to gently introduce the reader to such arcane subjects as PEPs and release candidates.

I would like to do a more thorough review, but I think the best way to improve the article as it is would be for you to first go through the Good Article criteria, and resolve any problems you find. After that is done, and the above issues are addressed, please let me know and I will be happy to do a second review. Wronkiew (talk) 07:13, 17 February 2009 (UTC)