Web browsers were very limited compared to today’s offerings but still very extensive when compared to other applications. Now, browsers on desktop are at a point where they’re equivalent to an OS in scope.

This frustrates me as it’s led to stagnation, where very few companies can hold their position. Firefox can only keep up due to preexisting groundwork and the large amount of funding from Google. Chrome had billions thrown at it to quickly enter the market.

The thing that kills it the most for me is there is no way to fix the massive amount of effort needed for a web browser. It’s extensive because it has to deal with thousands of situations: image rendering, video rendering, markup language support (HTML), CSS support, JavaScript support, HTML5 support, security features, tabbed browsing, bookmarking and history, search engine integration, cross-platform compatibility, performance optimisation, developer tools, accessibility features, privacy controls, codec support, to name a few.

Now, for my unpopular opinion: stripping back a general-purpose browser to its core, forcing web redesign, and modularising the browser. Rather than watching videos in the browser, an instance of VLC would be started where the video will be streamed. Instead of an integrated password manager and bookmarks, we have something akin to KeepassXC with better integration. Markup documents and articles automatically open in word processing applications. I know this idea seems wholly impossible now, but it often crosses my mind.

  • rakoo@blah.rako.space
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    6 months ago

    I hear you. Browsers reinvent everything to fit in a single application and don’t really integrate in their environment.

    Uzbl at https://www.uzbl.org/ has already been cited, but it’s unfortunately dormant. Perhaps the task of having to re-do all the plumbing turns out to be too big.

    I’ve been using Plan9’s Acme (along with Plan9’s plumber), for a while now as an editor, and I feel like it has elements to make your vision at least a little reality. How Acme and plumber work is that any string can trigger arbitrary commands, and any arbitrary command can open windows in Acme.

    The simplest is a local link: if I click on /home/rakoo/myfile.txt, it opens in Acme. If i click on /home/rakoo/mybook.pdf, it opens in a pdf viewer. So far, nothing fancy. But I have configured it so that if I click on /home/rakoo/mypage.html, the html page is rendered into text and opened in Acme again. And if I click on https://aaa.bbb.ccc, it fetches the page and renders it in Acme. Clicking on https://foo.bar.com/image.jpeg opens it in my image viewer. If I click on ls(1) the manpage of ls is rendered into Acme, and I can do editor stuff to that (and click on other links if I want)

    Acme itself can (and usually is) “scripted” into little applications: clicks can be interpreted to do something in the same window, such that new pages are opened in the same for example, with a way to go Back and Forward. The application can see that the website wants credentials and fetch them from my KeepassXC. Bookmarks are files with freeform text if I want, and I can search through it.

    Acme is not perfect of course, it doesn’t display images at all and has no text coloring. But it demonstrates the possibility of a truly hackable tool that can actually be a User Agent.

    If you’re curious I encourage you to look at https://research.swtch.com/acme for a tour of Acme and what it can do :)

    (Its authors say that contrary to Integrated Development Environments, Acme is an Integrat*ing* Development Environment in that it integrates external, working parts into itself)

    @permacomputing