rationale for ASU (and change from GTK to Qt)

Carsten Haitzler (The Rasterman) raster at openmoko.org
Sat Jun 28 16:55:11 CEST 2008

On Sat, 28 Jun 2008 10:41:43 +0100 Stroller <linux.luser at myrealbox.com> babbled:

> On 28 Jun 2008, at 03:05, Carsten Haitzler (The Rasterman) wrote:
> > On Fri, 27 Jun 2008 22:11:06 +0100 Stroller  
> > <linux.luser at myrealbox.com> babbled:
> >
> >>
> >> On 27 Jun 2008, at 19:01, Ron K. Jeffries wrote:
> >>
> >>>
> >>> Can someone explain the rationale for the decision
> >>> to switch from the original GTK based OpenMoko
> >>> to QT based version known as April Software Update (ASU)?
> >>
> >>
> >> Rasterman is the rationale, as far as I can make out.
> >
> > i had nothing to do with it. i, in fact suggested to keep the  
> > current gtk apps
> > as-is
> I apologise. It just seemed that this change occurred without  
> explanation when you came on board. A message you posted some time  
> ago evangelising E16 (??) firmed the impression that the new  
> environment was your innovation.

i said nothing of e16 - e17 is a wm. it can replace matchbox - and also take
over the "today" screen and launcher all in one. it's got that rolled into 1
compact process. i would be more than happy keeping the gtk dialler, address
book, browser, etc. etc. if people wish to replace these with efl or qt etc. is
entirely their business. i'm agnostic there. personally i'd go for the most
core apps (dialler, address book, sms read/edit) being built into the "wm" as
modules (for sheer efficiency/speed. this way calling someone or answering a
call is instantly available and shares resources with your current desktop
environment directly thus is small and very efficient), but everything else
being a process that is run when/if needed. use whatever toolkit tickles your

> > just improve the "desktop environment". others at openmoko insisted  
> > even
> > on just qtopia - no x11. they wanted qtopia because for them "it  
> > worked". we
> > ended up with a compromise of a port of qtopia on x11 - but then  
> > also needing a
> > custom wm.
> I have to say that I find it a bit odd running X11 on a mobile phone  

i'td odd because you're just not used to it, but as such the phone is just fine
a place to run it. it is what arbitrates access to the graphics subsystem,
display and input devices. it's nothing more than a well known and built-on way
to share a hardware resource. using anything else will end up with you just
re-inventing the lower-level x11 layer anyway.

> - a WM wouldn't be required without it - when an alternative is  
> possible. In fact, as far as I can ascertain an alternative already  
> exists. X11 seems logical to me for desktop computers, but not for a  
> device which will only ever have one main window on the screen at a  
> time. I had mistakenly understood earlier Openmoko builds to be non- 
> X11 (i.e. qtopia-ish?)

incorrect. the earlier builds have always been x11 + wm + gtk. the only thing i
felt could be improved was replacing the minimalist wm (matchbox) that itself
did pretty much nothing, and then the panel and launcher/today screen with e as
it could do most of this already in 1 process and is extendible with modules to
modify placement policy etc.

as such your screen has MULTIPLE windows and processes already. every "dialog"
box that pops up is a new window. in qtopia the "back/options" thing on the
bottom is a separate window to the app - handled by the qpe "desktop" process.
illume (module for e) has special placement policy code to handle that feature
of qtopia.

invariably those that do not understand x11 and like to plot its downfall are
invariably doomed to re-invent it (in the end), instead of just build on it.

let me give an example of where you WANT a wm and WANT to use x11 (long-term)
on phones.

take a 3.2" or 3.5" screen. imagine you divide it. the top part is a status
panel (this is... gasp! a window! it may be a process of its own or part of
another). then you have your "current app" window - and imagine at the bottom
you place a "side app". eg - mp3 or media player. so while i am writing an sms
to my gramdother, my mp3 player is pumping out tunes, but the CONTROLS and
STATUS are there - in the player window at the bottom of my screen. i don't
like the track - quickly hit next, without flipping away from my sms editing.
wm handles the layout policy and squeezing windows into the available screen
when/if needed. the bottom doesn't need to be the mp3 player. it could be my
"irc" session - with my friends, always going, but the top is my today screen
or sms editor or dialler or web browser, so i'm watching whats going on in
#openmoko while doing something else, without having to flip away.

yes - this isn't happening now and a 2.8" screen is a tad too small, but the
point is to think beyond just what we have now and into what could be possible,
what people might want to do. design into the future and allow for it, not
design so doing it is hard or impossible or requires major re-works and porting

x11 on a phone makes a lot of sense. the xserver is the arbitrator for screen
and input device access. the wm/"desktop" implements policy (how to lay things
out and all the other things you need for just managing the apps (status
panels, bars, virtual keyboards, layout of 1 or more windows, flipping
applications, launching and killing of them etc.). then the apps get to run as
normal. x11 means writing apps for your phone is TRIVIAL. if you can write a
regular desktop app - you can compile it for your phone. no special emulators
needed, no special phone-only toolkits needed. its regular development for you.
use the tools and toolkits and languages you already know and know well. just
make a little effort to know that your app window will be crammed down to a
small physical space and people will interact with it that way. that's all the
work needed.

to me - it makes more sense than just about anything else. x11 means
supporting gtk, qt, efl, fltk, wxwidgets, SDL (need i go on?) is all already
done. you get to use your favorite toolkit. i'm, excited about making THAT a
possibility. this is completely UNLIKE everyone else in the "mobile world"
trying to force their one true religion down your throat (everything will be
java, everything must be qt & c++, everything must be java with dex bytecode
and some new toolkit, etc. etc.). put down the religious banners. face it - the
world has many "religions" (languages, toolkits). let's realise these wars just
suck up resources. each toolkit has strengths and weaknesses. some are well
suited to some things and badly to others. same for languages. X11 provides the
most supported common "lingua franca" for all these to share. it means we don't
HAVE to fight. we can all get-along. from the technical point of view we have
allowed that. if people still choose to wage religious toolkit wars - at least
we can say that we didn't set the stage for that and tried to provide a setting
for everyone to lay down their arms and just "get along".

so... let's all just "get along". :)

Carsten Haitzler (The Rasterman) <raster at openmoko.org>

More information about the community mailing list