Why?

You might ask "Why another language?".

I, of all people, would use an existing language for what I'm trying to do (Scientific Computing) if possible.

So far I've tried several dozens of languages and none come even close to all of the following goals:

Goals

  1. Exploratory Programming: get answers as soon as possible after you ask, the "ask questions, get answers" property, a read-eval-print loop.
  2. Higher-order Programming: if I have to write another "for" loop for addition of vectors etc, I'm going to scream.
  3. Numeric Tower: numbers that behave as in ordinary mathematics (the one everyone on the planet learns in high school) as far as possible.
  4. Reflectiveness: allow finding out of what exists by asking the system.
  5. Simplicity: as simple as possible but no simpler (this means that there are few basic parts, and those are simple).
  6. Succintness: no unnecessary scaffolding, no extraneous braces, only what is required in order to express the actual computation. Empty space is OK.
  7. Referential Transparency: replacing a symbol by its definition must not change the meaning of the program.
  8. Symbolic Manipulation: it must be possible to work with a program as a list of symbols (symbolic differentiation etcetc).

(Haskell misses [1 3 4 8] and LISP misses [5 6 7], these are closer than any other languages)

Non-Goals

What?

So far, there exist:

Where to find more information?

5D Main Site