4 ms·
It is because that's the definition of the term. You are insisting that the definition is changed. Emulating call-by-reference in a call-by-value environment d
by Nokinside 9y ago
It is because that's the definition of the term.
You are insisting that the definition is changed. Emulating call-by-reference in a call-by-value environment does not change the semantics of the language.
Just accept that the meaning you project to these terms is different from their real meanings. Don't try do redefine them and convince the rest of the world that your meaning is the right one.
- masklinn 9y agoI think there is value in actually having a term for Java's (and Python's, and Ruby's, and Javascript's) argument-passing semantics, what was called "call by sharing" in CLU (and sometimes called pass-reference-by-value in some communities), because it's sufficiently different than either pass-by-reference or "full-fledged" pass-by-value that using these terms gets confusing, especially to people not learning them… which would be those you're using these with as the others have no issue understanding them. I do also think lisper is absolutely terrible at making that point.
- Izkata 9y agoI like call-by-sharing. Every single one of these arguments between call-by-value and call-by-reference I've seen always fall apart because the arguers never accept that there's (at least) 3 forms of calling, whatever we want to call them. > and sometimes called pass-reference-by-value in some communities Or call-by-value-of-reference. It's too much of a mouthful, but is the usual alternative I hear.
- zzzcpan 9y agoThere cannot be a real meaning or a right meaning, only an agreed upon meaning. And the rest of the world first have to agree on that meaning. But there is no agreement so far. Furthermore, the term is so useless, that most people only encounter it in debates about its meaning.
- mark-r 9y agoThere can be an original meaning. The idea of hiding pointers and not allowing them to be reasoned about separate from the objects they point to is a relatively new invention. The terms "pass by value" and "pass by reference" predate that invention.
- Nokinside 9y agoThere is a real and exact meaning in programming language semantics. It's used consistently in language specs and literature. Then there is another meaning that comes from misunderstanding the exact definition or trying to guess the meaning. Lisper is trying to argue for that. This definition is not used anywhere where programming language semantics is written down. It lives in the realm of blogging and forum postings.
- ItsMe000001 9y agoWhat you say is true ONLY within a specific context. Your statement is never true in the "world" or "universe". Ask some linguists - language is not math, it is more like biology. Context matters. People decide for themselves. e have no UN body that defines for each and every person in the world what something means. What you refer to is that some groups of people WILL indeed define something, but that is for their own special communication in their field. Nobody is bound to that definition either, even the very same people may use the same word much more loosely in a different context. We have lots and lots of words that have different meanings in different context and/or to different people. That's okay -language is as human as we are. Nobody owns language. People decide for themselves what they want and how they use it. The "authorities" - the linguists compiling things like dictionaries, do so by looking at how people use something, and then they document the many different usages as they appear. You can only dictate language when you have a means of control over people outside of language, or if you get others to agree. . In response to mark-r: Meanings change all the time, often the original idea is not even part of a new meaning any more. So asking what someone who first used a word meant is useless too.