[racket] racket project idea: viable html5 web browser

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Mon Feb 3 17:04:28 EST 2014

I'm just putting this idea out there, to see whether anyone is seriously 
interested...

I'd like to see a few attempts to make a *viable* secure HTML5 Web 
browser, using Racket or Haskell.  HTML5 with JS, CSS layout, local 
storage, but no sound or video for now.  Fully GNU-style Free Software, 
and not biased by any commercial conflicts of interest.  Internally 
secure and stable in ways that current browsers clearly are not.

If you need to ask why, look at the constant stream of Web browser 
security exploits, the *multi-gigabyte* source code bases of C and C++ 
code, how Firefox's ongoing dependence on recent system library versions 
makes it hard for stable GNU/Linux distros to maintain a browser with 
security updates, etc.  Modern browser implementations have become 
monstrosities beyond what is necessary for the Web standards they have 
to support.  (Also, a viable Web browser is the current big 
implementation barrier to a general-purpose desktop/handheld OS that has 
the entire userspace implemented in Racket or Haskell, straight atop the 
Linux kernel.  But for now, think of it as a standalone app.)

Myself, I'm *not* looking for a "hey, we can kinda make a toy browser in 
Racket good enough to get a paper out of it", nor "hey, a few people 
attempted Web browsers of some kind, I don't know how far they got, 
maybe we could start with one of those", nor "it can start out as a 
student exercise but take over the world 10 years later like Linux 
did."  Rather, I am looking for something that is done from the start to 
be viable in the near term as a primary desktop and handheld Web browser 
(excepting sound&video for now).

If a couple people are seriously up to sacrificing their evenings and 
weekends on this for a year, then I can help with architecture and some 
key components, but I don't have time for attempts that aren't 
credible.  If we could get to the point that we've demonstrated 
brilliance and solid progress, and have a credible 6-month plan for 
completion of a viable browser, then there is an angle I could try to 
get funding, to pay the contributors to keep going at that point.  (I 
wouldn't try to get funding from the start, because the project wouldn't 
be taken seriously until we have something impressive to show, and the 
timeline is too long and unpredictable at the start.)

Let me know if you'd like to talk about this.

Separately, everyone should be encouraged to write a toy Web browser.  
It's one of those toy programs that everyone should write, as a fun 
learning exercise.  (Previously, such programs have been text editor, CD 
player, Scheme interpreter, compiler, kernel, X window manager, etc.).  
But this toy is separate from above, where I'm talking about something 
that is not a toy.

Neil V.


Posted on the users mailing list.