jlongster/outlet — Issue #2: Runtime complexity / code translation
Author: mpenet
Created: 2012-01-16 18:50:58+00:00
State: open

Hello James,

I was wondering how you want to evolve the current runtime.

I think there are (at least) 2 approaches, one taken by ClojureScript and other lisp implementations running on JS where a lot happens at runtime in order to provide some advanced features (data types, abstractions, etc), and the other which is "basically" code translation with very low runtime overhead/complexity and trade-offs/acceptance of the characteristics of the underlying environment ([sibilant](https://github.com/jbr/sibilant) or CoffeeScript are good examples of that imho). The later produce JS code very close to the source they were generated from, and in the case of sibilant, JSON is considered valid sibilant code, imposing no parsing/translation overhead.

From reading your blog posts I believe you are taking the light runtime/translation route, but I wanted to have some more details about that.

I personally think ClojureScript is already a very good solution in the 1st category (ClojureScript One is very impressive for instance), and we could benefit from having something more lightweight, that embraces the characteristics/features of the platform it is running on, closer to CoffeeScript and sibilant in this respect.