Talk:Python (programming language)

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Former good articlePython (programming language) was one of the Engineering and technology good articles, but it has been removed from the list. There are suggestions below for improving the article to meet the good article criteria. Once these issues have been addressed, the article can be renominated. Editors may also seek a reassessment of the decision if they believe there was a mistake.
Article milestones
DateProcessResult
March 7, 2007Good article nomineeListed
February 17, 2009Peer reviewReviewed
March 3, 2009Good article reassessmentKept
February 9, 2023Good article reassessmentDelisted
Current status: Delisted good article

New resource for historical info about Python[edit]

For any editors updating this page, I just noticed today that in November 2022 Professor Lambert Meertens published an article on "The Origins of Python" in the journal Inference. It may be useful in that it covers a great amount of the history of ABC and Guido van Rossum's early development of python. (I unfortunately don't have the cycles myself to do any editing of this page right now.) - Dyork (talk) 13:07, 23 January 2023 (UTC)[reply]

Good article reassessment needed?[edit]

This article has been listed as possibly requiring a WP:Good article reassessment for quite a while now. We're trying to empty this category (and possible deprecate it). Do editors here believe it still meets the criteria? My impression is that it's close, but that a few improvements are needed:

  • Most importantly, I think the lead needs to be simplified to comply with WP:make technical articles understandable. The most difficult words in the lead for me are garbage-collected, structured programming, standard library, and what type of language ABC was. I think more emphasis should be put on uses of the language (simple to learn, large community and therefore loads of specific libraries, but slow).
    • Occasionally, the body also misses opportunities to explain things simply "Python uses duck typing and has typed objects but untyped variable names.". Duck typing is easy to explain, but will be unfamiliar to many.
  • There are occasional (potentially) uncited statements like:
    • When speed is important, a Python programmer can move time-critical functions to extension modules written in languages such as C; or use PyPy, a just-in-time compiler. Cython is also available, which translates a Python script into C and makes direct C-level API calls into the Python interpreter.
    • Most of the text in "Development environments"
  • Some of the text may be in need of updates, such as:
    • Cython compiles (a superset of) Python 2.7 to C (while the resulting code is also usable with Python 3 and also e.g. C++). I assume Cython now works with python 3?
    • Should we cover the current project of making python faster? [1].

If no progress is made towards these issues, I'll list the article at GAR in a few weeks. Pinging top contributors: @Abductive, Comp.arch, Thumperward, and Akeosnhaoe:. —Femke 🐦 (talk) 10:19, 29 January 2023 (UTC)[reply]

I don't have anything to say about whether this needs reassessment, but I would strongly oppose removing the technical language you list from the lead. It's a well-established convention in articles about programming languages (see Rust, C, Perl) to describe their features using technical terms that may not be familiar to the general reader. Programming languages are a specialized subject; it is rather difficult to talk about them in a meaningful way without technical language. From the essay you linked: For highly specialized topics where it is difficult to give an overview in terms with which a general audience will be familiar, it may be reasonable to assume some background knowledge in the lead while linking to the prerequisites required to understand it.
That said, this doesn't mean we can't add content to the lead about the uses, history and appeal of the language (in the articles linked above, large parts of the leads consist of this sort of content, and this article is indeed lacking). In fact, I'd strongly support this. — Jumbo T (talk) 11:47, 29 January 2023 (UTC)[reply]
I do not believe Python is a highly specialized topic. It's probably the most common programming language out there, and is often used by those just starting to program. Information such as " cycle-detecting garbage collection, reference counting," for python 2 is not really relevant to most readers, and it is highly technical. Not saying that we should remove all jargon of course. You can't understand what python is without saying it's high-level, dynamically typed and so forth. We can take the example of Rust, where jargon is either explained or contextualised (see second sentence). —Femke 🐦 (talk) 12:02, 29 January 2023 (UTC)[reply]
I moved that Python 2 stuff out of the lead because I agree, it was relevant when Python 2 was the latest version but it doesn't make sense to have it in the lead anymore. Akeosnhaoe (talk) 12:50, 29 January 2023 (UTC)[reply]
Without looking at the rubric, I support marking this down/re-assessing (whatever that means) because I can't call this article "good". It's written as an introduction to the language and it's a pretty complete high-level description of Python, which is hopefully helpful to beginners, but on the other hand it's just kind of an ugly article and repeats itself often. It's grown organically, with people adding small snippets and expanding/completing sections they care about with little to no regard for the entire article. It would be great for someone to sit down and systematically edit it, pare it down/reorganize stuff. And also remove more mentions of Python 2?
> I think the lead needs to be simplified
It would be nice but I don't think it can be in a useful way. You could make the edit and then we can discuss reverting the specific edit. For the audience that's familiar with programming languages, the list "significant whitespace, dynamic typing and garbage collection" is the first sentence you want to read. The stuff about "programming paradigms" is kind of fluff in my opinion, all modern languages are "structured, object-oriented and functional", and I would support just removing it completely, but other people like to talk about that kind of stuff.
> simple to learn, large community and therefore loads of specific libraries, but slow
I agree that this kind of summary of what Python is in practice is good and writing it as a more explicit list into the article is a great idea. This article is trying to say these things in different places.
> what type of language ABC was
I don't think anyone is expected to know that. It's a link if you care to know how Python is connected to the past.
> I assume Cython now works with python 3?
No, as per the Cython article, there's a preview version that does but formally the current version still doesn't. Cython isn't that widely used. Akeosnhaoe (talk) 14:33, 29 January 2023 (UTC)[reply]

no complaints from me: the areas highlighted are things that I've tried to tackle over the years, but any technical article on here tends to backslid towards trivia and pointless nitpicking if not strictly watched. In particular, all of the bulleted syntax stuff should be relegated to the syntax sub-article if not removed entirely. Chris Cunningham (user:thumperward) (talk) 06:46, 2 February 2023 (UTC)[reply]

GA reassessment[edit]

Python (programming language)[edit]

The following discussion 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.


Article (edit | visual edit | history) · Article talk (edit | history) · WatchWatch article reassessment pageMost recent review
Result: No improvemnent, so delisted. ~~ AirshipJungleman29 (talk) 13:16, 9 February 2023 (UTC)[reply]

A 2007 listing of a still in-use programming language; no surprise that huge amounts of material is unsourced, violating GA criterion 2. I also feel that too much detail is being paid to the syntax of the language, possibly violating criterion 3b). ~~ AirshipJungleman29 (talk) 12:37, 1 February 2023 (UTC)[reply]

See above for further issues. No harm in starting the reassessment now. ~~ AirshipJungleman29 (talk) 12:41, 1 February 2023 (UTC)[reply]
@AirshipJungleman29: can you notify the major contributors, reviewers and initial nominator? Pings may be missed, and I only pinged those with over 5% authorship. Feel free to remove this comment afterwards. Femke (alt) (talk) 14:00, 1 February 2023 (UTC)[reply]
@Abductive, Comp.arch, Thumperward, and Akeosnhaoe:
Perhaps @Peterl, Gadfium, TJRC, MrOllie, and Peaceray: too. ~~ AirshipJungleman29 (talk) 14:36, 1 February 2023 (UTC)[reply]
Femke (alt), this article annoyingly dates to before the days of nominator/reviewer.~~ AirshipJungleman29 (talk) 14:33, 1 February 2023 (UTC)[reply]
I am not a major contributor to this article, I just ran a couple of bots on it. Abductive (reasoning) 14:37, 1 February 2023 (UTC)[reply]
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.

Semi-protected edit request on 6 August 2023[edit]

Update latest beta release version - Python 3.12 0rc1 has been released (2023-08-06) 86.130.253.139 (talk) 14:51, 6 August 2023 (UTC)[reply]

Already done via Wikidata —⁠PlanetJuice (talkcontribs) 20:19, 6 August 2023 (UTC)[reply]

What platforms can run Python applications?[edit]

It would be good to know on what platforms and version Python can run on in a table, eg Windows, macOS, linux, iOS, Android, ... The table would probably need an explanation of any specific tools needed (frameworks, compilers). Also whether packaged packaged apps can be built that can be distributed (eg app store) to users without users requiring anything else to be installed.

An explanation of how features unique to each platform can be accessed would be useful. FreeFlow99 (talk) 16:59, 6 March 2024 (UTC)[reply]

Climate change[edit]

This page should mention that programming languages like Python that are not compiled into native executable code (e.g., they are interpreted or compiled into byte code that is run in a virtual machine) require more processor cycles for the same results compared to native executables. Therefore they use more power to execute, and they contribute more to climate change. Given the ubiquity of Python, a vast amount of power is wasted on interpretation or byte-code execution. 209.145.84.194 (talk) 20:08, 28 March 2024 (UTC)[reply]

Do you have a source which describes this? The correlation between interpreted languages and climate change is not something I have seen described before. —Panamitsu (talk) 23:59, 28 March 2024 (UTC)[reply]
I've seen this mentioned before (don't have any immediate links) and it probably has some validity. But, I agree with Panamitsu that to actually include this we need good sources (I think more than one unless it's a really solid one) that discuss this and do a pretty complete analysis. Since this isn't unique to Python and there are other tradeoffs beyond just how the final applications are run. Skynxnex (talk) 13:21, 29 March 2024 (UTC)[reply]
I can find a few reliable sources which suggest that Python does indeed use much more energy for the same tasks when compared with compiled languages like C.[1][2][3] However, I find no studies examining a link with climate change. This could be because demonstrating such causality would, I imagine, be very difficult. I do wonder what the impact of language choice is, though, relative to e.g. the total power draw of all electronics in a country—it might be an interesting exercise to estimate how many GW (or perhaps only MW?) could be saved in your country by rewriting all Python programs in C. — Jumbo T (talk) 13:27, 29 March 2024 (UTC)[reply]
Even if true that interpreted or VM run Bytecode compiled languages require more processor cycles, then the proper place for that discussion would be on the pages for those execution environments rather than on specific languages pages. I would also like to see the citations for that. But creating a link to climate change is an additional leap that again would require evidence. It's quite possible that despite requiring more processor cycles to run similar code there are other features that make it more efficient in practice, or even that python is a more amenable language for the creation of control systems for products that combat or mitigate against climate change - to be clear, that is a hypothesis without evidence but it does caution against a simplistic narrative: Python -> Byte code -> more cycles -> worse for environment. Chris (talk) 09:06, 2 April 2024 (UTC)[reply]


References

  1. ^ Abdulsalam, Sarah; Lakomski, Donna; Gu, Qijun; Jin, Tongdan; Zong, Ziliang (November 2014). "Program energy efficiency: The impact of language, compiler and implementation choices". International Green Computing Conference: 1–6. doi:10.1109/IGCC.2014.7039169.
  2. ^ Pereira, Rui; Couto, Marco; Ribeiro, Francisco; Rua, Rui; Cunha, Jácome; Fernandes, João Paulo; Saraiva, João (May 2021). "Ranking programming languages by energy efficiency". Science of Computer Programming. 205: 102609. doi:10.1016/j.scico.2021.102609.
  3. ^ Koedijk, Lukas; Oprescu, Ana (June 2022). "Finding Significant Differences in the Energy Consumption when Comparing Programming Languages and Programs". 2022 International Conference on ICT for Sustainability (ICT4S): 1–12. doi:10.1109/ICT4S55073.2022.00012.