Forgot your password?
typodupeerror
The Internet Unix Linux

Meet Uzbl — a Web Browser With the Unix Philosophy 318

Posted by timothy
from the simple-if-you-know-how dept.
DigDuality writes "Dieter@be over at Arch Linux forums, a release engineer for Arch Linux, got inspired by this post. The idea? To create a browser based on the Unix philosophy: 'Write programs that do one thing and do it well, programs that work well together, programs to handle text streams because that is a universal interface,' among other points. The result? A fast, low-resource browser named Uzbl, based on WebKit, which passes the Acid3 Test with a perfect score. The browser is controlled (by default) by vim-like keybindings, not too dissimilar to vimperator for Firefox. Things like URL changing, loading/saving of bookmarks, saving history, and downloads are handled through external scripts that you write (though the Uzbl software does come with some nice scripts for you to use). It fits great in a tiling window manager and plays extremely well with dmenu. The learning curve is a bit steep, but once you get used to it, it's smooth sailing. Not bad for alpha software. Though built for Arch, it has been reported to work on Ubuntu."
This discussion has been archived. No new comments can be posted.

Meet Uzbl — a Web Browser With the Unix Philosophy

Comments Filter:
  • by wampus (1932) on Saturday September 05, 2009 @05:57PM (#29326719)

    Worse is better!

  • Web Browser? (Score:3, Insightful)

    by RalphSleigh (899929) on Saturday September 05, 2009 @06:02PM (#29326749) Homepage

    So it's not a web browser, but rather a HTML rendering widget you can use to write a web browser, or use in other programs? I think .NET has one of those based on the I.E engine...

  • by icepick72 (834363) on Saturday September 05, 2009 @06:07PM (#29326789)
    Novel ideas usually don't live on by themselves unless they become useful. The worst thing the developers did (besides the name) was create a "steep learning curve" for the common web browser. The best thing the developers could do is work with an existing product that already has market share and works great like Chrome (also based on Webkit) and make their additions to it in support of better key bindings.
  • by Brian Gordon (987471) on Saturday September 05, 2009 @06:12PM (#29326819)

    Even if few people use it, the world's always better when someone writes an interesting app.

  • by wizardforce (1005805) on Saturday September 05, 2009 @06:12PM (#29326827) Journal

    how is designing software to do more things badly superior to focusing on creating software thatdoes its one and only job better? The more things software is asked to do the higher the chance that it will do at least some of those things poorly.

  • by Brian Gordon (987471) on Saturday September 05, 2009 @06:15PM (#29326847)

    The goal isn't to gain popular market share.

  • by retchdog (1319261) on Saturday September 05, 2009 @06:16PM (#29326855) Journal

    I don't think they're looking for standard users, and kind of the whole point was to create a learning curve. This implies that it's targeted at powerusers and developers. With the script-integration, this could be useful for quickly churning out a limited-use kiosk with a few helper apps or something (e.g. a novelty photo booth with web integration).

    Anyway, the price is right.

  • Re:Web Browser? (Score:4, Insightful)

    by Trepidity (597) <delirium-slashdot@@@hackish...org> on Saturday September 05, 2009 @06:19PM (#29326887)

    It's somewhat in between, like most Unix-style tools. It's usable as-is as a basic web browser (you can browse the web in it). It's also usable as a tool to build other things out of, but in the "app that other apps can talk to" sense, not the .NET or Java "a class library that you can link your apps to" sense.

    It's partly a philosophy of general- versus special-purpose end-user programming, monolithic vs. interlocking-parts design, etc. No real right answers, but I see a space for this. In particular, those of us who like a particular window-manager approach, and heavily use its scripting, have long complained that the web is sort of a black box out of our reach--- either you make do with what you can do with wget or links or something, or you've got to relinquish control to Firefox. Sometimes you really do just want a one-window X11 app that renders a modern web page.

  • by causality (777677) on Saturday September 05, 2009 @06:24PM (#29326937)

    Novel ideas usually don't live on by themselves unless they become useful. The worst thing the developers did (besides the name) was create a "steep learning curve" for the common web browser. The best thing the developers could do is work with an existing product that already has market share and works great like Chrome (also based on Webkit) and make their additions to it in support of better key bindings.

    That depends on whether the goal is to obtain the largest possible marketshare. If that is the goal, or if that is your sole definition of "useful," then what you say does apply. If they don't give a damn about competing head-on with the likes of IE or Firefox then what you say is completely irrelevant. What I don't understand is the (usually) unstated assumption that marketshare numbers are the only reason why anyone creates any piece of software. While it's important in terms of attracting developers and, in the case of browsers, for putting pressure on Microsoft to make IE more standards-compliant, there are many reasons why someone might write a browser and this includes reasons that wouldn't personally motivate you.

    I see the same sentiment shown when some people discuss Linux as though its only purpose is to compete with Windows. They then act like Linux is a complete and utter failure if it doesn't bust up the Windows desktop monopoly. I disagree with this; Linux just "is." If it happens to displace Windows, that's great. If it doesn't, that's fine with me too. Though I have happily introduced folks to Linux who showed an interest in it, I'm not out to win converts; I just want something that works for me. There are those of us for whom Linux is a good solution, who have no dependency on any Microsoft products, and who are able to do our computing completely aloof from Microsoft, unaffected by any decision Microsoft makes. It's abundantly possible that this is intended to be a niche browser, designed for the relatively small number of users who are technically inclined and willing to tinker with something like a Web browser and its supporting scripts.

  • by DigDuality (918867) on Saturday September 05, 2009 @06:29PM (#29326973)
    it has been my experience that everything regarding steep learning curves in *nix, ends up revealing benefits those who never try will never know of. Try explaining to the average windows user how vim is better than notepad vs watching someone learn vim and having their face light up everytime they figure out they can do something very quickly that's impossible in a standard text editor
  • Re:In other words (Score:1, Insightful)

    by Anonymous Coward on Saturday September 05, 2009 @06:59PM (#29327155)

    Actually, I'm runing this on fedora 11 right now, and flash works just fine for me (not extensively tested, just youtube & addictinggames). Sure it's a mite choppy in fullscreen, but about the same as it is on XP/IE [7,8] Actually, uzbl as a whole works just fine for me. It has seriously joined the war between Iron and FF on my system. The lack of uri editing might be a problem, but I'm sure I'll be fine.

  • Re:In other words (Score:1, Insightful)

    by Anonymous Coward on Saturday September 05, 2009 @07:10PM (#29327223)

    Only marketroids use Flash for their fucking annoying banner ads that either moves all the time, plays music and sounds or even worst starts playing a fucking video while I'm trying to read the godamn fucking webpage.

    Annoying Flash crap = I can't focus on the actual page content = I close the fucking website and never go there again.

  • by commodore64_love (1445365) on Saturday September 05, 2009 @07:21PM (#29327297) Journal

    It's fine to say, "This is a web browser and that's all it should do," but even the first browser written by CERN did more than that. It had back and forwards buttons. It had a dropdown menu. A place to type your next destination.

    These Uzbi people are just being anal, and the result is inconvenience and mucking-up the works. Like making a car that you steer with horse commands ("Giddyup!" "Trot!" "Gallop!" "Woah Nelly!" and so on).

  • by Abcd1234 (188840) on Saturday September 05, 2009 @07:30PM (#29327333) Homepage

    Dude, we're in a world of shitty phones that are also shitty music players, shitty still cameras, shitty video cameras, and shitty PDAs. And you're surprised that people don't understand the idea of a well-designed, single-function device?

  • by wizardforce (1005805) on Saturday September 05, 2009 @07:33PM (#29327353) Journal

    if some people want a simple browser as bare bones as this one they can use it, if other people want more than that they can use other browsers.

  • by Blakey Rat (99501) on Saturday September 05, 2009 @07:40PM (#29327413)

    how is designing software to do more things badly superior to focusing on creating software thatdoes its one and only job better?

    And what's the "one thing" a web browser is doing, exactly? In the last week, I've used a web browser to:
    * RSVP to a event invite
    * Send/receive email
    * Watch TV shows
    * Share photos with relatives

    A "do one thing and one thing only" philosophy is fundamentally incompatible with the web. Unless you define your "one thing" as "view the web," which is so all-encompassing as to be useless.

  • Re:Nitpicks (Score:3, Insightful)

    by martin-boundary (547041) on Saturday September 05, 2009 @08:03PM (#29327549)
    It *is* preferable to have a separate ad-blocker, that should be a no-brainer within the unix philosophy. What you're thinking of is a client/server model where right clicking the ad in the UI (which UI? Maybe there could be several to choose from) should initiate a conversation with the ad-blocker daemon.
  • by Sycraft-fu (314770) on Saturday September 05, 2009 @08:04PM (#29327561)

    Notepad is, and was designed to be, an extremely basic text editor. It doesn't have lots of features not because those would necessarily make it hard to use, but because they'd take resources to develop. It is just a simple program to display a text file, little more.

    Now compare Vim to something like UltraEdit. Here you have a tons of features. Maybe even more than Vim has. However it is still simple to use the basics. You can fire it up and open up a file and edit it with no more effort than notepad. It is easy to do the simple stuff.

    The real mark of well designed complex software is where the learning curve is variable, meaning it is only as steep as it needs to be for a given thing. Simple lings are easy to learn, more complex things are harder. You don't have to bash your head against a wall learning all sorts of complicated things to accomplish the basics. The complex capability is there, but it doesn't interfere with simple stuff.

    That's why something like Vi fails to impress me. When I got my current job, I had to learn about it, since it is the only text editor that comes with Solaris by default. I was annoyed with it as it is the first and only text editor I've ever encountered that I couldn't edit text in without a manual. I tried to use it, and couldn't make it work. Our Solaris guy had to show me how it worked. He, like you, seemed to assume I'd love it once I learned about it because of its power. I challenged him to show me something it could do that UltraEdit couldn't. He wasn't able to come up with anything.

    The real challenge to good software is to make things as easy as possible, and make it so the complicated doesn't interfere with the simple.

  • by Trepidity (597) <delirium-slashdot@@@hackish...org> on Saturday September 05, 2009 @08:42PM (#29327791)

    I challenged him to show me something it could do that UltraEdit couldn't.

    How about use it to edit a remote file over ssh, from an Android phone? Or do complex things without using the damn mouse? Or write macros in a usable macro language?

    More generally, with commonly used software, some of us just don't care about the learning curve. With the tools I use daily, I don't even remember what the first hour of using them was like, because it was so many thousands of hours ago. I even find it interesting to learn about new ways of doing things, so I don't resent an hour or two of getting up to speed, even if I don't end up using the tool. I could see if I had to learn a new tool an hour before a deadline I'd be annoyed, but the simple solution to that is not to schedule your new-tool experimentation an hour before a deadline. =]

  • by techprophet (1281752) <emallsonNO@SPAMarchlinux.us> on Saturday September 05, 2009 @09:09PM (#29327969) Journal

    "The guy had an itch and he scratched it, there is nothing wrong in that. Not everything that is made has to be useful."

    That's true, and so is the fact that Uzbl is about as attractive and useful as a dirty stranger scratching an itch.

    A www browser controlled by vim-like key bindings? Well that isn't unique, there are other browsers which do that already, in fact you can do that even with Firefox or Opera, as well as some of the console based browsers. It's the kind of throwback 'feature' that excites impressionable students, idiots, and people who write desperately bad distro/free software reviews where they claim they "fall in love" with "wonderful" "awesome" "elegant" "smooth" "integrated" applications and distros (visit LXer.com for acres of that kind of inane verbiage).

    The point was not to have vim-like keybindings. They can be changed easily. That is the point. Change is easy.

    And the UNIX philosophy is "do one thing and do it well", not "duplicate something badly for no useful purpose" (c'mon, everyone knows that's the Arch philosophy).

    You, sir, are the biggest fucking idiot I have met all day.

    It doesn't dupe FF, IE, or Chrome. It displays web pages. That is ALL. Firefox displays them in tabs, along with having bookmarks, skins, downloads, and addons. All internally! IE has nearly as extensive a list (no skins) While Chrome does it with just tabs, downloads, and bookmarks. None of those things are necessary. I like slim. Slim is good. Uzbl is slim. Firefox is not. IE is not. Chrome is not. If you disagree, keep using IE/FF/Chrome. I don't want to.

    It, actually is very attractive. Very, very attractive.
    *runs off to play with Uzbl wmii scripts*

  • by A beautiful mind (821714) on Saturday September 05, 2009 @09:26PM (#29328055)
    You are thinking on the wrong abstraction level.

    A browser should implement HTML4/5, various XHTML versions, Javascript, support various multimedia protocols and that's it. Everything else can be integrated as a plugin.

    The Unix philosophy would demand separation of the code that implements all of this from the actual UI.
  • by Al Dimond (792444) on Saturday September 05, 2009 @09:40PM (#29328133) Journal

    OK. So Vim isn't the ideal editor today -- it was designed around limitations of earlier computers and when you remove those limitations you can get rid of stuff like modality that's not really necessary when you have a mouse. So lots of people get attached to modality and hjkl navigation because they spent time learning them, just like people get attached to the emacs OS, even though neither are, today, what anyone designing a new editor would make. They are historically notable -- both were more powerful and easy to use than what came before. I don't think either is very Unixy -- they're each platforms unto themselves at this point. Whatever the first Notepad-like editor was, that introduced the basic elements we consider to be standard text-editing controls today, is definitely historically notable also, and a great achievement -- it flattened the learning curve and (mostly) shattered modality.

    Vim and Emacs don't have a lot to do with this browser project, despite the red herring of vi-like keybindings. This project is an experiment about building a browser that's really part of Unix, so as far as an analogous editor goes, perhaps Plan 9's acme, which also relied on external scripts for much functionality. The point isn't to be the greatest or most impressive anything, because... really, who cares? The point is to be a useful tool within the Unix system. If a more self-contained browser is easier to use in many cases that doesn't make it useless.

  • by Draek (916851) on Saturday September 05, 2009 @10:04PM (#29328241)

    The real challenge to good software is to make things as easy as possible, and make it so the complicated doesn't interfere with the simple.

    When they're designed for ease of use. When they're designed for *efficiency*, however, as ViM is, the challenge is to keep the complex possible while making the simple as fast as you can. How easy it is to learn never enters into the equation.

    The editor designed for *power* is Emacs, whose LISP interpreter can't be beat in that department.

  • Re:Nitpicks (Score:1, Insightful)

    by Anonymous Coward on Saturday September 05, 2009 @10:37PM (#29328413)

    Your proxy doesn't generally need to parse the page -- while operating on a page tree ala Greaseonkey may be the One True Way, you can get quite decent results by simply returning null objects (e.g. 1x1 pixel gifs, pngs, etc.) locally for certain outgoing requests, or the entire result (with no parsing needed or modification performed) to any other requests. And the browser can simply append new patterns to the proxy's config file from right-clicking on an ad.

    If you want to modify the page layout to eliminate the space the ads were meant to take up, or to eliminate text ads, this isn't really ad-specific, and should usually be implementable with local CSS overrides -- again, no need to reparse the page, and this is also more general than just ad-blocking.

    But on the topic of "my browser already parsed it, but I need to do $TASK on the parsed tree, why should I have to re-parse it?", here's a somewhat plan9ish fix: provide a virtual filesystem representing the HTML/XML tree, and giving other programs full read-write access. (If you've messed with wmii, this should make sense...)

  • by Anonymous Coward on Saturday September 05, 2009 @10:44PM (#29328457)

    Why should the rendering engine have to implement JavaScript or a multimedia protocol? A real Unixish browser would be composed of one component that only renders HTML, another one that fetches files and caches them, plug-ins to implement scripting languages and multimedia, and a shell that wraps everything in a GUI to manage bookmarks/history.

    In other words, it would be implemented like IE.

    dom

  • by Anonymous Coward on Saturday September 05, 2009 @11:26PM (#29328651)

    Edit a remote file over SSH?

    Couldn't I just SSH in using a visual client and double click the file?

  • by petrus4 (213815) on Saturday September 05, 2009 @11:28PM (#29328669) Homepage Journal

    Some of us have better things to do than be computer dorks, we grew up, have families and other priorities and likely a higher quality of life than those of you glued to your crappy hard to use editors.

    Yes, because having a wife, kids, a mortgage, and probably a 16 hour a day job is definitely going to be less stressful and better for your health than living alone, without all that extra weight.

    There is no better or worse, my friend. The grass is always greener...

  • by Anonymous Coward on Sunday September 06, 2009 @02:02AM (#29329323)

    The Unix philosophy would demand separation of the code that implements all of this from the actual UI.

    That's not Unix philosophy, that's basic code reuse.

    Unix philosophy is separation into processes, which are sufficiently granular that they can be glued together in various combinations to achieve the desired result. In case of browser, this would mean, for example, that you use one utility that only knows how to download files via HTTP, and another one that only knows how to display them, piping output from the first into the second.

    How useful that would be in practice is another matter. Unix philosophy is not a gospel, and doesn't fit everything.

  • by shutdown -p now (807394) on Sunday September 06, 2009 @02:08AM (#29329333) Journal

    How about use it to edit a remote file over ssh, from an Android phone? Or do complex things without using the damn mouse? Or write macros in a usable macro language?

    You make requests in a way that predetermines the answer. For example, what's a "usable macro language"? And, obviously, there's no Notepad (or UltraEdit) on Android, but a clone could be easily written, and yes, it could also work over ssh - there's nothing specific about Vim design that enables it to work better over ssh than any other text-mode editor.

    At the same time, any decent editor these days lets you do fairly complex things without using mouse. Even though for a large number of such things, using a mouse is actually faster than trying to concoct a cryptic Vim command that would have the same effect - that's because mouse was designed to solve certain tasks well, normally those involving dealing with selection and highlighting in 2D space, and thinking that keyboard can beat it at that with equal amount of training is simply delusional.

  • by shutdown -p now (807394) on Sunday September 06, 2009 @02:12AM (#29329345) Journal

    When they're designed for *efficiency*, however, as ViM is ...

    Vim commands weren't designed for efficiency; like traditional Unix command names, they were designed for terseness [wikipedia.org] to remain usable over slow (think 300 baud) terminal connections.

  • by Anonymous Coward on Sunday September 06, 2009 @05:42AM (#29330069)

    I think your analogy is a bit off. Think of uzbl not as a car pretending to be a horse, but as four wheels connected to an engine with no steering interface at all. It's blazingly fast and has minimal gas consumption, but entirely useless on its own.

    The cool stuff starts happening when you plug in different steering wheels. You can use a regular old steering wheel (like the python tabs, which work pretty much like ordinary tabs), you can use a microphone with voice recognition software so you can treat it like a horse (if you're into that), and you can plug in a mind reading device that will steer where you WANT to go. Everything is possible, and that's pretty cool.

    Uzbl is still very young, so it appeals mostly to people who know how to build their own steering wheels, but I think it's just a matter of time before the selection of available steering packages becomes pretty goddamn attractive to the layman as well.

  • by Minozake (1227554) <ltdonny@gmail.com> on Monday September 07, 2009 @09:33PM (#29345845) Journal

    OTOH the modal interface of vi gives an additional error source because you always have to remember if you are in insert of command mode.

    That's not the correct way to use vi. Command mode is normal mode. Never leave it in any other mode, including insert mode. Ever. Only use insert mode when you're actually inserting something.

    There's also usually a status area which tells you which mode it's in as well.

Too much of everything is just enough. -- Bob Wier

Working...