On Mon, Mar 24, 2014 at 5:02 PM, Paul Mooser <
taro...@gmail.com> wrote:
> I'm curious as to whether your approach to rendering is similar to that used
> in gorilla repl (
http://gorilla-repl.org) ? Is it similarly extensible ?
Session uses Om,
https://github.com/swannodette/om
You should definitely check it out to understand the rendering model.
Session's renderer is entirely client side, and in clojurescript. This
is a plus in the simplicity column.
The software engineering of actually adding new renderers to session
is a (temporary) pain, which is a minus. (Basically you need to clone
yantra,
https://github.com/kovasb/yantra, and used that cloned copy in
Session).
The main difference is that Session's renderer exposes the full power
of the browser platform. You can do arbitrary, interactive,
client-side stuff. That is difficult to pull off if you are sending
bits of HTML from server to client.
One thing I really like about Om is that there is no intermediary
format/layer between the user-facing API and the platform. In
Mathematica, and in Gorilla, there is a base layer of primitives that
the user compiles to, and then the system interpretes in terms of the
platform. In both cases, the system is a black box from the point of
view of primary language; if the system doesn't provide a primitive,
you have to pop open the black box and deal with a completely
different world (C++ in Mathematica's case, Javascript in Gorilla's).
In Om there is no black box or impedance mismatch. Just clojurescript
programming all the way down to the platform's capabilities. The user
can create constructs at parity with the built-ins.