Evlan
Simple Syntax
Last updated at 2005/04/19 06:33:07 PDT by Temporal

The Evlan language itself is far smaller and simpler than many other languages. For example, where the C language contains around 30 keywords and C++ around 60, Evlan contains only 19 (as of 0.3). Similarly, Evlan contains far fewer actual language constructs (types of expressions and statements) than most languages. This is not because Evlan is less-developed or lacking in features, but rather because Evlan was intentionally designed to do more with less.

For example, some languages (even other functional languages) have special constructs used for the sole purpose of declaring the exports of a module. Evlan says, why do this explicitly when you could just do the following?

MyModule where
   MyModule = object of
      #publicly exported stuff
      public1 = #...
      public2 = #...
   #private symbols
   private1 = #...
   private2 = #...

If you evaluate the above expression, the result is an object containing the fields "public1" and "public2". These might internally make use of "private1" and "private2", but these two symbols are not accessible from outside the "where" block. In any case, the resulting object effectively is the module. Defining a separate way to declare modules and their exports would be redundant.

It is far easier for a programmer to remember multiple uses for a single construct than to remember multiple constructs. By keeping the language simple, programmers can more easily make effective use of the complete language and are less prone to make mistakes caused by the use of unfamiliar constructs.

evlan.org © Copyright 2003-2005 Kenton Varda
Powered by Io Community Manager, Evlan, and FreeBSD