Talk:Python (programming language)/Archive 7

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Archive 1 Archive 5 Archive 6 Archive 7 Archive 8 Archive 9 Archive 10

{{fact}} in lede

How, exactly, is the tagged statement ("various parts of the language have formal specifications and standards") likely to be challenged, or even vaguely controversial? There is no great big list of specifications adhered to by the stdlib to reference, so either an example would have to be given plus its citation, cluttering up the lede, or the statement would have to be removed, which would be a loss because it does contribute information, and make the point about CPython's de facto-ness. I'm tempted to remove the template right now, because who in their right mind would challenge that statement?, but I'd like to see what the justification is. 79.78.106.225 (talk) 16:10, 7 October 2008 (UTC)

The statement is simply meaningless to a reader without a reference that states or directs the reader to the source of exactly what parts are standard or have formal description and which don't. The statement only appears to reflect author's uncertainty over the subject matter. Kbrose (talk) 04:07, 8 October 2008 (UTC)
As I said, there is no Great Big List of which bits of Python are specified and which are not. A sourced example (the WSGI server) is provided later in the article. The statement is very far from meaningless: it makes the ad-hoc-ness of the Python 'specification' clearer. There is no 'uncertainty': some parts follow standards (eg, the HTTP clients and servers, the HTML parsing libraries), but the majority does not. Because there is no single authoritative external source, either the statement should be removed, or the tag should be removed. I assert that the statement is as sourced as it needs to be, is unlikely to be challenged or even slightly controversial (unless you're disputing its truthfulness, rather than the sourcing), so it should stay and the tag be removed. 79.72.164.229 (talk) 20:16, 8 October 2008 (UTC)
To say that an HTTP implementation follows the HTTP standard is not particularly interesting -- if it didn't, it would be buggy. It seems to me that the standards being referred to are language-side standards, or roughly, APIs. An example of this would be the Python Database API, which specifies how Python modules for talking to databases should work. --FOo (talk) 02:46, 9 October 2008 (UTC)

Where’s the helloworld?

Somebody add one example please. Wipe (talk) 14:49, 12 October 2008 (UTC)

Hello World is simple:

        print "Hello World"

But does it add something to this page? I don't see it. If yes I would suggest adding one or two examples at the end of chapter 4, before chapter "Implementations". It would be better to give the link to a long overview —Preceding unsigned comment added by KumpelBert (talkcontribs) 21:45, 14 October 2008 (UTC)

Cython

This really doesn't belong in the "Implementations" section. Not sure if the new-ish user who reverted it there is the same as the IP who added it a couple days ago. In any case, Cython (and Pyrex) are different languages than Python and are not implementations. It's true that there is an intersection between the valid Cython programs and the valid Python programs, but there is a considerable disjunction on both sides too.

Probably equally important is that Cython is still a quite experimental language, not something in widespread use. We've seen lots of real Python implementations come and go over the years (Vyper, Prothon, etc). Some new effort, however well meaning and useful it might be, should find a notable audience and user base before being listed here. In truth, I think that Stackless is slightly borderline for where it is mentioned, but it was at least for a while pretty widely used, so inclusion is plausible. LotLE×talk 00:33, 13 October 2008 (UTC)

Guido's last name

Is it "van Rossum" or "Van Rossum"? His personal page says: van Rossum 0x6adb015 (talk) 12:06, 10 October 2008 (UTC)

Guido comes from Holland, in Holland is the middle name always written in lowercase. So his name should be written as "van Rossum" (KumpelBert (talk) 20:32, 14 October 2008 (UTC))

Guido's web page has the correct capitalization rules. It's Guido van Rossum, but when the first name is not present it's Van Rossum. You can look it up in a style guide if you don't believe me (or Guido). --64.238.49.65 (talk) 15:01, 20 October 2008 (UTC) (rodney drenth)

It is proper English style to capitalize the surname prefix if the name is used without the first name. Not only is this properly described in Van Rossum's webpage, but also the correct practice in his Wikipedia article. Kbrose (talk) 22:17, 20 October 2008 (UTC)
Guido's homepage seems to confirm the cap-if-used alone "Van Rossum" spelling. However, of greater relevance is finding the right part of WP:STYLE for this issue. I don't know anything about Dutch orthography personally, but I presume this isn't the only Dutch name WP has ever wanted to describe. What's the rule? LotLE×talk 22:39, 20 October 2008 (UTC)
Looking up Wikipedia Van_(Dutch), it seems that we should write "Van Rossum", and "Guido van Rossum". But I do not know if this rule applies to the english language. 0x6adb015 (talk) 13:00, 21 October 2008 (UTC)
IMHO to follow native style is proper form, unless of course the owner of the term wishes it otherwise. Thus a Dutch name would follow Dutch traditional style, etc. Only exception comes when we need to romanize a term, in which case it would be good form to parenthetically include the native script as well. yamaplos 16:58, 31 October 2008 (UTC)

Code examples

Hi, I was wondering why there are no code examples in the article except for the syntax highlighting picture which doesnt really convey anything usefull about python as a language. Other programming articles such as C, C++ and Perl among others have large amount of code examples, most notably the perl article has a vast amount of examples. Is wikipedia against code examples on programming articles? I would be more then happy to post examples if someone can assure me that examples are allowed but more importantly that they are needed (I think they are) Thanks. -- I just read through the article and saw the "Statements and control flow" section, i think code examples for each of these statements would be usefull, do you agree? Also should the heading not be "Statements and 'flow control'" (pips just for emphasis) Thanks Tehpron (talk) 11:17, 21 October 2008 (UTC)

If nobody replies by tomorow il go ahead and add a few examples, thanks Tehpron (talk) 16:46, 27 October 2008 (UTC)
There are no examples because a) there's a whole Python syntax and semantics article and (b) code samples more than a line long are almost never useful from a purely descriptive sense. We're not trying to teach people how to code, and frankly there's not really any great value in showing exactly what symbols are required to make Python do a particular trick if it's explained well enough in the prose. Personally I'd much rather our programming language articles avoided code samples wherever and whenever possible. Chris Cunningham (not at work) - talk 17:36, 27 October 2008 (UTC)
I for one favor code samples (in a sideline article for neatness), for an Encyclopedia, in my opinion, is meant to teach. yamaplos 16:57, 31 October 2008 (UTC)
Unless there's something spectacular about the particular syntax used, I don't think they're necessary. thumperward put it nicely. Txmy (talk) 19:18, 7 December 2008 (UTC)

Pictures?

There seem to be several pictures "removed" without explanation. Anybody has a clue? yamaplos 17:00, 31 October 2008 (UTC) —Preceding unsigned comment added by Yamaplos (talkcontribs)

Pippy

People keep deleting my entries on this subject. If you don't like things the way I put them, would you please edit them to be more appropriate?

I believe Pippy does belong with this article. What other grown-up programming language is massively (500.000+ and counting) distributed to school-kids worldwide? so, how would you phrase it if you don't like mine? Where else would you put it? Sure, I guess it can also have its own page, but even if it doesn't, Pippy has to be mentioned in Wikipedia, and the Python page is the obvious place that quantum of data belongs with.

 yamaplos 17:05, 4 November 2008 (UTC)  —Preceding unsigned comment added by Yamaplos (talkcontribs)  

External links

I've reverted the removal of an external link. (I didn't add the link, just tweaked the test, as did another editor after me.) The link is to a tutorial at python.org. There is already links to the main python.org page; also to the documentation at python.org. It doesn't seem too much for a link to the official tutorial. peterl (talk) 21:06, 20 November 2008 (UTC) Yes, I see the NoMoreLinks tag, but the wording there is 'consider carefully

I don't care about the procedural stuff about who added or removed the link. However, I think the Python tutorial pushes us in the direction of linkspam, and is better omitted. There are many excellent pages at the official Python website; which is why it's good to give a single one for the home of that site, and let readers navigate to what they want. Linking to each "nice to have" page at Python.org is unnecessary... moreover, it's not even like the official tutorial is the only very good tutorial on Python. If that's what readers want, I'm sure Google could help them search for "Python tutorial" and give them many good choices. LotLE×talk 22:10, 20 November 2008 (UTC)
Fair enough. I agree with being careful of linkspam. In which case should the link to 'Official documentation and resources' also be removed? peterl (talk) 23:20, 20 November 2008 (UTC)
Yes, probably. It's on the same domain as the official website, and isn't of such critical value to the article to warrant separate inclusion. Chris Cunningham (not at work) - talk 09:47, 25 November 2008 (UTC)

Philosophy

this word is miss used several times, it takes to a lower level, this discipline of knowledge it some much more that "a way we think". I ask kindly if someone could use a another word. Philosophy its not a word to use so vaguely. --190.161.73.209 (talk) 21:21, 24 November 2008 (UTC)

You have item three here that might fit. the use of the word. --Paddy (talk) 07:15, 25 November 2008 (UTC)
I managed to earn a doctorate in philosophy without actually learning anything that would suggest the usage of the word in this article is inappropriate. Just saying. LotLE×talk 08:24, 25 November 2008 (UTC)

Syntax box

It seems that the colored syntax box PNG-equivalent is wrongly rendered; the PNG is missing some variable that shows OK when looking at the SVG. Anybody knows how to fix that? 0x6adb015 (talk) 14:24, 3 February 2009 (UTC)

Works fine in every Firefox version I've looked at it in (which is quite a few, since I've watched the article for years, and provided the original syntax-highlight example... someone else converted my PNG to SVG). I think something is weird in your individual system setup. LotLE×talk 19:24, 3 February 2009 (UTC)
Scratch that, I lied! I just zoomed into the actual SVG in its image page, and I also get weird drop-outs in FF. Tried it in Safari, where it renders fine. I wonder if this is a glitch with new FF versions. I'm thinking that going back to the PNG might be reasonable for a while. LotLE×talk 19:29, 3 February 2009 (UTC)

GA Reassessment

This discussion is transcluded from Talk:Python (programming language)/GA1. The edit link for this section can be used to add comments to the reassessment.

This article has been reviewed as part of Wikipedia:WikiProject Good articles/Project quality task force. I believe the article currently meets the criteria and should remain listed as a Good article. The article history has been updated to reflect this review. This is certainly one of the better programming language GAs, but I do have a few minor observations:

  • External links should only appear in the External links section. So links like those in Programming philosophy and Alternative implementations should be converted to inline citations.
  • There a couple of clarification tags that need to be dealt with.
  • All citations should include full details, including title, publisher, and last access date.
  • The lead is a little on the short side to adequately summarise the article.

A nice piece of work nevertheless. --Malleus Fatuorum 15:21, 3 March 2009 (UTC)

The discussion above is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.

Quote in the history section

Is it really needed? What ABC was inspired by seems tangential at best, let alone giving that much space to a quote from Guido about it. I'll remove it, and probably just put in a note that ABC was inspired by SETL in the history section, unless someone thinks it adds significant value. 79.78.72.145 (talk) 16:48, 3 March 2009 (UTC)

I agree. The material in the quote is worth keeping, but it's not so special that it should be put into an offset quote. TJRC (talk) 17:12, 3 March 2009 (UTC)

Parentheses in the title

Python's official name is "Python programming language", as seen on the website (http://www.python.org/) and in the PSF Trademark Usage Policy (http://www.python.org/psf/trademarks/). To quote the latter:

Always use any trademark as an adjective only, followed by a generic noun. For instance, it is correct to refer to the Python programming language (adjective) but not simply to Python (noun). Don't use the trademark as a verb ("Python your software today!").

Despite the fact that hardly anybody uses the long name, I think that the title of this page should be "Python programming language", not "Python (programming language)" --En-Cu-Kou (talk) 23:44, 17 March 2009 (UTC)

That's a discussion of the trademark, not the language. The language is clearly "Python" as the Foundation makes clear from its own use on the About page:
About Python
Python is a remarkably powerful dynamic programming language that is used in a wide variety of application domains. Python is often compared to Tcl, Perl, Ruby, Scheme or Java....
See http://www.python.org/about/. TJRC (talk) 05:33, 18 March 2009 (UTC)
See also Wikipedia's article naming conventions, which in a nutshell say to use the most common/recognizable name (not necessarily the most precise/official one), which is "Python" in this case, with the parens used solely to disambiguate between the other entities called Python. --Cybercobra (talk) 06:39, 18 March 2009 (UTC)

closures

there should be some mention of support for closures in the article, no? —Preceding unsigned comment added by 24.130.24.6 (talk) 05:46, 29 March 2009 (UTC)

Questionable Claim

"However, many problems are not speed critical, and as computer hardware continues to become exponentially faster (Moore's Law), languages do have more hardware resources available."

We've hit the Von Neumann bottleneck. Processors have continued getting faster, but at a decling rate. Website traffic volumes continue to increase. —Preceding unsigned comment added by 208.240.243.170 (talk) 22:59, 29 April 2009 (UTC)

Line about strong typing.

"Despite being dynamically typed, Python is strongly typed, forbidding nonsense operations (for example, adding a number to a string) rather than silently attempting to make sense of them."

Sounds a bit critical of loosely typed languages (not that I'm a fan :)

Revise?

While being dynamically typed, Python is also strongly typed which forbids operations between unrelated types (for example, adding a number to a string) rather than assuming the programmer intends for one the types to be converted. —Preceding unsigned comment added by Dawnofdigital (talkcontribs) 03:07, 1 May 2009 (UTC)

Example

The point wasn't that it was awesome python code, rather that it mocks a code example from Ruby's website with their silly perl-esq sigils and magical behavior.

# Python knows what you mean, even if you want to do math on an entire set
cities  = set(("""London
    Oslo
    Paris
    Amsterdam
    Berlin""".split() ))

visited = set(("Berlin", "Oslo"))

print ( "I still need to visit the following cities: "
        + ", ".join(cities - visited) )
# Ruby knows what you
# mean, even if you
# want to do math on
# an entire Array
cities  = %w[ London
              Oslo
              Paris
              Amsterdam
              Berlin ]
visited = %w[Berlin Oslo]
 
puts "I still need " +
     "to visit the " +
     "following cities:",
     cities - visited

Granted the python example would look nicer with the set literal syntax a la 3.0.

I also subclassed list and overloaded the subtract operator to duplicate this behavior, just to prove that python > *. —Preceding unsigned comment added by 75.69.35.85 (talk) 11:46, 6 May 2009 (UTC)

Python have plenty syntax and semantics

Python's core is not so minimalistic. Try Forth, Lua, or Io to get a feel what should be considered as a minimalism in syntax and/or semantics. —Preceding unsigned comment added by 4th-otaku (talkcontribs) 18:30, 18 May 2009 (UTC)

True. I call Python concise. --Paddy (talk) 05:16, 19 May 2009 (UTC)

Trying to find out about ActivePython

I've got ActivePython on my PC, and I'm trying to work out where it sits as an implementation. Nothing here, nothing at the ActivePython page, nothing particular at the ActiveState website. Is it just a re-compile of CPython? —Preceding unsigned comment added by 203.206.162.148 (talk) 05:30, 25 May 2009 (UTC)

ActivePython is a Windows port of CPython from activestate.com . It has a few extra goodies like Windows compiled help, some COM stuff etc. peterl (talk) 07:22, 25 May 2009 (UTC)
Not just Windows: [more]. --Paddy (talk) 09:16, 25 May 2009 (UTC)
Yes, sorry, you are quite correct. For Windows, Linux, Mac OS X, Solaris, AIX and HP-UX. [1]. Also includes a useful IDE PythonWin [2] —Preceding unsigned comment added by Peterl (talkcontribs) 22:42, 25 May 2009

Memory what?

This is what the intro says: {cquote|[Python] features a fully dynamic type system and automatic memory management, similar to Perl, Ruby, Scheme, and Tcl.} Memory management in that part of the article links to real memory management (the kind the OS' do). Shouldn't that read: "garbage collection"? If not, why? Also what kind of "memory management" does Scheme posess, seeing as it is a (traditional) functional programming language, and thus supports no types. Will be watching the page. Thanks in advance. --Paxcoder (talk) 22:14, 27 June 2009 (UTC)

Scratch that, memory management does distinguish the two (I'd still be more happy if it linked to GC, but nevermind now), please answer the second thing.--Paxcoder (talk) 22:17, 27 June 2009 (UTC)
Scheme does garbage collection in the sense that python does, (all implementations of scheme use GC, but details vary based on implementation) so again memory management may be a misleading term by whomever added it. Scheme is "untyped" in the sense that python is, eg. it does not have static types, but rather checks terms in it's runtime system. ("dynamic"/duck "typing")

Versions

Would it be possible for someone who knows a little more about such things to provide some sort of commentary about the changes between the 2.x and 3.x versions of Python? I came over here hoping for a neat summary of the kind Wikipedia is good at, and was unable to find one. me_and (talk) 20:54, 28 June 2009 (UTC)

Sounds like the article you are looking for is History of the Python programming language. That one is linked at top of the relevant section in this article already. LotLE×talk 21:24, 28 June 2009 (UTC)

Python award

" Knoppix inventor Klaus Knopper handed over the Best Open Source Programming Language prize, this year hotly disputed among the jury. The distinction went to Python. "The thing can do anything," Knopper expressed. Martin von Löwis of the Python Foundation accepted the award for the Python community. " -> http://www.linux-magazine.com/online/news/cebit_2009_openstreetmap_wins_two_linux_new_media_awards —Preceding unsigned comment added by 88.157.200.123 (talk) 22:23, 28 June 2009 (UTC)

Boost.python

I think it does not deserve a mention in the 'Standard library' section, specifically because it's not in the stdlib. Natively, Python provides an interface to C++; Boost only provides some glue to make it easier. Mentioning Boost in this section is analogous to mentioning, say, SQLObject as well, because it provides glue to make database manipulation easier, on top of the sqlite (in the stdlib). Reading the section again closely, the part about extension modules should be rewritten to put the emphasis on what mechanisms are provided in vanilla CPython, rather than fiddling with specific examples and shoutouts. —Preceding unsigned comment added by 79.78.91.76 (talk) 14:48, 18 July 2009 (UTC)

Easter Egg

Should something be mentioned about the easter egg in Python 3.0, i.e running the code "import antigravity" opening http://xkcd.com/353/?Because it sure mentions it on xkcd--Strigoides (talk) 09:47, 24 July 2009 (UTC)

Influenced list

The 'influenced' entry in the box mentions some little-known languages such as Falcon and BeanShell. Seems like the influence is marginal (particularly for BeanShell). What's the criteria for the 'influenced' section? Shall I remove those two from the influenced list? peterl (talk) 21:29, 4 August 2009 (UTC)

BeanShell influence is probably that Python has a REPL, which does seem marginal, and a cursory googling didn't turn up anything implicating Python in BeanShell. Falcon I'd be more reluctant about as I have a suspicion someone involved in it wrote its article, which lists Python as an influence. So, +1 on removing BeanShell, -0 on removing Falcon. --Cybercobra (talk) 01:29, 5 August 2009 (UTC)

Examples

TODO: I think this article would benefit from having a list of examples showing the python syntax. —Preceding unsigned comment added by 8.7.228.252 (talk) 04:05, 5 November 2009 (UTC)

I don't! Wikipedia is not a manual. Most computer language articles on WP have far too many examples. The python article is a pleasant exception and it should stay that way. Peter Ballard (talk) 00:56, 25 November 2009 (UTC)

Influenced by Java?

How could Java have influenced Python, since it wasn't released until 1995? Peter Ballard (talk) 12:00, 23 November 2009 (UTC)

Python has changed throughout its life, not just at its inception. --Paddy (talk) 18:08, 23 November 2009 (UTC)

There are features of Python (or of most languages) that were not present in the first release. In the Java case, I think the usual example given is the use of Python decorators, which borrow a syntax element from Java. I'm not really convinced that that is enough to merit mentioning Java in the infobox. However, it is sophistical to suppose that influence must only follow the release dates of version 1.0 of every language... many languages influence each other on an ongoing basis, across multiple versions. LotLE×talk 18:08, 23 November 2009 (UTC)
Personally, the best example I know of is the logging module, which is very much a clone of the equivalent Java library. --Cybercobra (talk) 18:37, 23 November 2009 (UTC)
That's true. And actually, the unit test module is also based on Java's. And probably another thing or two. And Guido used Java as a the model for Unicode, especially in 3.x. So I guess I don't really object to the inclusion of Java as an influence in the infobox. LotLE×talk 19:39, 23 November 2009 (UTC)
I'll concede all that, but it seems that we're setting the "Influenced by" bar pretty low, and it's a bit odd seeing Java alongside Modula-3 as a Python influence. It's a fundamental problem with infoboxes (and templates, and categories) - information is presented in a binary format, with no explanation. Anyway, I'll let it pass. Peter Ballard (talk) 23:55, 23 November 2009 (UTC)
I don't feel that strongly in favour of including Java as an influence. I just don't want to remove it on the specious argument that Python 1.0 preceded Java 1.0, so no influence is possible. If you want to present a better focused argument for why the Java influence is insufficient to merit the infobox, I'm open minded. LotLE×talk 00:44, 24 November 2009 (UTC)
I would leave Java in, on the strength of it influencing the change in the handling of Unicode. --Paddy (talk) 05:22, 24 November 2009 (UTC)

Stuff removed from Boolean data type article

The following section was removed from the article Boolean data type:
begin removed text



The Python programming language allows all objects to be tested for their truth value. The following values are considered false:

  • Numeric zero, None, False.
  • Empty containers such as empty strings, lists, tuples, dicts and sets.
  • User defined object instances have control over their Boolean value through special methods __bool__[1] and __len__.

In all other cases, objects are considered true.

An explicit bool type was added to the language in version 2.3, consisting of the values True and False, which can be used in arithmetic expressions as 1 and 0.[2]

Boolean operators and Boolean built-in types always return one of the Boolean values True and False except for the operators "or" and "and" which return one of their operands (from left to right, the first operand that determines the Boolean value of the expression).[3]

>>> class spam: pass    # spam is assigned a class object.
... 
>>> eggs = "eggs"       # eggs is assigned a string object.
>>> spam == eggs        # (Note double equals sign for equality testing).
False
>>> spam != eggs        # != and == always return bool values.
True
>>> spam and eggs       # and returns an operand.
'eggs'
>>> spam or eggs        # or also returns an operand.
<class __main__.spam at 0x01292660>
>>>


end removed text
Is there a place for this text in the Python-related articles? Perhaps in the Wikibook? Thanks, and all the best, --Jorge Stolfi (talk) 23:59, 30 December 2009 (UTC)

Hello world

You should add an "hello world" program... —Preceding unsigned comment added by 89.139.110.116 (talk) 00:46, 6 March 2010 (UTC)

here you go:
import __hello__
TJRC (talk) 00:57, 6 March 2010 (UTC)
  1. ^ http://docs.python.org/3.1/reference/datamodel.html#object.__bool__
  2. ^ "http://python.org/doc/2.3.5/whatsnew/section-bool.html". {{cite web}}: External link in |title= (help)
  3. ^ "Boolean operations".