Hey, this looks really great, and if it could be made easily extensible I think it could gain a lot of traction. From a quick glance I have a couple thoughts:
* Clojurescript!!! Why do all this work in Javascript? This is a project made for clojurescript, core.async, and maybe Om. - To make this transition feasible the existing javascript could be used like a library from a clojurescript shell that can then grow. * Being able to render values of different types is important, and I think it deserves a lot of attention in both the design and documentation. There are some values that will need server side rendering, others client side, and some both. If you can define a set of protocols for each side of this channel then people would ideally be able to quickly add support for whatever data is relevant to their project with a couple extensions. - This could be extended for values inside comments, like your latex support, by have a special comment reader that people could define reader macros for. * Also there will be some types of interaction with values that will require setting up server side state in order to work correctly. For example, it would be great to be able to define a synthesizer in Overtone and then get a button in the browser that you can click to trigger its execution on the server, pause, play, stop, and tweak parameters. Or for longer running processes, like training a neural network, it would be great to be able to setup communication between the model training on the server and a live chart in the browser. (e.g. You could 'fork' off named channels from the primary communication channel between client and server to transmit data between handlers on each side.) * When saving to a file it would be great to have a mode that only saved the code and the markdown in clean comments, without all the cruft. Very cool, and I look forward to experimenting and helping out. Thanks! -Jeff On Thursday, February 20, 2014 5:23:02 AM 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.