On Thu, Feb 5, 2009 at 4:26 AM, spir
Le Wed, 4 Feb 2009 23:35:30 -0330, Riobard Zhan
a écrit : <snip> * Extend name binding format "name:value" to assignments. That is, write "a:1" instead of "a=1. This may avoid tons of misunderstandings (imo, '=' for assignment is a semantic plague, a major error/fault, a pedagogic calamity). * Which lets the "=" sign free for better use: use "=" for the semantics of equality, like in math and common interpretation learnt from school. * Perhaps: use "==" for identity, instead of "is".
I'm sorry but regarding these bullet points, C makes for a persuasive argument for not changing the meaning of those operators. Pretty much everyone in computing either knows well or is at least familiar with C and probably knows one of its syntactic descendants quite well, so gratuitous deviation from C violates the Principle of Least Surprise for anyone who already is a programmer. Newbies may trip over it, but they catch on eventually. If you did want to change the assignment operator, the colon seems visually a poor choice IMHO; it's too easily overlooked and `x : y` looks rather sparse on a line by itself. The other somewhat popular choices of assignment syntax that I've seen are x := y, x <- y, and let x = y. The first and last of those still use a =, albeit with something extra, and so aren't too much of a stretch. x <- y is particularly deviant and isn't readable (as in read it out loud) IMHO; you either have to read it right-to-left (which is unnatural) as "Take y and put it into x", or as "x has y placed into it" (which uses the passive voice and so does not fit well with an imperative language. Cheers, Chris -- Follow the path of the Iguana... http://rebertia.com