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