Sun Jul 20 03:51:45 CEST 2008

Staapl pilars

  - stack machines have efficient VMs / hardware implementation
  - maps to clean functional semantics
  - imperative code looks functional (stack gives referential transparency)
  - easy to express partial evaluation / rewrite rules
  - metaprogramming simplified: no hygiene or reftrans problems

  - simple dynamic type system: easy to understand. basis = pattern
    matchin transformation.

  - incremental development
  - target-view console

  - type systems: how to add more static analysis
  - embed array processing languages

As a summary, I think over the course of a couple of years I've found
the proper factorization of the program, and as good as optimal
syntactic constructs for extending it.

Disadvantages? Mostly that base language is a stack language (matter
of taste). And dynamic generation can produce obscure errors and won't
catch type errors.

Bottom line: simple highly extensible metaprogramming system for tiny
controllers without arbitrary abstraction walls + a practical
interactive framework.