uzbl browser screenshot thumbnail

Seven years ago, many computer users found a new Web browser that was a breath of fresh air after dealing with the long-term feature creep, security problems, and unreliability of Microsoft Internet Explorer. Originally called Phoenix, and then Firebird, before finally being renamed Firefox, these days, it has bloated up almost as much as Internet Explorer.

2008 saw the release of the Chromium browser, and users who had begun to get fed up with the growth of Firefox found it to be something of a relief, with a snappier feel to its interface, a cleaner look, and a multiprocess architecture that offers greater stability and security for the entire application. Even so, it is a bit more in size and weight for an applicaation than some would like.

21 April 2009 marked the first commit in the GitHub project for a browser called uzbl — lolcat spelling for “usable” — though the uzbl website‘s first news item dates to almost a month earlier. Uzbl is a browser that diverges significantly from the design philosophy of other browsers like Chromium, Firefox, Internet Explorer, Opera, and Safari. In the words of the README file at uzbl’s GitHub repository:

Any program can only be really useful if it complies with the Unix

philosophy. Web browsers (and other tools that work with HTML, such

as feed readers) are frequent violators of this principle:

* They build in way too much things into one (complex) program,

dramatically decreasing the options to do things the way you want.

* They store things in way too fancy formats (XML, RDF, SQLite,

etc.) which are hard to store under version control, reuse in

other scripts, and so on.

The Uzbl project was started as an attempt to resolve this.

It is something of an acquired taste, and its licensing (GPLv3) certainly leaves something to be desired, but the general development philosophy has some teeth to it. It will likely appeal to Chromium and Firefox users most if they are the sort to like the Vimium and Vimperator extensions, respectively — ways to give each browser a somewhat vi-like keyboard driven interface.

Uzbl is an application, built with the C programming language on the WebKit rendering engine and basic Web browser development tools. The core application does little more than give WebKit a canvas on which to paint a page. Additional capabilities are provided by additional, separate programs, most of which are Python scripts. One script that is included in the standard distribution of it is called uzbl-browser, and it ties some tools together to provide a more complete browser experience. Another, called uzbl-tabbed, uses Python bindings for GTK+ to offer a tabbed version of a uzbl browser.

Each of these really is usable, as the name advertises, surprisingly so, really. The uzbl-browser and uzbl-tabbed versions are pretty much entirely keyboard-driven, with a somewhat vi-like set of default keybindings.

They all lack certain capabilities to which users have become accustomed, but for the most part the major options are there, including support for a Flash plugin. If you are put off by the relative lack of extension options for Chromium as compared with those of Firefox, uzbl will surely disappoint you even more; if you take a lack of functionality extension as an opportunity to create your own, however, uzbl may well be exactly what you need. If you are a mediocre programmer who would like to get better, its highly extensible design based on the Unix philosophy can offer a lot of opportunity to practice and insight into how to develop software to be small, and to work well with other software.

Eventually, you might even get to the point where you can create your own really Unixy, small, highly extensible browser with much the same design philosophy. Maybe you will find some way to redefine some other application that has traditionally become a bloated, unreliable, overly complex monstrosity on your own terms, and make it small and beautiful. I dare to hope that in either case, you would choose a better open source license, too — something as small, simple, and elegant as the application itself.

Maybe you will just use it, though. Maybe you will never look at the source code. Users are every bit as important as developers, in the final analysis.

Give it a shot. Talk to its community in the #uzbl channel on the freenode IRC network if you need some help getting started. See if you like it. If not, go back to a big, sophisticated browser, if that is what you prefer. To tell you the truth, I am actually using Chromium, Firefox, and uzbl about equally right now, switching between them; I have not entirely given up on those big and sophisticated browsers myself, at least so far. I think you owe it to yourself to see if you like your browser small and simple, though.