Changes

112 bytes added ,  17:55, 24 March 2009
no edit summary
Line 28: Line 28:     
The purpose of this toolkit is twofold:<br />
 
The purpose of this toolkit is twofold:<br />
* it would make it easier "sugarify" web apps (like gmail).<br />
+
* it would make it easier to "sugarify" web apps (like gmail).<br />
 
* there are a lot of developers that are familiar with HTML(5), CSS and JavaScript and it would be great to take advantage of their skills.<br />
 
* there are a lot of developers that are familiar with HTML(5), CSS and JavaScript and it would be great to take advantage of their skills.<br />
 
As a bonus, some things that are hard to do with native GUI toolkits are very easy to do with HTML, like nicely re-flowing text or embedding video/audio/pdf/flash. Pyjamas Desktop (pyjd.org) was created to take advantage of this.<br /><br />
 
As a bonus, some things that are hard to do with native GUI toolkits are very easy to do with HTML, like nicely re-flowing text or embedding video/audio/pdf/flash. Pyjamas Desktop (pyjd.org) was created to take advantage of this.<br /><br />
 
Furthermore, integration of web applications with the desktop is a very useful (and popular) thing to do. Gears, AIR, Prism, HTML 5 and various combinations between them extend the browser with desktop-like abilities: persistent storage, accessing files, desktop icons, running in a separate window/process, etc.<br /><br />
 
Furthermore, integration of web applications with the desktop is a very useful (and popular) thing to do. Gears, AIR, Prism, HTML 5 and various combinations between them extend the browser with desktop-like abilities: persistent storage, accessing files, desktop icons, running in a separate window/process, etc.<br /><br />
 
There are two main strategies for implementing this:
 
There are two main strategies for implementing this:
# Running a standard site specific browser, as light as possible, that has a local webserver written in python (BaseHTTPServer should suffice) as homepage. It would use AJAX or a wrapper on top of that (like jsonrpc) to provide the bridge to python. Also, as much functionality as possible should be on the html+js side, to keep the toolkit easily hackable by web developers. This version would use Sugar APIs over the python-js bridge for storage, other filesystem access and integration.
+
# Running a standard site specific browser, as light as possible, that has a local webserver written in python (BaseHTTPServer should suffice) as homepage. It would use AJAX or a wrapper on top of that (like jsonrpc) to provide the bridge to python. Also, as much functionality as possible should be on the html+js side, to keep the toolkit easily hackable by web developers. This version would use Sugar APIs over the python-js bridge for storage, other filesystem access and integration. The biggest downside is that this process could not be automated. Some python code would have to be written.
 
# Embed a browser runtime (preferably with hulahop) that has Gears and move over even more things to the html+js side. The activity would be completely standalone and would not depend on a web server anymore. xulrunner has the advantage of a full javascript-python bridge, PyXPCOM. Dbus access through pyxpcom or [http://sandbox.movial.com/wiki/index.php/Browser_DBus_Bridge#WebKit_.28JavaScriptCore.29_version_notes this]?).<br /><br />
 
# Embed a browser runtime (preferably with hulahop) that has Gears and move over even more things to the html+js side. The activity would be completely standalone and would not depend on a web server anymore. xulrunner has the advantage of a full javascript-python bridge, PyXPCOM. Dbus access through pyxpcom or [http://sandbox.movial.com/wiki/index.php/Browser_DBus_Bridge#WebKit_.28JavaScriptCore.29_version_notes this]?).<br /><br />
 
I will be focusing on the second stragety.
 
I will be focusing on the second stragety.
158

edits