edA-qa writes "Programmers don’t usually spend a lot of time thinking carefully about names and values. As long as we follow a few basic rules, our code will generally behave as expected. As I develop my language Leaf however, I need to give a great deal of consideration to these rules. The separation between names and values, and how things are assigned, form the core of a language. Of course I’d like to get this right. Unfortunately it’s not as simple as deciding between “by value” or “by reference” semantics. There are many situations and programming techniques to consider."
Link to Original Source