Psychophanta wrote:and now...
the question is:
why not?
(NOTICE: answers like "because every language is not like that" or "because everytime has been like that", etc, are not considered valid, because it is not a valid argue)
The biggest reason "nobody does it that way" is because when we are about 12 years old, we learn that y=4x means y=4*x. To permit a number in the first position of a variable will confuse 100% of the new users. It is not merely a "different way to do things," but it contradicts everything taught about variables and numbers outside of programming--and these practices are centuries old. That's why nobody does it that way; to avoid confusion.
As far as parsing goes, it is
trivial to implement it, and has
nothing to do with the decision. PB has a super simple parser, so perhaps it only looks at the first character to determine the next token for all numbers (123, $123, #abc, etc.), but many languages allow mixing of numbers and characters (0x123, 0b1001, for instance), and allowing this would be far from complex. The syntax is simple, very easy to implement, and would
not require "42" to be a variable if you require that all variable-names contain at least one non-number character. In fact, it would be no more difficult than allowing the underscore in a name.
So, why not? Mostly, to avoid confusion.