The Browser Company’s Darin Fisher thinks it’s time to reinvent the browser
theverge.com
theverge.com
When I was working on Chrome I had a strange leftover 1:1 with him (was a VP at that point.) He always impressed me with the deep understanding of the Chromium code stack and he did unblock my work as a SWE with that - An example: At at time I was struggling with an extra latency some callback incurred. He rightly pointed out that the other one (that backs the JS microtask) had smaller latency...and that was right! My problem was solved, by a VP, in the code!
Clearly he was wasting his time as a high-level manager, but I loved that fact. And that's why I cannot help but cheer this move.
Thats proper tech leadership right there. Thanks for sharing, shame this is not the norm.
Some things I'd like to see in the next generation of browsers:
- Modular design. Many things like rendering engine, history/cookie/cache mechanism, configuration framework, UI, sync system, download manager, privacy enhancements, ad blocking/request filtering, extensions should be separate programs (with independent authorship) that follow some common, compatible interface. Advanced users can mix and match these components to assemble their own "browser", or even develop their own components. "Browser distributions" can be created for less technical users that are plug and play.
- Ad blocking, request filtering and cosmetic filters as core functionality, rather than some exotic thing for the adventurous that is best left to extension developers. These require low level access to the browser's internal workings, they don't work well as regular extensions because those usually have security restrictions. They also need a solid UX that can provide enough granularity to be useful. Probably a good system for crowdsourcing the filter rules as well.
- The browser shouldn't treat the server as incontrovertible gospel. It shouldn't necessarily run every script the server sends over, or provide a full inventory of capabilities (fonts, filetypes, etc.) unless there is a good reason for it. Rather than server as master and browser as worker, the connection should be treated as a contract where the browser is concerned with protecting the user's interest (privacy, usability) rather than slavishly obeying the server's whims.
The last one - isn't that already the case? The browser treats the server as hostile and often overrides what it wants to do with extensions.
The issue with additional modularity would seem to be that things would become less hackable in general, because you'd have less insight into the internals of modules as there would be more variety and they might not be open source. How does ad blocking work if the core infrastructure doesn't know much about what's being rendered?
The thing with modern browser is that we cant even Render an interactive HTML5 CRUD apps at 120fps at low latency with zero drop frames and jitter. Something many Simple Native Apps could do.
Make a new browser that is just WebGPU + WebAssembly, no more DOM. Would already run the next wave of games that will come targeting that.
Then for regular websites, have them deliver a HTML rendering engine written in Webassembly for how they want to be rendered. No more need to test websites on a range of browsers
But that will be way too much effort for every kind of project, so what can really happen is some large players write engines and define interfaces for them, and we can all use them for our sites.
But different engines rendering the same data differently is probably going to be confusing (what if I want to swap them to compare performance?), so we should also standardize on some rules for how they do that. Maybe define some kind of document model and styling language?
Also, downloading all these engines on every page load might be too wasteful, so we can pick a couple of the dominant ones and bundle them into the browser itself. That way sites just have to send over structured content and the browser can load them all without a problem.
If we can ever get to this it will be a great web experience!
Aside from which from a market perspective most small browser projects already are a thin layer on top of Chromium. So really what’s gained here?
Particularly if you want to write a novel app using WASM and WebGPU/WebGL only you can already with the tiniest amount of glue to spin the handle. And this can be a useful approach but should it be the default?
If what you're trying to say is an application platform based on WASM and WebGPU that safely sandboxed userland applications ultimately delivered over the internet is a good idea then yes I'd agree it is. But it's not a browser.
https://www.microsoft.com/en-us/research/publication/atlanti...
https://scholar.harvard.edu/files/mickens/files/atlantis.pdf
"Oh, you're bored of a tenth of a gigabyte of React and TypeScript every time you load a web page? Here, we're going to ship you the entire browser every time you reload!"
In modern terms this is basically Flutter. Combine Flutter with Microsoft Blazor and I think that fully describes your idea.
The best sandbox is no need for a sandbox.
I think this is a dealbreaker, that is simply too much data to have to send over every time you want to load a webpage. It kills mobile immediately since most users have data caps.
The browser didn't beat out a handful of VMs because it was just another VM.
At the very least you'll also need a WebAccessibility API for the HTML rendering engine to hook into so that the OS sees your rendered textboxes as textboxes.
But for the average website? Not keen on having binary blobs executed for everything. That will at some point come with its own perils and in certain points would be a step back.
For this I have applications. For what would you need a browser then?
Want to develop an ad blocker? Too bad...
I'm not familiar with WebGPU and WebAssembly, can you say is there something in that combination that replaces the DOM? I'd also be curious to hear what's the issue with the DOM.
In both cases ad blockers become computer audiovisual processing systems.
Some features I love: tree-style tabs. cross-window pinned tabs. low power mode which auto suspends tabs. in place editing of websites. profiles are their own application instance. extensions work on iOS. per-page user-agent. built in notes. preventing auto-playing videos. all this while retaining a native macOS UX.
Not yet, many extensions are broken on it - even uBlock Origin doesn't work at all. Hope they fix it soon.
- Tabcenter Redux (last update 2018) https://github.com/eoger/tabcenter-redux-- creates a (searchable) left tab column including pinned tabs on top of the column, just like what they are showing. And
- Auto Tab Discard -- saves memory (but not perfectly) by writing out tab contents to disk if the tab is inactive for a settable amount of time, then seamlessly reloading the tab when it's clicked.
I am not against content creativity, but I really hope someone can re-invent Shockwave Flash, a container for streamable vector animation format. SVG and DOM canvas stuff are traumatic to work with and they always seem to burn my cpu0. Rich media should be so much richer & quicker instead of 20MB main.min.js barely movable <div> renders like shit on a browser. We had better content experience with .swf players on a Pentium-III.
Players should entertain us, they should be designed as consumer-oriented software. But browsers are for productivity, they were supposed to browse a broad range of documents hosted on networks of variety, with absolute control and input.
Now the world is confusing these two, we are browsing a world of popups, paywalls and infinite scrolls. Arc might never be able to solve the problem here.
The two experiences together have me about convinced that tabs in the browser were a mistake. The operating system already has a means of managing multiple documents/app views, and that is just windows.
It's disturbing that every browser has to implement most of their own media decoders, instead of relying on an OS level API and writing plugins for it. We have file systems for organizing our saved things. Bookmarks should just be links files on disk. You wouldn't need to have in-browser sync of your bookmarks, you'd just point it to your bookmarks directory and let Dropbox or OneDrive or whatever sync the files.
If what we think of as the "browser" used more of what is available in the operating system, and operating systems were more closely involved in web standardization (rather than treating it as a completely siloed project) I think we could have better standards for web apps that integrate seamlessly with the user's desktop.
We might be able to integrate different apps better, things like standardize an interface for image editors, let developers build to that interface, let users select their preferred editor, and have much more powerful image editing available in every app that wants to work with images. We might be able to have VR home environments where web apps represent objects within the user's environment, rather than exclusive mode, full "experiences".
And having this ecosystem on desktop would make users expect to have this functionality everywhere. Smartphone OS vendors might find it a hard time to try to make walled garden, only-place-you-can-do-any-business-so-we-get-our-vig stores.
But we don't. And now browsers are seen as "impossibly complex" (except the SerenityOS team seems to be killing it with Ladybird). All because browsers implemented their own multiple document interface and took over control from what should have been OS-level concerns.
I mean, sure, we never had this to quickly jump to negative conclusions for your idea, but it is more related to execution contexts and system integration imo rather than to how the ui for it could work. Personally I would like to also try the opposite - push all the native apps into a tabbed or tree-like interfaces with a capability to middle-click e.g. a file, an mpeg or a project file and spawn even more [tree]tabs from there, instead of doing that in separate windows and/or apps and giving them full control of the input. E.g. by left-clicking a link to any ls’ed resource in a terminal or an IDE you could go to “that app” and rocker-gesture back when needed, rather than alt-tabbing back to the original window. Restyling “apps” and adding/removing features from them would also be nice. Native apps and desktops as they are now are a little behind in ui sense, imo.
Mozilla popularized tabbed browsing back in 2003. OS X Leopard released stacks in the dock in 2007. I'm much more of a Windows user, but I had to look up that it had taskbar grouping all the way back to Windows XP in 2001, so I don't think it was enabled by default, because I really don't recall using it until Windows 7 in 2009.
What was it about tabbed browsing that was so much better than MDI? We've had MDI available for app developers since as long as I can remember. I don't know if it was in Win3.1, but I do know I used it in Win95. I think tabbed browsing is a key linchpin in this issue because I think it created an inflection point in how many open documents a user could expect to manage with ease. Before tabs, I don't think a lot of people tried to run more than a handful of apps with multiple windows at the same time, even with MDI. Nowadays, it's not unheard of to see someone completing about their browser crashing and taking it dozens, if not low-hundreds of tabs.
So there is a huge window here that feels like the two most popular desktop OSes couldn't be counted on by cross-platform app developers to provide a good means to manage dozens of documents in working space, because their vendors just kinda sat on their hands. "You want TDI? We have MDI at home." Ooooh, transparency effects on windows. That's really improving workflow /s
Honestly, stacks and taskbar groups aren't that good. Are they kind of junk because it's inherently impossible to do at the OS level? I don't think that makes sense; it's a pretty high level abstraction. It seems much more likely that folks at Microsoft and Apple just didn't feel any pressure to dramatically improve UX. We didn't get the first major, single-page-like web apps until round about 2005, but I don't think it really took off until 2008: smartphones giving people Internet access on the go, the popularity of the iPhone giving mindshare back to Apple so they might become a desktop contender again, and the desire by many developers to never have to ever ever ever touch Java Swing again. What real innovation and proliferation have we seen in desktop OS window managers since then?
So I'm imagining an alternate universe where OS vendors didn't cede control of UI R&D to browser vendors.
As a web developer, I do not want this. Currently, I can install Chrome and Firefox on my Linux machine and between the two I can test and get the same experience as 95% of my users. Safari is the only browser I can't directly install on my machine, but it's not hard to test that too, at which point 99% of users are covered.
If what you propose came about, all of the sudden OS (and OS version!) becomes a major variable that has to be accounted for in testing and troubleshooting, which eliminates one of the biggest advantages Web development has over Native.
Is there a link to a git repo of current progress?
I'm running more and more with Firefox these days and trialing AdGuard Home, Blocky, Technitium in parallel in anticipation of having to recommend solutions to friends and family if the Chrome-o'verse dissolves into a ad strewn zombie landscape post full Mv3 rollout.
( okay, a little over dramatic there )
As someone in the " ~60, programming since 12, former usenet pre WWW " bracket I'm troubled(?) | perturbed by the convergance toward an all Chromium browser engine aspects here, Mv3 is but a single example of what can occur when there's a borg dominated domain.
My favorite feature which any of these browsers could copy though is the command palette and copying the current URL with cmd-shift-c.
I'm excited for the Boosts that they have, and think they could build a library of them that would be interesting to check out. But I'm not an expert with CSS so making my own is a struggle. Could be interesting if they were able to find a way to make the boost creation easier for non-css experts.
I also haven't used their internal notetaking tool as much, but the fact that the browser has it built in is interesting. I just get scared that the company will fold and I'll lose my notes. Would use it if it was like Obsidian and generated .md files based on my notes.
While innovating around the chrome of the browser is certainly nice, it seems to me that hypermedia is just a few small tweaks away from being a viable alternative to the SPA approach for many applications, and it really wouldn't be much code at all to support.
- generalize event triggers for hypermedia requests
- allow targeted replacement of HTML within a page (rather than requiring a full page refresh)
- surface all the HTTP methods (DELETE, PATCH, PUT) in plain HTML
All small things on top of normal HTML functionality, but, together, allow much more sophisticated user interfaces to be built:
> Arc, which has been in an invite-only beta for more than a year, is trying to rethink the whole browser UI
no one is ever going to dethrone chrome unless they start selling hardware filled with their crapware at a loss solely to suck ppl into the ecosystem and/or start giving away laptops as fast as possible for the same reasons
&
no one is ever going to compete with firefox or brave on UI alone, because the ppl that have the wherewithal to move away from the edge and chrome apps that are thrust upon them with every hardware purchase, care more about if your shit is secure and privacy respecting than if your 'tabs are on the left' :|
> he thinks browsers are due for a reinvention — and why he thinks a startup is the best place to do it
ah yes, a loss-leading category of software is best done at cash-strapped startups... wonder where the revenue will come from
With the industry standardizing (for better or worse) on a handful of rendering engines, it's not a big stretch to imagine a world where you can choose between different browsers and still experience the same web as everybody else (as opposed to the days past where choosing a niche browser meant accepting a worse web).
fair, but in that case they should be showcasing their security and privacy focused initiatives, and their source of angel funding...
otherwise how will it be anything other than spyware crap that funds itself by selling your data??
no group of power users will flock to a new browser without any transparency on the above
Yet, I also think that a new UI doesn't really change the browser experience much. It must be a completely different UX.
I think the web has gotten annoying again, in different ways, because of the thousand things that nag you on every website to click to close them or otherwise obstruct your reading (cookie banners, too). If a browser can solve that reliably, I'd switch to it.
Chome/FF are fine and all but I wouldn't mind trying out a browser that rethinks the way things are done. Especially considering how much resources Chrome/FF currently eats up with the ~15 tabs I have open at any point.
Chrome used to have this tab-to-search feature. When you visited a website like HN, it would use OpenSearch[1] to check whether it had a search engine, and then show "tab to search" in the address bar. That always seemed to me like a sign that the chrome team was working independently to make a great browser, even when that meant supporting other search engines. But today, you have to set this up manually in the settings.
[1]: https://developer.mozilla.org/en-US/docs/Web/OpenSearch
Optimizing for Feelings - https://news.ycombinator.com/item?id=31654751 - June 2022 (41 comments)
Arc Browser Company: Chrome and Safari face a new challenger - https://news.ycombinator.com/item?id=31544988 - May 2022 (125 comments)
One startup's quest to take on Chrome and reinvent the web browser - https://news.ycombinator.com/item?id=27347388 - May 2021 (5 comments)
Others?
Maybe, an app-able solution that mimicks most or all of the stuff one can get from developing for app platforms — because it would provide crossplatform, it would create the necessary incentive to develop for it. Also, user privacy first and open source.
There is a reason that Facebook moved away from a cross platform web app and even Google is moving away from its own cross platform framework Flutter:
If the browser was a little tighter to the hardware would be easier to dethrone App - with feature that currently can only be in app.
I download Arc and am immediately greeted with a mandatory account creation page (which asks for my name, even) with a footnote that says `tl;dr we don't spy on you`.
A web browser should be a purely clientside application; no logins required. Building a chromium riff that maintains serverside state about you as a user while saying "trust us :)" is in no way revolutionary, it's just another player in the nightmarish arena that is the modern web.
I still use other browsers on the tablet when needed, but have dropped websites that are incompatible with basic text webpage rendering.
I also use an ipad just to watch youtube and listen to podcasts on distrowatch (i always multitask).
And use a 5g phone just as a hotspot with an LTE travel router.
As an aside, I was visiting Washington state this year just south of Mount St Helens in the spring and with a verizon unlimited MVNO (and only one bar of signal), i was unable to open normal websites to view (and didn't have a VPN configured on my devices), but lo and behold, youtube loaded just fine and played videos the whole time.
Its 2022.. I don't think browsers are going to fix the faults/toxicity with tcp/ip
A text-only browsing standard (htxtp://justwords.com server and client side) would make < 56kbps useable though :p
Build it from scratch, not from bloat and ads.
/Just my 2 cents