On Mar 26, 2:48 pm, quick <
qu...@sparq.org> wrote:
> I'm curious as to whether XULrunner was considered as a GUI basis for
> Hotwire instead of GTK. I'm only lightly familiar with both, but my
> impression of the former is that it uses Cocoa on the Mac and
> therefore doesn't need the non-native X-server implementation that GTK
> would require. This would seem to solve some of the MacOS discussion
> issues on the hotwire wiki.
There was an earlier discussion about this; see:
http://groups.google.com/group/hotwire-shell/browse_thread/thread/e63c009e37e8d3aa?hl=en
But I have been thinking a lot about the long-term direction for the
project platform recently though; some of this is reflected in my
recent blog entries.
One thing that occurs to me is that Hotwire is not a very traditional
GUI app in many ways, and so we don't really need the full power of a
toolkit like GTK+. The latest UI was somewhat unnatural to code in GTK
+.
In that thread I did mention I liked Mozilla/XulRunner myself too, but
the problem with that is that Mozilla has pretty weak operating-system
level interaction bindings. Their "subprocess" equivalent
(NSCreateProcess or something) is not great, and we would need custom
bindings to open pesudoterminals, etc.
Also, let's be honest. JavaScript sucks =) The prototype class
model...ugh. ES4 is fixing a lot of this stuff, but that's Firefox 4/
Mozilla 2 timeframe.
I guess PyXPCOM is an option, but I don't have any experience with
that.
> I also noticed that the code is divided into hotwire/ and hotwire_ui/,
> but there seems to be lots of gtk stuff sprinkled in the core
> elements:
Yeah, the problem is that sysdep/ is both GUI deps and non-GUI deps.
I guess the right thing is hotwire/sysdep and hotwire_ui/sysdep.
> any comments on how hard it would be to do something like
> support multiple base GUI's (e.g. have a GTK version and a XULrunner
> version)?
It would be interesting to try something similar in XULrunner, even if
it only shared some of the code or was a fork. The powerful HTML/DOM
interaction could make something like the overview a lot cooler,
potentially.
But what I find myself running up against more now is limitations in
CPython, such as the single-threaded nature and the inability to
cancel threads, and the fact that Hotwire can't run anything except
Python.