25 ms·
We're building a browser when it's supposed to be impossible
- SpecialistK6466 3y agoI would love to see this being adopted and ported as a alternative, light browser for other "esoteric" OSes like Haiku, legacy OS X, and even OpenBSD (which has performance issues with Firefox)
- rvz 3y agoWeb browsers are a moving target, just like operating systems. Anyone can 'build there own'; but I'd also say that it is close to impossible to build a secure and viable competing web browser that correctly implements the specification better than Chrome. The two most important keywords in Drew's blogpost is *serious* and *security*. There is not one mention of either of those words in this blog post; hence Drew's points still stands unchallenged. You can try, but so did Servo which was a 'serious attempt' and not even the Rust hype could convince the masses that it was better than Chrome.
- hydroid7 3y agoSure, keeping up with all the new fancy Chrome standards is hard. Even Mozilla can't do it.
- pedrogpimenta 3y ago"Chrome standards"? Those are not standards. Those are things Chrome builds on their own.
- Hendrikto 3y agoUnfortunately, given its market share, they become standards.
- pedrogpimenta 3y agoSadly, this is true. And some are eventually drafted into the standard.
- KeplerBoy 3y agoIsn't that the real problem here? Nobody cares if your browser fails to render that page, because you strictly adhere to the standard while Chrome just happily deals with broken documents (or worse: Chrome requiring documents to be slightly broken). Chrome is the sole benchmark. If it works in Chrome, it's fine, if it doesn't the site is broken. Standards never enter the discussion.
- asimpletune 3y agoMaybe for you. A lot of people use safari. Ever iPhone owner for example.
- arp242 3y ago> Web browsers are a moving target It moves slower than people assume; I installed Opera 12 last year for the craic – the last version built on their Presto engine, released almost ten years ago – and it works surprisingly well with many sites. I did have to use mitmproxy to rewrite some trivial stuff like some CSS prefixes and s/(let|const)/var/ in JS. Flexboxes are supported, but grid isn't so that failed for some sites. > Drew's points still stands unchallenged His points are based on a faulty assumption to start with: he counts all sorts of documents, but that count is spectacularly wrong as it counts many things it shouldn't. I mentioned this at the time: https://news.ycombinator.com/item?id=22617721 https://news.ycombinator.com/item?id=22617721 Is it a large project? Sure, as many software projects are. But "impossible" and "comparable to the Manhattan project"? Certainly not; it's just that there's not a whole lot of money to be made with a new browser engine or other broadly shared motivation.
- forgotpwd16 3y ago>I mentioned this at the time And Drew himself answered you at the time on points made to your comment, that is things you said shouldn't be included that should and others you said were incorrectly included but were instead excluded in first place.
- arp242 3y agoThose replies are handwavy and offer no convincing defence at all. In just a few minutes I was able to reduce the 1,217 URLs to 434 by simply excluding outdated or non-applicable stuff. That's about a third and includes some pretty large documents, and that's just with a quick check. The list is unambiguously categorically wrong and anyone who seriously looks at it and comes to a different conclusion is suffering from serious confirmation bias. Whether the web is "too complex" is a different matter and open to interpretation as "too complex" is subjective. But the data very wrong and therefore the article is wrong. A "correct" conclusion with faulty arguments is just as worthless as an incorrect conclusion: any possible solution depends on a correct understanding of the situation. "Global warming happens because of pornography, therefore we must ban pornography" is just as useless as "global warming is a fake fraud" even though the conclusion of the first is correct.
- anileated 3y agoIt’s not that difficult to build a browser, but it’s very difficult to build your own browser engine, and kudos to Ladybird devs for that undertaking!
- dmarcos 3y agoYes. Never been easier to build a browser than today with great open source engines. Writing an engine from scratch is the hard part. Extremely labour-intensive to build and then maintain. People usually conflate both. edit: clarify
- Yizahi 3y agoBrowser = browser engine. Without it it's just a collection of extensions.
- anileated 3y agoThis is oversimplifying a lot. Two browsers can support the same extension system and still be quite different (e.g., Firefox vs. Orion).
- tester756 3y agoI'm finding it weird that unlike other non-trivial projects like OSes or compilers, people often discourage building web browser engine because it is "hard" or something like that like... how is it different from building a compiler? You gotta build HTML parser, CSS parser, figure out a fancy structure to represent those concepts and modify at fly. Also there's difference between making it work and making state of the art. That persons says that there's shitton of RFCs - yea sure, but you don't aim to support everything from the beginning. Let's start with HTML + CSS, then build basic js interpreter
- deleted 3y ago[deleted]
- skrebbel 3y agoYou forgot about the rendering and the user interaction.
- hulitu 3y agoSo did Google, Microsoft and Mozilla.
- archerx 3y agoIt’s the work of Google’s PR team, there’s no competition if everyone thinks making a browser is impossible, so don’t even try, ~wink wink I’m only half joking but I’m pretty sure there are some PR companies pushing “trends” on the behalf of big corps. It would be stupid and uncapitalist not too…
- charcircuit 3y agoChromium, blink, v8, etc are all open source. There are plenty of competitors who have their own browsers.
- themoonisachees 3y agoI think the distinction comes from the fact that a compile that's unfinished is unfinished but as a devloper you knew that and either you contribute or you suck it up. A browser that's unfinished really cant be used by users at all. Either it lacks security, so nobody should use it, or it lacks vital features (of the spec, not end-user features), so nobody can really use it because every time a website relies on that API something doesn't work.
- bsder 3y agoThe problem isn't the web browser. The problem is that your Javascript engine has to be staggeringly stellar or your web browser will feel like it's encased in molasses. I wish them luck, though. We could use some real competition in the web browser space again.
- epilys 3y agoChrome wasn't built in a day.
- sircastor 3y ago[flagged]
- codetrotter 3y ago[flagged]
- triyambakam 3y ago[flagged]
- tigerlily 3y ago[flagged]
- novalis78 3y ago[flagged]
- AdammadA 3y agoGuys, I don't mean to sound miserable, but please don't turn this into Reddit comments with puns and jokes. Lets keep the signal-to-noise ratio optimal.
- yellowapple 3y ago[flagged]
- deleted 3y ago[deleted]
- BurningPenguin 3y ago
- severak_cz 3y agoI think there is an important aspect of it which Andreas glimpsed over - do it incrementally. While Ladybird is not yet on par with more mature engines it already works for a lot of webpages just fine.
- michelledepeil 3y agoHe calls that "Focus on vertical slices".
- Cthulhu_ 3y agoI mean I don't see highly advanced / complicated features like webgl used in my day to day browsing, it's tech demos and the like linked from HN at best. A new browser can do without that for a long time.
- samwillis 3y agoI think a potentially interesting use case for Ladybird is as a "contenteditable" polyfill. With their dependancy free stack I'm guessing it's not out of the realms of possibility to compile it to WASM and HTML canvas. Having to only target one rendering engine when developing a rich text editor would be much better than the current nightmare it is. (There would be an accessibility problem to solve, we need some new APIs for screen readers and canvas) It's a lot of fun to watch them build Ladybird, and a testament to what a small passionate team can do.
- themoonisachees 3y agoSon what i'm hearing is that you're looking forward to browser-in-a-browser as if that's somehow not the most depressing trend I didn't know about
- samwillis 3y agoHappy to admit it's a crazy idea, and it's not something that I would want to see as a usual way to built sites. But for small areas of web apps where compatibility is difficult it does make sense. Google Docs used to be contenteditable based, but moved to a custom rendering engine. They are a large enough company to be able to invest in that. Small businesses aren't, and have to rely on content editable. Ladybird as a contenteditable polyfill would help smaller teams, or single developers, achieve the same, while also building on the existing tooling and APIs for contenteditable.
- TedDoesntTalk 3y agoWhat is “content editable”?
- mkl 3y agohttps://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/contenteditable https://developer.mozilla.org/en-US/docs/Web/HTML/Global_att... It's an HTML attribute that makes content (mainly text) editable by end users.
- mkl95 3y agoBuilding a web browser is a difficult, but attainable task. On the other hand, getting the UX right is a gargantuan task that even big tech struggle with.
- hulitu 3y agoThey don't "struggle". They just don't care ( to put it litely).
- postdb 3y agoUI/UX are made for big tech to lock in their user rather on a better/simpler, security/privacy oriented user experience.
- jillesvangurp 3y agoActually, UX is much easier to iterate on. There are countless Chomium implementations that are mainly competing on UX. They all render websites just fine. UX is the only thing they compete on. Mostly, there is a lot of imitation and not a lot of innovation in that space. It seems people like tabs at this point and things like bookmarks and back buttons. There are only so many ways to arrange those features on a screen and we've seen most of those over the past 20 years. The real difficulty with browsers is building a better one than the existing ones. If you make a new browser. It does exactly the same thing as the other ones. It's a great technical accomplishment but it has a very low value. Which is why nobody bothers at this point. At this point there are only three browser engines with any audience still worth talking about: chromium, safari/webkit, and firefox/gecko. Obviously the first two are related but they forked so long ago that they are quite different at this point. In terms of what they do there are some minor differences but they basically render the same websites in more or less the same ways. There is very little point in picking one over the other at this point. I actually use Firefox and I'm pretty happy with it. I don't think it does a lot better/different than the other two at this point but I like not selling out completely to Apple/Google. Google treats me like a product rather than a user and Apple seems more interested in telling me what I can't do rather than enabling me to do things I want to do. But objectively, both do a fine job of rendering websites and allowing me to browse the web. Just like Firefox does. And given that there is no practical difference, I choose to use Firefox.
- ryanjshaw 3y agoWhat we all REALLY care about: they went with C++ and Qt https://github.com/SerenityOS/serenity/tree/master/Ladybird https://github.com/SerenityOS/serenity/tree/master/Ladybird
- codetrotter 3y agoThe cross-platform version of the browser uses Qt The version of the browser native to SerenityOS hopefully still uses the SerenityOS GUI libraries
- throwaway2037 3y agoIt looks like they ported Qt to SerenityOS. I saw a package called "qt6-serenity". Perhaps they use the SerenityOS GUI libraries underneath. Does anyone know?
- tristan957 3y agoLadybird is a browser based on SerenityOS technologies that uses Qt as the GUI framework. In SerenityOS, they have their own browser using the same underlying technologies, but a different in-house GUI framework. WebKit and Blink are similar in how they have their different counterparts like QtWebEngine or WebKitGTK. The equivalent to WebKit and Blink in SerenityOS is called LibWeb.
- throwaway2037 3y agoHmm, I was actually asking if SerenityOS released a "fork" of Qt that re-implements class QPaint to use their native GUI API. I assume yes. QPaint is turtles all the way down to paint pixels on any platform -- MacOS, Win32, X Windows, Wayland, Android, iOS, embedded (auto), etc.
- krzyk 3y agoExactly, adding to that: they are NOT repackaging/rebranding chrome/chromium, they are actually building a browser.
- alkonaut 3y agoThe fact there are better specs doesn’t help if a large part of the work is handling things that are outside the spec. You better show every “buggy” page similar to how the major browsers show them or the new browser will be considered defective. That’s the unfortunate reality of web tech (I wish every page with an js error or incorrectky closed tag would be a big fat error message but it isn’t). And that’s still a lot of slow guesswork I imagine.
- arp242 3y agoAll this "quirks mode" stuff is part of the specification, no? It makes it all a bit more complex than it has to be, but I do believe it's specified. I'm not really sure if "you need to be bug-compatible" is still true; it probably was 15 years ago, but Chrome, Firefox, and WebKit tend to be pretty decent these days.
- michelb 3y agoQuitks mode is one thing, but most browsers have specific rules for specific websites, a manual process to update and handle those cases. Pretty sure chrome and safari have hundreds of these rules.
- vermilingua 3y agoDo you have any references? I'd be interested to see the list and what workarounds are needed
- Devasta 3y agohttps://github.com/WebKit/WebKit/blob/main/Source/WebCore/page/Quirks.cpp https://github.com/WebKit/WebKit/blob/main/Source/WebCore/pa... Don't know if this is everything, but there are a bunch of specific websites mentioned in here.
- arp242 3y agoIt's not clear to me if those are due to shortcomings in WebKit, the site, or if it's to be "bug-compatible" with anything else. Either way, 1,600 lines of code doesn't seem a lot to me.
- thrdbndndn 3y agoOthers have already mentioned performance is one of the hard part. Another aspect is that for any complex, large-scale project like browser, lots of, if not most of, effort is actually in the long tail: to make 90% or even 99% websites work probably is as hard as making the rest 1%. So while the team probably could cruise through when working on current gen spec and popular sites like Discord/Twitter, it's what left is going to be a nightmare to manage at the end. But again, nothing is impossible, and I really look forward to having a new browser engine in the wild.
- tobr 3y agoIs this something you know from experience or are you armchair guessing? If I recall correctly, the work Andreas did at Apple was mostly focused on performance, and Safari has long had a reputation for excellent performance. Maybe you’ve also done that type of work, but otherwise I’ll trust his judgement.
- hutzlibu 3y agoMy experience with big projects would confirm this. Getting the basic things implemented is quite fast, but the devil is in the details and they can drag on for years, if you didn't account for all of them in the beginning. And there are a hell lot of details with the plattform called the web. But I would think in this case here, they have no intention of going to 100% by all means, to support all the broken pieces of web garbage out there. The goal is to implement the W3C specs. (they are even working on fixing the specs) Oh and Kling specifically worked on browsers before, so that is a good base. "I've had the opportunity to work on production browsers for many years (at Apple and Nokia)"
- thrdbndndn 3y agoCould you elaborate your point? I made a comment about why browser is hard in general. I don't in anyway suggest or imply this team would struggle with performance, so not sure why their (amazing) background would be relevant.
- 3y ago
- deleted 3y ago[deleted]
- pyentropy 3y agoHe should've put "browser engine" in the title which is the impressive part - there are far too many Chromium wrappers around ;) And this is much more than that: custom JS interpreter, SVG, CSS renderers and so on...
- choeger 3y agoI think that there will be a new successful browser one day - and it will be disruptive. But it needs two properties: 1. A unique use case or feature that cannot be easily implemented in the existing browsers. Something that breaks the current architecture and turns the current use cases into afterthoughts. ("oh, yeah, right we actually need to render html somehow at some point, can the intern do it?") 2. A significant breakthrough in software engineering productivity, a major step in terms of abstraction and safety. Something like the combination of a LLM and formal methods. This browser does not check these two boxes (using C++, albeit hopefully a more modern dialect, and targeting plain old browsing). So it is certainly great for the spec - and should be paid for by the W3C, IMO, great for the people developing this as an exercise, but it will never dethrone Chrome.
- guilherme-puida 3y agoI don't think Ladybird is being built to dethrone Chrome, just like Serenity is not being built to dethrone Linux.
- pflanze 3y agoI guess "won't be big and professional like gnu" can only be said once innocently. :) (To be fair, the tech landscape may be sufficiently different that the same won't happen again, too.)
- jongjong 3y agoThis is great. Refreshing to read something which talks about complexity as a real and important issue (not as a positive or neutral aspect of a system). I've been hoping for a browser like this since the day I tried to download the Chromium repo and found out how large it was. Also, I noticed that it had a large number of external dependencies which made it very difficult to actually dig into the code.
- tabtab 3y agoModern HTML browsers have become Swiss Army Spaghetti. Perhaps we need to split the standard into smaller components so one size doesn't have to fit all. I suggest at least 3 sub-standards: A) Document-oriented standard. Perhaps HTML standards are "good enough" for this? B) Media/Art/Gaming. C) Business & Data CRUD/GUI (And don't link that XKCD cartoon about 15 standards. There are zero for these categories.)
- yellowapple 3y ago> So instead of [building the browser one feature/spec at a time], we tend to focus on building “vertical slices” of functionality. This means setting practical, cross-cutting goals, such as “let’s get twitter.com/awesomekling to load”, “let’s get login working on discord.com”, and other similar objectives. Seems similar to how Wine is developed: instead of just going down the list of API functions to implement, the emphasis seems more on "let's get SomeProgram.exe to run" or "let's fix the graphics glitch in SomeGame.exe". Console emulators (especially of the HLE variety) seem to have a similar flow.
- jgerrish 3y ago> Console emulators (especially of the HLE variety) seem to have a similar flow. Good insight. I was going through this same spiel in my head the other day. It's a flow that if properly managed can provide a good feedback system. It provides the developer positive feedback and at the same time successful milestones. Say I'm building an emulator for a simple architecture with a few dozen opcodes... "Alright. Let's start. Where do I start? How about NOP." So you implement NOP. You write some tests for it. Maybe you build a pretty printer into your opcode and you test it on disassembling a single byte file with a single NOP opcode. Suddenly you have a working dissassembler! It's obviously an artificial toy, but it works. Maybe next you add an INC instruction. Add some tests. You'll need registers... Build a simple one INC opcode binary file. Maybe add an executor in addition to a dissassembler. Suddenly you've got registers working. And if if add another INC opcode byte, you can see your emulator changing behavior based on real external input! And so on. It's an interesting flow, you're right.
- pavlov 3y agoThis approach works better for Wine where the Windows binaries are a fixed target. On the web, you may get Twitter's feed rendering acceptably, and then two days later they ship an insignificant redesign that happens to use sixteen CSS features you don't have and everything is totally broken again.
- actionfromafar 3y agoDepends on if your actual goal was getting twitter to work. If Twitter rendered fine, chances are some other site render fine today. The same it was with Wine.
- deleted 3y ago[deleted]
- meerita 3y agoI think adoption and maintenance will be the hardest parts of the project.
- KingOfCoders 3y agoI'll switch from FF as soon as it's usable for my moderate needs.
- dolmen 3y agoIt is irrelevant because popularity is not the goal of the project. From Serenity OS page [0]: > This is a system by us, for us, based on the things we like. [0]: https://serenityos.org/ https://serenityos.org/
- poisonborz 3y agoDid he really wrote "having an experienced leader (me)" as one of the points.
- throwaway03214 3y ago[flagged]
- aylmao 3y agoHe used to work on WebKit, I'm sure that experience has come in handy https://github.com/WebKit/WebKit/search?q=Andreas+Kling&type=commits https://github.com/WebKit/WebKit/search?q=Andreas+Kling&type...
- dolmen 3y agoI recommend to listen to his interview on the CoRecursive podcast: https://corecursive.com/serenity-os-with-andreas-kling/ https://corecursive.com/serenity-os-with-andreas-kling/
- deleted 3y ago[deleted]
- simonw 3y agoHe's clearly earned that title. He demonstrably has the experience - and inspiring and coordinating volunteer contributions to a project of this scale is an extraordinarily difficult leadership challenge.
- KingOfCoders 3y agoIt must be impossible, Mozilla spent more than $5billion for a 3% market share.
- gwnywg 3y agoI wonder, was Linus Torwalds having a market share in his mind when he was starting linux...
- KingOfCoders 3y agoNot when I copied boot.tgz and root.tgz from the internet.
- forgotpwd16 3y agoMarket share and functionality are distinct things. Firefox works as fine as Chrome does.
- throwaway71271 3y agohonestly the web is so broken, i think it is beyond repair, i just want to run the website through some LLM to get the content out and show it in lynx and be done i dont want to consent to be tracked, i dont want to login, i dont want a presonalized feed, i dont want to subscribe to your news letter, i dont want your ads, ethical or not js is still an issue, but maybe a day will come when i can say to the model 'pretend you are js interpreter; what is text the output of this minified react garbage and show it as markdown' and just pipe it to lynx or w3m or worse case eww
- asimpletune 3y agoThe web is still a great place to build something and show it off to your friends
- deleted 3y ago[deleted]
- nicoburns 3y agoThe specs really are drastically better than they used to be. Compare the modern specification for CSS Table Layout (https://www.w3.org/TR/css-tables-3/ https://www.w3.org/TR/css-tables-3/) with the older CSS2 one (https://www.w3.org/TR/CSS2/tables.html https://www.w3.org/TR/CSS2/tables.html). The older one doesn't even attempt to define the "automatic layout algorithm" at all!
- doodlesdev 3y agoWhat is this supposed to mean in the website? > Not Ready For Implementation > This spec is not yet ready for implementation. It exists in this repository to record the ideas and promote discussion. > Before attempting to implement this spec, please contact the CSSWG at www-style@w3.org.
- nicoburns 3y agoIt means that the spec is a draft and that it hasn't been finished yet (there may still be bits missing or wrong). But it is clearly already so much better than the old version.
- missblit 3y agoIt means that the web is built on top of a bunch of working draft specifications. If you work in the web space you quickly learn to shrug, double check that browsers do actually implement this version, and proceed.
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- nicoburns 3y agoI've been working on CSS Layout as a library recently[0] (we have Flexbox and CSS Grid support so far). It seems to me that librifying everything (much like is already done with JS engines) could be a good approach to making building a new browser engine more accesible. Because that way any one wanting to build a new one can starting by pulling in a bunch of libraries (layout, rendering, etc), and then just customise the bits they need (ideally publishing them as a new iteroperable library that others can also use). [0] https://github.com/DioxusLabs/taffy https://github.com/DioxusLabs/taffy
- dolmen 3y agoQuestion about implementation: while you are not building a browser (so I expect HTML is out of your scope) are you able to use an existing testsuite to compare your implementation?
- nicoburns 3y agoWe have our own test suite (orginally derived from the test suite of Meta's Yoga layout library [0]) which consists of text fixtures that are small HTML snippets [1] and a test harness [2] that turns those into runnable tests, utilising headless chrome both to parse the HTML and to generate the assertions based on the layout that Chrome renders (so we are effectively comparing our implementation against Chrome). We currently have 686 generated tests (covering both Flexbox and CSS Grid). We would like to run the Web Platform Test suite [3] against Taffy, however these are not in a standard format and many of the tests require JavaScript so we are not currently able to do that. [0]: https://github.com/facebook/yoga https://github.com/facebook/yoga [1]: https://github.com/DioxusLabs/taffy/tree/main/test_fixtures https://github.com/DioxusLabs/taffy/tree/main/test_fixtures [2]: https://github.com/DioxusLabs/taffy/tree/main/scripts/gentest https://github.com/DioxusLabs/taffy/tree/main/scripts/gentes... [3]: https://github.com/web-platform-tests/wpt/tree/master/css/css-flexbox https://github.com/web-platform-tests/wpt/tree/master/css/cs...
- zzo38computer 3y ago> It seems to me that librifying everything (much like is already done with JS engines) could be a good approach to making building a new browser engine more accesible. ... Because that way any one wanting to build a new one can starting by pulling in a bunch of libraries (layout, rendering, etc), and then just customise the bits they need (ideally publishing them as a new iteroperable library that others can also use). I think that you are right; this is what will be needed. However, that alone won't do because it is also needing to write them to be good, and not too slow/inefficient and not too incapable of doing many customization stuff. And, ensure things are properly separated. (Looking at your examples, it seems like it is properly separated, to me. You can define styles independently of parsing them, which improves efficiency as well as allowing adding other steps in between such as "meta-CSS" if desirable.) In some cases, it may be desirable to modify parts of the libraries, although then it may be necessary to maintain a fork of that library, which is not always desirable. (For example, I may want to add proper support for non-Unicode text, and being able to customize text layout functions, including all possible text directions (vertical, horizontal, boustrophedon, etc). Adding other CSS rules might also be needed for some other purposes, too. And then, we will also need to do accessibility features.) (I like to use C programming; looking in issues, it look like they might be added, so that can be good; unfortunately, Rust has a Unicode string type and this can be problematic even if using C, unless the Rust programming is done very carefully to avoid this problem.)
- dolmen 3y agoI recommend to listen to Andreas Kling (the leader of that project and the author of the post) interview on the Corecursive podcast to learn about his background in working on web browsers code: https://corecursive.com/serenity-os-with-andreas-kling/ https://corecursive.com/serenity-os-with-andreas-kling/
- vrglvrglvrgl 3y ago[dead]
- chrismorgan 3y agoSince “The reckless, infinite scope of web browsers” is depicted at the start of the article, I think it’s worth pointing out that its claim of W3C having 1,217 specs totalling 114 million words is wildly wrong, probably by 2–3 orders of magnitude in the total. The considerable majority of the documents considered were not specs or not web-relevant, and dozens of versions of the same thing were often counted. Source: https://news.ycombinator.com/item?id=22617721 https://news.ycombinator.com/item?id=22617721.
- illiarian 3y agoWorth noting the discussion at the link. Given that he omitted huge specs like WebGL etc. I wouldn't say it's wildly wrong. But I'd love to somehow arrive at a better estimate.
- cxr 3y agoIt's not hard. Start with the WHATWG's spec, then incorporate the other specs it references using a reasonable heuristic to determine if a given item should be included or not. If you don't think the estimate from Reckless, Infinite Scope is wildly off, then you either didn't read the methodology and do a spot-check of the dataset, or you really don't understand the scope of what gets published by W3C and how little much of it has to do with Web browsers or how many revisions of them there are.
- voytec 3y agoGreat news! Would love to see a browser not controlled by GOOG.
- qikInNdOutReply 3y agoI wish there was a auto-migration framework, if one software product like my browser is corrupted aka sells out, it packs my settings into a neutral interface file and automatically migrates to a still untouched browser or offers me a list to chose from. Like Nomadic herds of animals, hunted by predators, ever elusive, never caught..
- throwaway03214 3y ago[flagged]
- NotYourLawyer 3y agoWhy not just fork Firefox?
- ramshorst 3y agoI agree. Can someone explain why this is not a good solution?
- eatonphil 3y ago> Also, since Ladybird is an offshoot from the SerenityOS project, it shares the same culture of accountability and self-reliance. We avoid 3rd party dependencies and build everything ourselves. In part because it’s fun, but also because it creates total accountability for what goes into our software. From the article.
- rvense 3y agoWhy learn to play an instrument when you can just buy a CD? The goal is not to have a browser, but to build one. This browser is affiliated with the SerenityOS project, which is reimplementing an entire desktop OS and all applications from scratch.
- drtgh 3y agoI would suggest to design the browser's core for being able to natively support features homologous to: · uMatrix : A version with even more extended filtering characteristics. With special attention to javascript calls/loads control. · uBlockOrigin. · DecentralEyes. · CookieAutodelete: Special attention to cached content deletion after leave an specific site and to add previous write permissions. These are essential and needed features within any browser.
- shp0ngle 3y agoI think they have bigger fishes to fry right now, as most of the web still doesn't work there
- shp0ngle 3y agoI know that this is more of an "can we do it?" experiment, so I feel kind of bad for ciriticising. It's a great feat to get this far. But I was disappointed that it just crashes on any github page... and SerenityOS github is literally the first link on the Ladybird default homepage :) edit: oh it doesn't crash on github page, it crashes on the github issues page.
- smackdam 3y agoIt's time to takeover chromium monopoly
- spiffytech 3y ago> Deferring on performance work I'll be curious to see how this plays out. History seems to show that boosting performance later is a monumental challenge. Early Chrome showed that Firefox was leaving a lot of performance on the table, and it took Firefox a long time to catch up.
- it_citizen 3y agoBut their product survived and they ended up being wildly successful. In a lot of projects, early optimization hurt the development speed and maintainability, sometimes killing the product. It is easier to see performance bottlenecks once a product is wildly used than adding optimizations everywhere we suspect it might become a problem later.
- Narishma 3y agoFirefox is not wildly successful. I think you misunderstood the comment.
- it_citizen 3y agoI did
- jack_riminton 3y agoGiven how insanely fast both processors and internet speeds are nowadays, what’s the point?
- nashashmi 3y agoMy dream browser is one that is a single file package. There used to be a qtwebkit browser before but it stopped developing.
- nmiculinic 3y agoI’m curious as to why on this
- dpbriggs 3y agoAs with everything in Serenity - why not? It's fun and people are motivated to work on it. If that wasn't the case it wouldn't be a project. And that's not meant to be a pithy response. That's the Serenity culture.
- al2o3cr 3y ago5000 feet up the mountain: "I'm climbing Everest solo without oxygen even though it's supposed to be impossible. How come I'm making such good progress?!"
- xeromal 3y agoI hope these guys do well, but yeah. In my lowly experience, the last 10% of the goal takes 90% of the time.
- lysecret 3y agoThis is exactly the type of thing why I am so excited about LLMs. If they make use widely more productive we can build huge things like this and take on the monopolies in the space. It might lead to a wave of "thought impossible to build" products.
- Gigachad 3y agoAfter the doomer wave I think we are going to see a lot of incredible projects people have built with these tools
- bob1029 3y agoI've been wondering if at some point we could eventually train the models in first-order terms. I.e. input some HTML/JS/CSS + user state (i.e. scroll position, x/y dimensions) and then it outputs a final rasterized frame representing the current state of the viewport. The training data would be fairly obvious and easy to collect. Failing that, an optimized binary blob that could achieve the same using training data over modern browser specifications. If you go to ChatGPT and start talking about ISO32000-compliant implementations and poke at the edges, you can get it to start writing a PDF engine pretty quickly.
- cubefox 3y agoThis post doesn't give reasons to doubt that building a new state of the art browser is basically impossible now. It might well be possible to build a new browser that kind of works on many popular websites, and that would be surprising enough. But the amount of work needed to build something comparative to the rendering engines of Chrome, Firefox, or Safari, something really usable, would probably take decades rather than years. If it is possible to catch up at all. (I remember once seeing a graph which compared software projects by lines of code, and browsers were only topped by a few things like major operating systems.)
- yodsanklai 3y agoIs all the complexity of a browser in the rendering engine? can a browser be split into several components so that they can be rewritten concurrently?
- riffraff 3y agoMozilla's servo seemed to be done in this fashion, so that some components were later brought to gecko/Firefox, so presumably you can do it.
- nicoburns 3y agoYeah, I think servo had the right idea. The main problem with servo's components is that they're severely underdocumented, which has made it harder than it should be for some components (like webrender) to become widely adopted (some of the other ones like html5ever and cssparser are widely used).
- mort96 3y agoI suppose it depends on what the goal was. If the goal was to end up with widely reusable web browser components, the lack of documentation might've been a problem; but if the goal was to improve Firefox, it seems to have been a smashing success.
- 0xbadcafebee 3y agoIf your team's just 5 people, having a strong leader can make the difference. But with a whole business, it's no longer about one strong leader. The more people you have, the more you have to invest in levelling up individual performance. Almost universally that doesn't scale, so instead you work on process, and use that process, not individual leadership, to ensure better results.
- shadowtree 3y agoWouldn't this be a perfect task for an LLM? Ingest all relevant web specs (HTML, CSS, JS, ...) and pick a language - start prompting for components. Really wonder where the event horizon for really functional programming is.
- tabtab 3y agoSince there's already plenty of HTML browsers, instead explore an unserved need, such as a stateful GUI markup browser & standard. HTML/DOM is missing many expected GUI idioms, and has an inherent text positioning flaw: https://www.reddit.com/r/CRUDology/comments/10ze9hu/missing_or_defective_gui_idioms_in_htmldom/ https://www.reddit.com/r/CRUDology/comments/10ze9hu/missing_... GUI's, desktops, and mice are still needed for biz and productivity. HTML browsers have been a goofy mess for this, requiring bloated buggy JS libraries with long learning curves. Let's Make Gui's Great Again! (No, I'm not a Don fan, BTW, but his trollisms are catchy.)
- mrweasel 3y agoI absolutely love that Andreas Kling doesn't care about it being hard/impossible, and just dives straight in with pure optimism. It's absolutely wonderful to see the joy and positivity.
- buovjaga 3y agoLinus Groh of LibJS is an Invited Expert in TC39: https://linus.dev/posts/road-to-working-on-serenityos-and-ladybird-full-time/ https://linus.dev/posts/road-to-working-on-serenityos-and-la... ECMAScript conformance test results looking good, 87-88% passing at the moment: https://libjs.dev/test262/ https://libjs.dev/test262/ I see weekly summary articles about Ladybird development are now being published: https://linus.dev/posts https://linus.dev/posts
- zellyn 3y agoAndreas, if you're reading this… have you folks thought about building a new ACID-type test that covers the gaps in the existing ones? Seems like it would be incredibly useful.
- Animats 3y agoGoogle vs. the web has become "embrace, extend, devour".
- cryptonector 3y agoDrew DeVault isn't wrong.