Why another browser? And why in TCL?BrowseX addresses 7 specific problems:
Traditional browsers started life as HTML rendering engines and then layered on more and more standards and extensions in an attempt to expand client side capabilities. With BrowseX , I have in fact done the reverse. Starting with a rich, stable, extensible GUI capable environment (Tcl/Tk), a browser is written therein which can render most web pages reasonably well. Then many areas of functionality (embed/scripts and a macro language) are backfilled by leveraging Tcl. If you look at the BrowseX feature set, each of the above problems is engaged.
Put Another Way ...Browsers have become the single most widely used software. That said, the general level of satisfaction with browsers has not been particularly high. No where has this been more true than from the Web developers point of view. This is not meant to impune the functionality of existing browsers, but rather it is more a function the black boxes that our browsers have become.
This is even more the case under Unix where there is effectively only one (frames capable) browser: Netscape. In January 1998, Netscape released into Open Source its browser code base. This induced many (myself included) into thinking that now Browsers on Linux would now improve by leaps and bounds. Unfortunately this has not been the case. Possibly this is because the source for Netscape is rather large and unwieldy, and so modifying it has proven nontrivial. Supporting this observation is the fact that Netscape has aborted version 5 and is embarking on version 6: a virtual rewrite. At the same time, control of Netscape has passed to AOL, which has it's own agenda and timelines.
Then there is Tcl/Tk: a generalized GUI API that has been around 10 years or so. It's widely used for standalone environments on most major platforms. It also does not suffer from web dependant design quirks. And in general, Tcl is easy to learn and extend.
That's pretty much it, but some additional interesting comments can be made. Most browser functionality is algorithmic in nature and requires access only to a couple of priviledged operations. For example, there is a need to be able to read and write to the cache directory, and to place outgoing socket calls. This implies that the the vast majority of the browser itself could be implemented in "Safe Tcl". The implication is rather stunning. There is no practical reason why a browser could not only be "extensible" but also "dynamically modifiable" even at its most fundamental level. Adding in an on the fly site/content filters for example would be trivial.
Another thing: the dividing line between an embedded app and "plugin" is no longer firm. Applets can be tried and, if to be useful, be saved becoming in effect part of the regular browser functionality.
Copyright © 1999-2001 Browsex Systems Inc http://BrowseX.com