> Although using browser technologies for desktop applications is > interesting (and not new by any means), there are a few things with > regard to layouts which are very difficult with Web technologies (and > aren't getting any easier, either) but which are almost trivial with > classic graphical user interface toolkits, and of course there are > cases where the roles are reversed.
if it wasn't for luis pamirez's brilliant work, porting pygtk to pyjamas, i would be absolutely agreeing with you, 100%. see this: http://code.google.com/p/pyjamas/wiki/GsocLlpamies luis has demonstrated that it's possible to have your cake and eat it. effectively - incredibly - he's ported pygtk ... to the browser! so your python pygtk application gets compiled, along with his reimplementation of gtk.py, gdk.py etc., into javascript (using the pyjamas compiler) and - unmodified - your pygtk app gets to run in every major web browser. that's just... stunning. regarding what you say about web technologies being more difficult to do layouts than traditional desktop apps - i'm really sorry to say that, from my experience with using the pyjamas widget set API, i couldn't agree less. HOWEVER - if this were pure HTML and CSS, i would utterly, utterly be agreeing with you - 100%. the first paragraph of my talk for ukuug 2009 says it best: http://ukuug.org/events/linux2008/programme/abstract-LKCLeighton-2.shtml it was _such_ an abortion trying to do a simple centred layout. and it's for exactly this reason that GWT was created (and then pyjamas ported from GWT). when you're using javascript to manipulate the DOM model (or, in the case of pyjamas-desktop, manipulating the DOM model directly) then it's an _entirely_ different matter. then, when you put "standard"- like widgets which include layout manager on top of _that_, which have identical functions and functionality to those of Desktop Widgets... ... the distinction between "web" and "desktop" suddenly becomes... moot. especially in the context of luiz's work. there isn't a _single_ thing that pyjamas can't do that pygtk2, wxWidgets or pyqt4 can do. there are _lots_ of things that pyjamas can do that pygtk2, wxWidgets and pyqt4 can't do (as they stand. without extra work and/or extensions e.g. derivative customised classes based on QAbstractLayout) ok - i'm exaggerating a little :) you can't access standard python modules from pyjamas apps in a web browser, because javascript is a restricted execution environment, so you have to make do (and you can make do _extremely_ well with what's available) with the provided implementation of builtins. so, if you don't mind using XMLHTTPRequest to communicate with the rest of the world - even if it's on http loopback - _then_ you're ok :) and yes, XMLHTTPRequest is supported in pyjamas-desktop (it has to be). also, writing new layouts and new widgets, which _happen_ to operate underneath on the DOM model of a browser (or a browser-kit-library such as PyKDE or PyWebKitGTK) is trivial. _really_ trivial. i've outlined how to write your own widget, here: http://pyjd.sourceforge.net/controls_tutorial.html and it's interesting to compare that to writing one for pygtk (there's a "stars" example which is easy to find "python gtk tutorial" i think it's hit number 3). the only thing i _can_ say, for definite, is that because pyjamas is missing an equivalent of glade, the UI-generator, and those GUI-based UI editors / designers, it _is_ at the moment a bit more... hard work doing the UI design manually, if you're used to using a GUI tool to design your UI. but i'm sure that will change. l. -- http://mail.python.org/mailman/listinfo/python-list