Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jul 2004 17:28:40 -0000
From:      Anarcat <anarcat@anarcat.ath.cx>
To:        David Johnson <david@usermode.org>
Cc:        freebsd-libh@freebsd.org
Subject:   Re: Installer
Message-ID:  <40C3CFB1.5080402@anarcat.ath.cx>
Resent-Message-ID: <20040713172839.GC7317@shall.anarcat.ath.cx>
In-Reply-To: <200406061827.53216.david@usermode.org>
References:  <3684.192.168.0.1.1086515427.squirrel@192.168.0.1> <200406061827.53216.david@usermode.org>

next in thread | previous in thread | raw e-mail | index | archive | help
David Johnson wrote:
> I've been thinking about this for quite some time, and tried to rough 
> out some designs. The hardest thing to write is this generic UI 
> abstraction. The fact that no one has done it successfully before means 
> that it's probably not worth the effort. What does exist is at a much 
> higher level (dldialog). Trying to map one GUI API onto another is 
> extremely problematic. Even writing an API to match another (for 
> example a ncurses API that matches the Qt or GTK+ API) will cause 
> problems mapping character based UI concepts onto pixel based UI 
> concepts.
> 
> I think the Linux distros have the right idea with their installers. 
> Have a common backend, but write separate UI frontends. This still 
> leaves considerable opportunities for common code. Only the actual UI 
> need be written twice (or three times).

With my ol' libh maintainer hat on, (which I should really resign from 
now, btw) I totally agree with that.

And I'll put it even better: if we struggle to build a "dual-head" GUI 
(text + graphics), we end up stuck at 2 interfaces. Hooking in a third 
one is much harder than doing it the other way around, which is: design 
the machine under, and then program as many views you need.

Model-view-controller comes to my mind now, and I think it's appropriate.

http://c2.com/cgi/wiki?ModelViewController

A.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40C3CFB1.5080402>