This is really neat! For the last two or three weeks I've been experimenting with a handful of different implementations of a really similar idea – an interactive Clojure "notebook" using web technologies for the frontend. In the process I've encountered a lot of the same issues you described (I'm particularly amused that we independently came up with the same idea of tagging values to indicate that they should be rendered in a particular way).
One thing that I've been playing around with is implementing the whole thing directly in ClojureScript – that is, evaluating user-entered code directly in the browser environment instead of sending it off to a JVM Clojure REPL in the background – using cljs-in-cljs, a reimplementation of the ClojureScript compiler in ClojureScript. This area of experimentation is particularly interesting to me because it seems to have the greatest potential for realizing the "open, ubiquitous platform" part of the dream :) Definitely looking forward to helping out with this in any way I can. On Wednesday, February 19, 2014 1:23:02 PM UTC-8, Jony Hudson wrote: > > Hi All, > > I'm pleased to announce the first release of Gorilla REPL, a rich REPL in > the notebook style: > > https://github.com/JonyEpsilon/gorilla-repl > > From the README: > > "You can think of it like a pretty REPL that can plot graphs, or you can > think of it as an editor for rich documents that can contain interactive > Clojure code, graphs, table, notes, LaTeX formulae. Whatever works for you! > One of the main aims is to make it lightweight enough that you can use it > day-to-day instead of the command-line REPL, but also offer the power to > perform and document complex data analysis and modelling tasks. Above all > else, Gorilla tries not to dictate your workflow, but rather to fit in to > the way you like to work, hopefully putting a bit more power to your elbow." > > You might like to take a look at a video introduction that shows what it > does better than my poor prose describes it: > > https://vimeo.com/87118206 > > I hope you like it and find it useful. In particular I really hope it fits > in to your workflow, and if not it would be great to know why. Bear in mind > it is very new and hasn't had a lot of testing, so caveat evaluator. In > particular: > > * I've done very limited testing other than on Safari on Mac. I've checked > that it works in most of the major browsers on Windows and Mac, but that's > about it! > > * At the moment you can only open one window otherwise it breaks > (silently!). I'd love some help on the bug that's blocking this from > someone who understands nREPL better than me. > https://github.com/JonyEpsilon/gorilla-repl/issues/10 > > * It relies on an internet connection at the moment, at least until it > caches various fonts. Need to get in touch with someone at clojars about > size limitations. > > > I think there's a lot still to be done, and there are some areas that > would really benefit from feedback from clojure developers more experienced > than me. Directions I'd love to see explored: > > * More work on plotting. Still very green, and much could be improved. > > * Incanter integration. If I've understood correctly, Incanter can > generate SVG, so shouldn't be too difficult. > > * Content-types. Currently values are tagged to indicate they should be > rendered specially by the front-end. Is this the right way to do it? What > about tagged literals? > > * UI as a value. There's a lot that could be done with custom rendering of > values. Mathematica is particularly impressive in this regard, and it would > be interesting to think where this could go with clojure. I know Kovas > Boguta has thought about this a lot. > > * Clojurescript! I think this is a _really_ interesting one. I'd love to > see a pure-client-version that uses a clojurescript REPL server in a > web-worker or similar. I came to write Gorilla through thinking about this > angle originally, having previously messed around with javascript based > data analysis in the browser (see http://monkeycruncher.org - cute idea, > but no-one wants to use js to analyse their data!). In my opinion there's > some really important work to be done on opening up analysis - I'd love to > publish scientific papers not with a snapshot of my analysis, but with my > real, living, breathing analysis in them. And I love to do it on an open, > ubiquitous platform :-) > > Anyway, let me know what you think. Comments, issues and pull requests all > very, very welcome ;-) > > > Jony > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.