Re: layers of abstraction, and how Gnome can win



Alan Cox <alan lxorguk ukuu org uk> writes:
> >  a) use an XP toolkit that does its own rendering, possibly 
> >     emulating native looks
> >     (current openoffice, mozilla, Java/Swing)
> >  b) use an XP toolkit that wraps native widgets
> >     (old Netscape, Java/AWT, wxWindows)
> >  c) separate backend "engine" from frontend and rewrite the frontend
> >     for every target platform (though usually elements of a) and b)
> >     arise on an ad hoc basis)
> >     (AbiWord, some mp3 players, etc.)
> > 
> > a) is the most maintainable because the functionality and behavior of
> > the app is 99% the same on all platforms. This is why people use it. 
> > Its disadvantage is nonnative L&F.
> 
> I must disagree. a) is the most unmaintainable of all. You will spend years of
> engineering time fruitlessly trying to fix all the annoying look and feel
> subtle behaviour differences.

The whole thing about a) is that you have to punt that issue and
accept some subtle L&F weirdness in order to minimize
platform-specific code and QA. It's a tradeoff. Though Qt does a
fairly good job of it, and you _can_ have native L&F on a single
platform (e.g. use Mainwin was this type of toolkit and get native L&F
on Windows, use GTK as this type of toolkit and get native L&F on
GNOME, etc.)

If there was a perfect solution, everyone would be using it. All three
solutions are fundamentally suboptimal.

I think it's meaningful that Java, Netscape, etc. all started with b)
and gave up on it, moving to a), and that Qt is type a) and pretty
successful at it. Though perhaps they'll all move to c) someday, who
knows.

Havoc





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]