Timeline for Immutability across programming languages
Current License: CC BY-SA 4.0
12 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Sep 11 at 11:33 | history | edited | Marc van Leeuwen | CC BY-SA 4.0 |
edited body
|
Sep 10 at 17:15 | comment | added | Steve | In fact in programming, the numeric coincidence is only rarely important, as numbers (as well as codes and strings) are routinely employed for many incommensurate purposes, whereas the commonality (or not) of place or lineage is relevant extremely frequently. And this is why mathematicians, unless they are extremely skilled philosophers so as to cope with both areas, do not make good computer science educators, because the thinking (which they transmit to their students) originates from the typical concerns and context of mathematical analysis, rather than the context of data processing. (4/4) | |
Sep 10 at 17:10 | comment | added | Steve | So far, there is no logical inconsistency, just conflated terminology. But now move on to asking "are these the same values?". The mathematician is liable to readily declare that the value 93 found in any two places "are the same". The experienced programmer is less likely to answer this definitively in the affirmative, unless either the two places in question are in fact the same place, or unless there is a common lineage of causation for the setting of the two places. YearOfBirth: 93 and HouseNumber: 93 are certainly "not the same values" to the programmer. (3/4) | |
Sep 10 at 17:07 | comment | added | Steve | I'd guess this leads to an understanding of assignment amongst mathematicians where there can be instantiation or de-instantiation of a number in a certain place, but not a modification of the number itself. It is therefore valid in this view to say the "value is not mutated". However, the programmer would equally say the "value is mutated", because for him the term "value" means "the current contents of a storage location", which is changed by the assignment. (2/4) | |
Sep 10 at 17:07 | comment | added | Steve | I am reading a lot more into it than you intended, I hope you don't mind. I do follow your reasoning and I'm not complaining about it in its own terms, I'm simply observing that there are differences in how mathematicians tend to conceptualise things and use terminology. You are using the word "value" to refer to a number (in the sense of: a kind of mathematical object). Crucially, instances of the same number (or value) can be found in more than one place. A programmer meanwhile is more liable to use the word "value" to refer to the current contents of a storage location. (1/4) | |
Sep 10 at 15:00 | comment | added | Marc van Leeuwen | @Steve I think you are reading to much into what I said. Compare with the following fictive example: suppose my daughter currently measures 93cm and that subsequently she grows, as children are apt to do. Then nobody would say that 93cm is a mutable value, but instead that the (attribute) height of my daughter has changed, and is now given by a different value. In mathematics values are never mutable, for the simple reason that we like to say things that are always true, and that would not be possible if the values we are using are themselves changing. Of course we can still describe change. | |
Sep 9 at 12:35 | comment | added | Steve | In my experience mathematicians tend to get a little bit sloppy with this and don't clearly differentiate between the machine and their minds. Programmers are better at this, because they are accustomed to writing software that multiple people use concurrently, and therefore the question of what is where and when, who knows what, and how information is mediated between people via the computer, becomes a core concern that it typically isn't for mathematicians who I think regard and use computers much more like personal calculators - and their conceptualisations adapt likewise. (2/2) | |
Sep 9 at 12:33 | comment | added | Steve | I think the implied philosophy is the difference. In a computer (a kind of machine), a "number" or a "value" is a physical state of a certain part of the storage hardware (a "field"). It's true to say these states represent something more meaningful to users, but that additional meaning of the states is in the head of the user, not inside the computer. So if you say that the "value is not changed" upon reassignment of a field, then if it isn't the state of the field being changed, then what is being changed instead? What else is there inside the computer besides the states? (1/2) | |
Sep 9 at 9:38 | comment | added | Marc van Leeuwen | @Steve This is getting into philosophical terrain, which is probably not the purpose of this question. But in mathematics "existence" has a different meaning than in the sciences, whether astronomy or history or whatever. A number like 46502 does not exist in a physical sense, and by choosing a much larger value it does not even exist in the looser sense of being an attribute (like the cardinal) of any entity or collection in reality. But in math one does not need such existence to state that 46502 is a member of the set of natural numbers, which does not exist in that manner either. | |
Sep 6 at 16:02 | comment | added | Steve | What is less clear in this conception is what space things exist in when they are not contained in storage, or how they come to storage from that other place. Computers have no imagination like the mathematician, so it is less clear what other space they are accessing when bringing things from this non-storage place into storage. (2/2) | |
Sep 6 at 16:02 | comment | added | Steve | "it is not the values (in the mathematical sense) themselves that change, just the question which values are contained in storage" - an interesting point which highlights one of the ways in which mathematicians tend to conceive of things differently. To the mathematician, numbers exist, always have, and always will. Whether they are contained in storage or not doesn't affect their existence. By this same logic, a string containing a work of Shakespeare existed before Shakespeare was even alive, and what Shakespeare did was merely to contain that work into storage. (1/2) | |
Sep 3 at 22:05 | history | answered | Marc van Leeuwen | CC BY-SA 4.0 |