Talk:Python (programming language)/Archive 9: Difference between revisions

Content deleted Content added
Archiving 2 discussion(s) from Talk:Python (programming language)) (bot
 
m Archiving 2 discussion(s) from Talk:Python (programming language)) (bot
Line 33:
: '''Oppose''' consensus apparent. Removing merge tag.
{{Discussion bottom}}
 
==COI==
 
I just linked to blogory.org after reading the policy guidelines.
 
Understandably Wikipedia is very sensitive about links, and so I want to
be most respectful of the site. In case there is any concern about my posting,
here is the background.
 
I run blogory.org. As of today, Jan 19, 2016 it has 169 links about Python, and 63 links about zodb.
 
Blogory.org is a site very similar to DMOZ or Yahoo Directory.
 
In contrast DMOZ, has 328 links about Python, and 1 link about zodb.
 
Really DMOZ is so out of date.
 
So I linked to the appropriate pages of my website from Wikipedia->Python
blogory.org/python
 
and from Wikipedia->zodb
blogory.org/zodb
 
I presume that is okay under the external links policy:
"A well-chosen link to a directory of websites or organizations. Long lists of links are not acceptable. A directory link may be a permanent link or a temporary measure put in place while external links are being discussed on the article's talk page."
 
Please let me know if there is anything I should do to make this link more appealing to the Wikipedia community.
[[User:Clozinski|Clozinski]] ([[User talk:Clozinski|talk]]) 14:07, 19 January 2016 (UTC)
 
:Please see [[User talk:Clozinski#January 2016]]. --[[User:Guy Macon|Guy Macon]] ([[User talk:Guy Macon|talk]]) 14:15, 19 January 2016 (UTC)
 
== List of statements: style of paragraph on "=" statement does not fit with other statements ==
 
Currently the paragraph on the "=" statement is very long and does not really go well with the explanations on other statements. For example the 'if' statement is described like this:
 
* The [[if-then-else|<code>if</code> statement]], which conditionally executes a block of code, along with <code>else</code> and <code>elif</code> (a contraction of else-if).
 
This is easy to understand for even for beginners. On the other hand the "=" statement is described like this:
 
* The assignment statement (token '=', the equals sign). This operates differently than in traditional [[Imperative_programming|imperative programming languages]], and this fundamental mechanism (including the nature of Python's version of "variables") illuminates many other features of the language. Assignment in [[C (programming language)|C]], e.g., "x = 2", translates to "typed variable name x receives a copy of numeric value 2". The (right-hand) value is copied into an [[Memory_management#ALLOCATION|allocated storage ___location]] for which the (left-hand) [[Variable_(computer_science)|variable name]] is the symbolic address. The memory allocated to the variable is large enough (potentially quite large) for the declared [[Type_system|type]]. In the simplest case of Python assignment, using the same example, "x = 2", translates to "(generic) name x receives a [[Pointer_(computer_programming)|reference]] to a separate, dynamically allocated [[Object_(computer_science)|object]] of numeric (int) type of value 2." This is referred to as "binding" the name to the object. Since the name's storage ___location doesn't "contain" the indicated value, it is not proper to refer to it as a "variable." Names may be subsequently re-bound at any time to objects of wildly varying types, including strings, procedures, complex objects with data and methods, etc. Successive assignments of a common value to multiple names, e.g., "x = 2"; "y = 2"; "z = 2" result in allocating storage to (at most) three names and a single numeric object, to which all three names are bound. Since a name is a generic reference holder it is not reasonable to associate a fixed [[Type_system|data type]] with it. However at a given time a name will be bound to '''some''' object, which '''will''' have a type; thus there is [[Dynamic_type|dynamic typing]].
 
I think this is too complicated and doesn't fit with the rest of this list. My suggestion would be:
 
* The assignment statement <code>=</code>, which assigns a value to a variable.
 
We could move the longer version to [[Python syntax and semantics]].
 
What do you think? --[[User:Marko Knoebl|Marko Knoebl]] ([[User talk:Marko Knoebl|talk]]) 23:09, 1 February 2016 (UTC)
 
: There is no point in a para that says "The assignment statement <code>=</code>, which assigns a value to a variable.", no more than there is in the statement "The [[if-then-else|<code>if</code> statement]], which conditionally executes a block of code, along with <code>else</code> and <code>elif</code> (a contraction of else-if)." Both of these are trivially obvious to anyone with the rudimentary level of knowledge we would assume for a reader interested in an article on a specific programming language. Both fail WP:MANUAL (by not even reaching that level!). Is there a single reader who reads past the lead (which introduces Python as an unsurprising block-structured procedural language) and will then learn ''anything'' new from such a bland statement? If we are to have descriptions no more detail than that, then we might as well state nothing about the assignment operator or the if statement at all and just save the length.
: Python's assignment operator is a little more than this though. This article goes into it in some depth. This is useful depth and generally to be commended. We need more like that, not less.
: We could move it, as there is an article at [[Python syntax and semantics]]. Given the two levels of articles this is viable. It's not there as yet and it is needed there. This description is quite important for understanding Python behaviour.
: So I'd be OK with moving it, but I'd prefer to keep it and maybe re-cast it as an explanation of a broader typing and instancing concept than just "explaining what assignment operators are". It shouldn't be lost though. I don't like the idea either of replacing it with the bland statement. Of the two, I'd rather delete the vacuous and pointless explanation of the if statement. We're not a manual, we don't have to list every feature. Our job is to explain Python and its characteristic features, not exhaustively document it for a beginner's lesson. Our readers already understand the basics of assignment and conditional branches. [[User:Viam Ferream|Viam Ferream]] ([[User talk:Viam Ferream|talk]]) 13:03, 2 February 2016 (UTC)
 
:: Thanks for your constructive comments. What bothers me about the section is that it somehow diminishes the article's readability as more and more (unrelated) stuff is put in the section "Statements and control flow". If you look at [https://en.wikipedia.org/w/index.php?title=Python_%28programming_language%29&oldid=100203385#Control_structures_and_statements that section from 2007] you'll see that it just included five statements. (In my eyes these five statements are amongst the "central" ones in Python and give a quite good overview of the language). In the past this section has been expanded to include many other (less significant) statements and has also absorbed other topics like ''coroutines'' or (in the edit at hand) an explanation of ''dynamic typing'' and ''[[reference type]]s''.
:: I'm wondering if we should restructure the section entirely and get rid of the list of statements (presenting its current content in a more meaningful way) --[[User:Marko Knoebl|Marko Knoebl]] ([[User talk:Marko Knoebl|talk]]) 22:40, 4 February 2016 (UTC)
 
:::I made bold change, but will now revert it myself after seeing that this has been under active discussion. I think my change was OK, but I should have come here first. [[User:Snori|Snori]] ([[User talk:Snori|talk]]) 06:00, 20 September 2016 (UTC)