NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

breaking down the browser (was Re: Web browser: stuck with Opera-9.62)

On Sun, Feb 19, 2012 at 09:10:43PM +0100, Moritz Wilhelmy wrote:
> There are enough attempts to write browsers out there already, please
> don't write yet another one, but try improving what's there first.
> I think if you write yet another one, you're just wasting your time as
> well as everybody else's. Browsers always turn into operating systems.
> Maybe something could be done about the core of the problem, which is
> actually the inefficient structure of the thing we call web, which isn't
> primarily used as a source of information anymore, but rather as some
> way to design fancy user interfaces. Maybe someone™ should try doing
> something about that.

Browsers have always turned into operating systems because browsers have
always been monolithic.  Monolithic programs cannot use the functions
of other programs unless they are made from a solitary stone.  Browsers
tend to bloat the same as other monolithic programs (word processors,
spreadsheets) do.  For the most part, the differences are a matter of

You could produce a browser for UNIX by composing simple programs, but
you'd have to set out from the beginning with a lot of discipline.

You could begin by decomposing a browser into cycles.  The cycles
decompose further into 1) a supervisory program or script, 2) some
cycle state (resources to fetch, session state), and 3) a pipeline
of transformations.  E.g., here's a very rough decomposition into two

repeat(repeat(fetch | layout) | render ; read user input)

Very, very rough.

By breaking down the browser in this way, and trying to build it back
up by composing simple programs, one would 

* learn a new way to think about UNIX, its power, and its shortcomings,
* learn a new way to think about the web,
* produce some very useful programs as a side-effect, and
* exponentially increase the power of your OS *and* browser.

I anxiously await the ability to join(1) and! :-)


David Young    Urbana, IL    (217) 721-9981

Home | Main Index | Thread Index | Old Index