On Jan 8, 2010, at 9:32 AM, Andy Somogyi wrote:

Hello

I'm interested in improving the sage desktop app, in general.

I'm thinking about a creating front end that feels similar to Mathematica. This can be accomplished with a webkit based application. This approach can completely eliminate the need for a web server, and allow python direct access to the html DOM, and is cross platform, and yet looks and feels native on each platform, with little work.

I actually think having a web server is an advantage, because then one doesn't have to have a local installation to use it. (Sage ships with its own web server, so it doesn't require one beforehand.)

HTML 5 included some very useful elements such as the canvas tag, and I see it as the perfect way of generating interactive live documents. Basically, the all of the UI would be displayed with HTML / DOM, and each UI event would directly call python functions. Essentially, have a <script> tag that hosts python instead of Javascript. Note, this is exactly what the Appcelerator project does.

Webkit also now has the O3D 3D canvas / scene graph from google.

With some hacking, it should also be possible to directly embed an mplotlib element in a html / webkit document.

There are a couple approaches to allow python direct access to the HTML DOM, 1: webkit has a fairly standard way of adding language bindings, essentially, there are a set of idl files that are processed, and a binding generated, currently these exist for jscript (both classic and V8), ActiveX / COM, gdom, and Objective C. It is possible to extend this to also include direct python binding. 2: use a middle layer, like Appcelerator, (which is a webkit based way to create desktop applications).

Another advantage of drawing to the canvas tag api is it directly supports saving as pdf, thus allowing for publication quality graphics.

any thoughts?


Since we're not going to be getting rid of the webserver GUI (remote use is just too valuable) how much code reuse could there be, or would it be a separate GUI to maintain? It is an interesting idea though, how long do you think it would take you to implement this?

- Robert

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to