8 ms·
"Writing a browser" (from scratch) at this point basically means you are implementing a type of portable operating-system-in-a-box (the web platform) and that i
by ilaksh 3y ago
"Writing a browser" (from scratch) at this point basically means you are implementing a type of portable operating-system-in-a-box (the web platform) and that it will be compatible with whatever Google decides to add to theirs.
The browser is so comprehensive in functionality and APIs, and such a challenge to keep up with Google's constant churn of new features and total dominance, that not even Microsoft could do it.
Here is my somewhat related pet project: Tersenet. https://github.com/runvnc/tersenet https://github.com/runvnc/tersenet
It's just a concept, virtually no implementation. But I deliberately picked a set of requirements that are designed to be feasible for people to implement. Much less involved than a full web-browser. (Related discussion with GPT-4 https://chat.openai.com/share/16d02b78-f876-4c87-949a-a60b4fded622 https://chat.openai.com/share/16d02b78-f876-4c87-949a-a60b4f...)
Also related is the Gemini project which is a real thing and quite practical: https://geminiprotocol.net/ https://geminiprotocol.net/ That inspired my ideas for Tersenet.
- fsckboy 3y ago> and that it will be compatible with whatever Google decides to add to theirs There are plenty of respectable people who maintain "home pages" with much simpler HTML than what is possible, and news.ycombinator.com gets a lot of love for keeping its classic look. All this to say, I'd like if the people who have a lot of overlapping agreement on this would agree on a subset to use, and I'd be happy with a browser that didn't do everything google's did. I run with uMatrix which shuts off a lot of google functionality, and I never whitelist google.com domains just to prove that I don't have to, the world doesn't end. It's a relatively small number of sites that just won't work.
- deleted 3y ago[deleted]
- GoblinSlayer 3y agoI have a similar idea of a minimal html browser, which was dismissed by the gemini authors. Should be reasonably doable if you don't implement all web 2.0. No css - user decides appearance, no javascript - it would require full web 2.0 anyway, and a bit of webcompat, start with <div>, <p>, <a> and there you go.
- prmoustache 3y agoIsn't it called `netsurf` already?
- livrem 3y agoI would not want a simple browser to replace gemini, but I would be happy to use a simple web browser in addition to gemini. It would be nice to only have to fire up a big bloated real browser for doing banking and such things.
- GoblinSlayer 3y agoYes, in addition, maybe even 2in1. As a quick hack gemini can be converted to html on the fly.
- deaddodo 3y agoI mean, LadyBird is extremely young and coming along at a pretty decent pace. Though, to be fair, the main author does have some extensive experience in the realm. I, personally, would love to see some alternative engines to the monoculture of Blink and it's WebKit cousin, other than just Gecko/Quantum. Something to take the place of what KHTML used to have before being gobbled up into WebKit; or just another (ideally, open source) choice to experiment on.
- adwn 3y agoWell, there's Servo [1], which I have high hopes for. [1] https://servo.org/ https://servo.org/
- hu3 3y agoQuick links for the curious: site: https://www.ladybird.dev https://www.ladybird.dev code: https://github.com/SerenityOS/serenity/tree/master/Ladybird https://github.com/SerenityOS/serenity/tree/master/Ladybird
- niutech 3y agoApart from Servo and Ladybird, there are also: NetSurf, Ultralight, Ekioh Flow.
- davedx 3y ago> "Writing a browser" (from scratch) at this point basically means you are implementing a type of portable operating-system-in-a-box (the web platform) and that it will be compatible with whatever Google decides to add to theirs. I'll bite... why? Most websites follow HTML and ECMAScript. Why do you need to do anything Google does? Isn't the whole point of this project to decouple from what big tech companies do? The vast majority of websites don't want to follow whatever Google-only shit they've come up with most recently, whether it's adtech, AMP, DRM, or whatever.
- ilaksh 3y agoStudy the Microsoft and Firefox projects to see why it turns out that way. The basic thing I am saying is that if you call it a web browser and use the same core protocols etc., you have a practically infinite (for an individual) set of requirements to implement and will never be truly compatible. What ideas like Tersenet and systems like Gemini propose is similar to what you say, except even simpler. HTML and ECMAScript are quite complex and have a lot of challenging expectations as far as performance and flexibility. The idea is to try to break things off in a clean way that is feasible to implement without having to worry about a fuzzy and ever-expanding definition of what you have to support.
- zdunn 3y ago> The basic thing I am saying is that if you call it a web browser and use the same core protocols etc., you have a practically infinite (for an individual) set of requirements to implement and will never be truly compatible But what the parent is saying is you don't have to be compatible with 100% of websites. If you build a browser with good HTML/CSS/Javascript handling, you'll be compatible with the large majority of the web. Yes, there are other specs that are in use by a tiny portion of the web. But your browser can still exist if it doesn't support them. Users of that website will know or find out that they can't use your browser for that, but for every other user that browser could be exactly what they need. > without having to worry about a fuzzy and ever-expanding definition of what you have to support. It's only ever-expanding if you're trying to keep up with the Jones's. You can define a subset of the web you want to support and build a clean, small browser that supports that.
- phendrenad2 3y agoYou're wrong about a few things. (1) A browser isn't an OS at all, it's a Javascript runtime and a constraint solver (to put all of the boxes in the right places per the CSS inputs). (2) Google doesn't constantly churn the web world anymore, they still do try, but it hasn't been effective for quite some time. (3) Microsoft was keeping up with web standards just fine, but they were falling behind in performance, and that's why they switched to Chromium.
- Const-me 3y ago> they were falling behind in performance They were only falling behind in performance on google’s web pages such as youtube. Read that comment: https://news.ycombinator.com/item?id=18697824 https://news.ycombinator.com/item?id=18697824
- phendrenad2 3y agoIf a "hidden empty div" is all it takes to break your browser's performance, I'm sorry, that's just not impressive.
- clucas 3y agoYou are picking the least important detail of the story. The deal is, Google found a simple way to kill the performance of a rival browser... so they exploited it and immediately started advertising how slow the rival was. By the time the rival fixed the performance issue, the damage was done. If true, that's pretty dirty, and it directly contributed to the growing browser monoculture.
- surajrmal 3y agoThis is a wild conjecture. Whatever happened to innocent until proven guilty? The fact they jumped on it means that someone was paying attention to these metrics, but assuming chrome has any influence on YouTube is laughable.
- Sakos 3y agoAm I wrong in thinking the only thing we're missing for a rich ecosystem of browsers is a modular, independent Javascript runtime/interpreter similar to Java? Java has a bunch of JVMs: https://en.wikipedia.org/wiki/List_of_Java_virtual_machines https://en.wikipedia.org/wiki/List_of_Java_virtual_machines Maybe we need Mozilla (and others) to make an independent Javascript "VM" that everybody can use.
- nvm0n2 3y agoThat's V8.
- manicennui 3y agoThere are many: https://en.wikipedia.org/wiki/List_of_ECMAScript_engines https://en.wikipedia.org/wiki/List_of_ECMAScript_engines Mozilla's: https://en.wikipedia.org/wiki/SpiderMonkey https://en.wikipedia.org/wiki/SpiderMonkey
- december456 3y agoMozilla and Google each has one, both open source (iirc). NodeJS uses Chrome's, even.
- deleted 3y ago[deleted]
- grishka 3y ago> The browser is so comprehensive in functionality and APIs Not really. If you limit your scope by saying that you're building a hypertext document viewer, it suddenly becomes approachable. A lot of the functionality is all that PWA stuff no one asked for and no one is using for anything good anyway. WebSQL? IndexedDB? Service workers? WebGL? WebGPU? WebBluetooth? WebRTC? Just act like it all doesn't exist. 99% of actual websites — not web "apps" — would not lose any functionality.
- gen220 3y agoIn a world where UNIX-inspired systems run most software, I like to imagine that it’s possible for a UNIX-like browser to become dominant. Recall that UNIX (and C) were built (and adopted) in response to perceived over-complexities in contemporary systems. Maybe in 20 years we’ll recall + interact with Chrome like how people in the 80s recall + interacted with Multics or OS/360. To complete the analogy, I guess you’d expect to see this browser come out of former Safari interns/engineers at Apple.
- lib-dev 3y agoPeople interested in building browsers should look into WebKit. You can use that for HTML/CSS/JS rendering and save a lot of time/effort.
- grishka 3y agoBut the thing is that if I were to build a browser, I'd start from the requirement that websites should be treated like malware that can't be trusted. Applying my ideas to a preexisting enormous codebase feels troublesome.
- aktenlage 3y ago> To complete the analogy, I guess you’d expect to see this browser come out of former Safari interns/engineers at Apple. Sounds like Andreas Kling: https://www.techgamingreport.com/new-ladybird-web-browser-what-developer-andreas-kling-is-planning-with-his-team/ https://www.techgamingreport.com/new-ladybird-web-browser-wh...
- darepublic 3y ago> The browser is so comprehensive in functionality and APIs, and such a challenge to keep up with Google's constant churn of new features and total dominance, that not even Microsoft could do it. I always suspect that it's not that they couldn't do what you describe per se, it's that they couldn't do that within other shareholder driver parameters to make them want to do it.
- emodendroket 3y agoWell, sure, if they were happy to burn money with no tangible result they could probably keep going as long as people are buying other MS products.
- hutzlibu 3y agoThey just realized they didn't really needed their own rendering engine. It would have been a nice to have, like in the old days of IE6, where they could decide over the direction of the web. But more valuable to them is that people are using a browser they control (no matter the tech within) - which is why they try to push you to edge however they can.
- khimaros 3y agorelated, a subset of html supported by Qt: https://doc.qt.io/qt-6/richtext-html-subset.html https://doc.qt.io/qt-6/richtext-html-subset.html
- khimaros 3y agoalso, a related HN thread about minimal subset of HTTP and HTML: https://news.ycombinator.com/item?id=23731606 https://news.ycombinator.com/item?id=23731606