Skip to content
https://www.google.com/accounts/o8/id?id=AItOawmciK-a7CBIg8PeZu02yCuQ0iEdvNIJBHk edited this page Mar 9, 2011 · 24 revisions

Canvas Support in webkit-based pyjamas desktop

Webkit-based canvas support in pyjamas desktop would allow developers using canvas apps to use pyjamas desktop in Ubuntu 10.10 & provide better support on all Windows OS's & Mac OSx.

additional explanation

Previously the main version of Pyjamas Desktop in Linux was based on XULRunner. Partial functionality was available on Mac OSX via Webkit and on Windows via MSHTML. Canvas support in Webkit was (and still is) unavailable, and I believe MSHTML canvas uses VML, which is pretty slow. Since then Ubuntu completely destroyed the ability to use XULRunner's hulahop, breaking Pyjamas Desktop and several other programs (last working version of XULRunner is 1.9.1 on Ubuntu 9.10), and while I'm not sure if other Linux distributions still run XULRunner-based Pyjamas Desktop, it seems that XULRunner-based PYJD is now obsolete, especially since Webkit version got a lot better, and faster than XULRunner.

Unfortunately, Webkit version does not currently support canvas. This is a big bummer as canvas is one of the main Flash-killer features of HTML5.

additional explanation end

Mobile Support

Create support for mobile platforms (iOS/android) to work with mouse inputs.

java2python

And a port of Tomas's A parser stuff to python, along-side fixing up that java2python project that uses ... what is it... not python-ply, the other one.

IE9 support

Current version of pyjamas sees IE9 as a browser based on IE6. As a result it makes several assumptions that hinder IE9 performance. It uses some tweaks to allow pages to render correctly in IE6 that IE9, being much more standards-compliant, no longer needs. It also simulates canvas element via much slower VML that comes standard with IE6-8. Since IE9 now supports canvas natively with same speeds as other modern browsers, this VML feature does more harm than good for IE9.

The best approach would be to create a new identifier for ie9 similar to current "safari", "mozilla", "ie6" identifiers (could even call it "ie9"), then a new __ie9__ directory inside the library directory where other browser-specific module implementations reside in case ie9 needs any unique tweaks, letting the compiler be aware of it and compiling *.ie9.cache.html version of the website in addition to the current ones

Web Application Framework

Creating a web application framework on top of pyjs's ui and browser library for making application faster to create and run and looks beautiful. ( css theme, layout, event propogation, secure rpc, project organization, multiple app in one app etc ) ( equivalent to http://en.wikipedia.org/wiki/Vaadin for gwt )