Building a Better Web Browser - James Mickens - Harvard CS Colloquium 2015
Paul Irish4 HN recommenders · recommended in 5 months, 2017-2023
29K views · 10 years ago · talk · evergreen
James Mickens's 2015 Harvard colloquium argues that browsers are bloated and insecure because feature races trump clean interface design. He presents a cleaner, more secure browser architecture (Atlantis) with a much smaller API surface.
HN cites it whenever people discuss rebuilding the web platform or what a better browser architecture could look like.
33:52Nordic.js 2014 • Douglas Crockford - The Better Parts
Nordic.js
73K views • 12 years ago
45:05Servo Architecture: Safety and Performance
linux conf au 2017 - Hobart, Australia
12K views • 9 years ago
44:36Hacker Way: Rethinking Web App Development at Facebook
Meta Developers
900K views • 12 years ago
43:33Andy Bell – Be the browser’s mentor, not its micromanager
Hey! Presents
23K views • 4 years ago
52:23Nicholas Zakas: Scalable JavaScript Application Architecture
YUI Library
68K views • 15 years ago
11:46James Mickens on JavaScript
tablet reader
49K views • 11 years ago
27:42Mark DiMarco: User Interface Algorithms [JSConf2014]
JSConf
52K views • 12 years ago
29:51Keynote: What is a Component (and Why)? - Luke Wagner, Distinguished Engineer, Fastly
The Linux Foundation
7K views • 3 years ago
43:29Servo: Building a Parallel Browser
Linux.conf.au 2015 -- Auckland, New Zealand
23K views • 11 years ago
35:32Cheng Lou - On the Spectrum of Abstraction at react-europe 2016
ReactEurope
63K views • 10 years ago
27:21Daniel Henry Holmes Ingalls Jr.: The Live Web. Drag 'n drop in the cloud
JSConf
8K views • 13 years ago
20:21Humans can't read URLs. How can we fix it? - HTTP 203
Chrome for Developers
59K views • 6 years ago
2:59:19Brendan Eich: JavaScript, Firefox, Mozilla, and Brave | Lex Fridman Podcast #160
Lex Fridman
878K views • 5 years ago
1:06:39Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin
Confreaks
172K views • 14 years ago
1:15:58October CincyRb - Jim Weirich on Decoupling from Rails
Launch Scout
48K views • 13 years ago
24:28Sebastian Markbage: Minimal API Surface Area | JSConf EU 2014
JSConf
71K views • 12 years ago
19:36Your web app but good: Aaron Boodman (Local-First Conf)
Local-First Conf
8K views • 2 years ago
29:23GoRuCo 2012 Hexagonal Rails by Matt Wynne
Confreaks
17K views • 14 years ago
29:32Pete Hunt: React: Rethinking best practices -- JSConf EU
JSConf
548K views • 13 years ago
1:17:21The GUI should be better. A lot better.
Accursed Farms
397K views • 6 years ago
8 comments from Hacker News
"Is this really the way forward?" No. The way forward for scale-free systems which implement a hierarchy of competence is to have "the factory smaller than the product" [1]. Instead of the Chrome Canary team and the various Working Groups dictating from above what passes as valid, let the rules be sent at the same time with the interpretation of the rules [2]. In the same manner DNA encodes proteins with no mention of the underlying morphology, but once the RNA starts building the morphology arises. [1] Jim Keller talking about DNA Origami at 19:18, link [2] Not even such a new idea, "Building a Better Web Browser - James Mickens - Harvard CS Colloquium 2015", on rendering at 04:20, ▶ this video
I used to get really angry at CSS because of all of the things that made it a bad fit with component-based systems like React. It made me so unhappy that I worked full-time for about nine months on this project, which was a React-like component system that rendered to canvas. link I got pretty far! But I gave up working on it when I realized that I was going to be pushing this boulder uphill for years. So what changed? I picked up Swift and SwiftUI, and it turns out that some of the ideas that I had were the same ones the SwiftUI folks went with! For all the web has given us, I think its APIs are holding us back now. I still think we need something open and decentralized that competes with the App store and Play store, but one that offers apps that use basically the same APIs and technology that the native apps use. Last thing: I know Apple cripples browsers on their platforms. I've run into all those issues personally in my work! That still doesn't make the web the right thing. Here's James Mickens telling us how to fix the browser's busted architecture: ▶ this video
James Mickens has a talk about doing exactly this [1]. It's a perfectly sensible proposal and the talk is well worth the time to listen to. He makes a solid argument for why this should be done. Problem: in reality, it is unworkable and will never happen, and even if it did the actual level of "development" that we actually see in the real world would end up in a situation just as bad as the situation we are in now. [1] ▶ this video
I'm working on a new framework that attempts to take what I think are the best ideas from the web (zero installation, easy to lay things out without tracking measurements yourself) and combines them with the best ideas from React (functions as components, ideally no mutable state). I want to solve what I see as the original sin of the web: inept separation of presentation from content. The other thing I aim to solve is the issue of the browser and corresponding web standards being a monolith so large that only Google and Apple can afford to implement them. By wrestling back control over layout, I hope to show that a next-generation browser could be much more like what James Mickens laid out with the research he presented in this talk: ▶ this video I decided to prototype it in JavaScript, and right now it just renders into a canvas element. I love working on it, because all the unit tests run really fast. It can do that because there's no browser in the way - node-canvas is much lighter weight. Once the design is settled down, I'd like to rewrite it in Rust. The other advantage of this is that it is incremental. It'll run in any existing web browser, and building a cut-down browser that isn't web-compatible is doable in a few weekends. The best way to see its capabilities so far is to look at the test screenshots: link - see especially text-actual.png, text-concave-cutout-actual.png, text-diamond-actual.png. I fell down a rabbit-hole with that a bit and made it wrap text around a
I always like to refer to Ian Hickson's Requirements for Replacing the Web [0] when this topic comes up. They seems to encapsulate well the social, technological and economic dynamics required when discussing replacing the Web. However, few attempts (Crockford's Seif Project [2], MS's Project Atlantis and Project Gazelle [2][3][4][5]) seemed have to heed this wisdom. [0] link [1] link [2] ▶ this video [3] link [4] link [5] link
James Mickens at Microsoft Research presents Atlantis, which I definitely think this still the most forward-looking browser architecture out there: ▶ this video Ideas from this effort are going to be trickling into browsers for years to come. For example, if you squint a bit, you might see a conceptual resemblance between the Syphon interpreter in Atlantis and WASM in shipping browsers.
> Doesn't every freaking mainstream technology suck? I regularly come across rants from significant developers regarding this issue. There probably is no way to prevent this from happening. Because worse is unfortunately better. Web technology is fundamentally different in that you have a big standards body regulating everything from layout down to color blending, then leave it up to multiple vendors to implement all that stuff at great expense and with long delay. Worse, it's all shoehorned on top of some "document model" than was never designed with applications in mind. It's a waste. To see what a better platform could look like, consider this: link ▶ this video The key here is reducing surface area. It's entirely possible that WASM will bring us closer to that, but the web developers of today probably won't like that. > I regularly and seriously consider to leave software development because of this (as I'm really suffering) but then I remember how much power it gives me despite the horrible faults it has. I don't know what you do, but I find web development to be significantly more frustrating than other areas. That doesn't mean there isn't frustration elsewhere though and it's definitely part of the job.
James Mickens gave an interesting talk on what we could do to build a better browser: ▶ this video I'm hoping that WebAssembly might be a route towards allowing something like this to happen. If an alternative to HTML/CSS/JS could be developed in WebAssembly, then we could have a situation where HTML has competition, rather than being the only way to build a website. And browsers can become simpler as the rendering duties are moved out of the browser and to the website itself.