Looks pretty interesting and in line with a lot of current web framework thinking. Are there any pieces inside Escher which help with compiling Julia code to JavaScript? Or is it all "driven" from the server?
On Monday, June 8, 2015 at 12:23:21 PM UTC-4, Shashi Gowda wrote: > > Hello all! > > I have been working on a package called *Escher* over the past several > months. > > It is now quite feature-rich and ready to use in some sense. I put > together an overview here: > > https://shashi.github.io/Escher.jl/* > > My aim is to converge at a UI toolkit that any Julia programmer can use to > create rich interactive GUIs and deploy them over the web, *within > minutes*. > > Escher simplifies the web platform into a simple and pleasant pure-Julia > library. You don't need to learn or write HTML or CSS or JavaScript. Many > problems associated with traditional web development basically disappear. > There is no need to write separate front-end and back-end code, layouts are > tractable and similar to layouts in the original TeX. Communication is done > under-the-hood as and when required. No boiler plate code. Things just look > great by default. > > Briefly, here is how Escher works under the hood: > > - A UI is an immutable Julia value that is converted to a Virtual DOM > <http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM> > using the Patchwork <https://github.com/shashi/Patchwork.jl> library. > Compose graphics and Gadfly plots also get rendered to Virtual DOM as > well. > - Subsequent updates to a UI are sent as patches to the current UI over a > websocket connection > - Input widgets send messages to the server over the same websocket > connection > - Complex things like tabs, slideshows, code editor, TeX and dropdown > menus are set up as custom HTML elements using the Web Component > <http://webcomponents.org/> specification, mainly using the Polymer > library <http://polymer-project.org/>. These things are just Virtual DOM > nodes in the end. > > > This is still a work in progress, I am very happy to receive any critique > on this thread, and bug reports on Github > <https://github.com/shashi/Escher.jl>. I am very excited to see what you > will create with Escher. > > Thanks! :) > Shashi > > * - Escher uses some bleeding-edge Web features, this page might not work > so well on Safari, should work well on a decently new Chrome, and on > Firefox if you wait for long enough for all the assets to load. I will be > fixing this in due time, and also working on a cross-browser testing > framework. > > PS: I have been dealing with RSI issues of late and my hands will > appreciate any help with expanding the documentation! See > https://github.com/shashi/Escher.jl/issues/26 if you wish to help. >
