The primary goal of Neon is to find out whether a useful programming language can avoid some of the common errors that beginners frequently encounter in other languages.
After many years of participation on Stack Overflow, one starts to recognise the same kinds of problems that beginners encounter over and over. Some of these errors are:
if (x = 0)when
if (x == 0)is intended
It is my opinion that these kinds of errors can be avoided by language design. Neon is an experiment that attempts to show that this is the case.
Many languages have influenced the design or specific features of Neon. Some are:
VARkeyword, nested functions)
INOUTparameter passing modes, arbitrary base notation)
<...>syntax for parameterised types)
%single line comment character)
%|...|%block comment, Scheme uses
There is also a lot of negative influence, where the presence of a feature in a language has the potential to be misused (eg.
if (a = b) in C).