11 ms·
Ladybird browser spreads its wings
- skilled 2y agoRelated: I'm forking Ladybird and stepping down as SerenityOS BDFL - https://news.ycombinator.com/item?id=40560768 https://news.ycombinator.com/item?id=40560768 - June 2024 (262 comments)
- pixelatedindex 2y agoFor a newbie like me who isn’t like a software eng wizard but is willing to put an hour or two every day, is a project like this a great way for me to learn and contribute? Or is it still so pre-alpha that you need deep domain knowledge to contribute and have an impact?
- tterras 2y agoEven if not pre-alpha, building a browser needs deep domain knowledge. But on the other hand, after some time you will be rewarded with very, very useful knowledge of how the web actually works. The start would be pretty rough but if your daily work lacks the challenge then I would encourage you to try contribute :) (Not affiliated in any way)
- gaazoh 2y agoI think it's a great project to learn and contribute. The scope is very broad, so there are plenty of different areas to contribute to, including not-so-advanced functionality. For example, the initial find-in-page feature was introduced just a few week ago[1] and the core logic relatively simple. Plus, the build process is well documented and works out of the box (at least on Ubuntu in my experience) and the community is nice and welcoming. [1]https://github.com/SerenityOS/serenity/pull/24480 https://github.com/SerenityOS/serenity/pull/24480
- shiroiushi 2y ago>Plus, the build process is well documented and works out of the box Yeah, that seems to be a huge problem with many larger FOSS projects.
- boneitis 2y agoI remember encountering this blog series of Chrome architecture articles[0] and telling myself I need to read through it (and, to date, still never have :) Maybe it is of interest. (Just a heads up, it dates back to 2018.) [0]: https://developer.chrome.com/blog/inside-browser-part1 https://developer.chrome.com/blog/inside-browser-part1
- pixelatedindex 2y agoWhoa, incredible resource. Thank you!
- oefrha 2y agoI’ll be that guy and point out that if you have to ask this question, it may not be the best personal fit. Unpaid open source contributions work the best and last the longest when they scratch your personal itch. Find a bug or a missing feature in a piece of open source software you use all the time; find an abandoned project you need and try to improve it; or build something you want but doesn’t yet exist. Forcing your way into open source through a large project that is not in any way special to you in order to learn, build your personal brand, etc. may not be the most sustainable source of motivation. But who knows, maybe that also works for some people.
- pixelatedindex 2y ago> Unpaid open source contributions work the best and last the longest when they scratch your personal itch. Find a bug or a missing feature in a piece of open source software you use all the time Most of the open source software I use are really rock solid, so I’m not sure what bug or missing feature I would be able to add. I also think as a newbie it’s perhaps useful to work where I can learn a lot in a short amount of time. Those dopamine hits can be pretty awesome :)
- blowski 2y agoI hear so much about Ladybird on HN, that I’m equally excited and cynical. What is the value proposition? Is it to be another general purpose browser, so there’s more competition with Chrome / WebKit? Or to be a niche browser, that could be an alternative to Electron? How close is it to achieving that?
- 1GZ0 2y agoAs I see it, Ladybird's value is showing that its still possible to write a modern browser engine without the resources of a major tech company like Apple or Google. In the future it might be a real competitor to Chrome & Safari, but we're several years from that happening, if at all.
- ironmagma 2y agoHaving looked at the source code… it’s not close. Not even 1/20 of the way there IMO. But it might not need to be. It’s nice just having a second system. I don’t know to what extent Ladybird can replace Chrome, but the issues that come with a monoculture are known. There’s probably at least some hope that Ladybird could take off once it reaches a critical mass.
- danpalmer 2y agoTo play devils advocate, Firefox breaks the monoculture, and arguably (Mobile) Safari too. If neither of these is big enough, will Ladybird be? I can’t imagine it getting bigger than them.
- otabdeveloper4 2y ago> Firefox breaks the monoculture Not really as long as it is funded by Google.
- danpalmer 2y agoBut it’s a completely separate codebase right, and that’s the monoculture we’re aiming to prevent here. If it’s not about tech but rather about funding, then should we be concerned of the monoculture of American browser vendors, or English speaking browser vendors? I don’t think we need to be, but I also think the tech side is the important place to prevent a monoculture for the open development of web technologies.
- KingOfCoders 2y agoStill hoping for future Windows support to replace Firefox.
- manuelmoreale 2y agoI’m irrationally excited for this project. The idea of a community built browser is incredibly appealing considering the current landscape where all browsers are either Chrome, Chrome in a trench coat, or Firefox
- nutrie 2y agoI don't understand what is wrong with Firefox. It is open-source, highly configurable and reasonably secure (if you have the time to configure). Yes, it has shortcomings, but what doesn't.
- manuelmoreale 2y agoNothing, it’s my default browser for dev work but it’s only alive because Google keeps paying them to exist basically so I’d love an alternative.
- Aachen 2y agoHow's that alternative funded? Shouldn't Mozilla want to replace their Google payment with that instead? Or, failing that, wouldn't it be much lower budget to fork Firefox code instead? And then to do it in C++ when other browsers and kernels are flirting with things like Rust. How long will it take for people to trust this new C++ code? I applaud the effort but am worried it'll be in vain. Then again, with how many projects I start not because they make sense but because I enjoy them, perhaps I should see it more in that way
- lupusreal 2y agoMozilla. I like and use Firefox but I find it increasingly hard to trust Mozilla and that makes me feel insecure about the future of Firefox.
- lukan 2y agoNot every open source software has spyware and ads activated by default, while marketing itself as privacy friendly. Yes, can all be deactivated, I also use FF, but I do not trust Mozilla anymore.
- pandemic_region 2y ago> Ladybird now targets Linux and macOS. The SerenityOS target is dropped. What does this mean, that Ladybird will no longer run on Serenity OS? And that is up to the Serenity peeps to make it run should they wish to do so?
- jillesvangurp 2y agoSerenity is just another Linux. So they target all Linux distributions instead of this specific one.
- nhinck3 2y agoYeah and I believe the reason given is because Ladybird wanted to use third party code and SerenityOS has a no third party code policy which made targeting Serenity kind of hard.
- imiric 2y agoI'm very happy that projects like this exist, and hope that they succeed in their mission. With the current state of the web, filled with mostly spam content designed to generate ad revenue and to exploit the user, accessed from mainstream browsers produced by large corporations that are increasingly trying to do the same thing, web users are being squeezed from all sides. Using the web today is a hostile experience, and the only safe haven from all this nonsense is using community-supported alternative browsers, that are really stripped down versions of mainstream ones, and relying heavily on ad, cookie, JavaScript and other blockers, which may stop working at any point. This is a difficult task only tech savvy users can realistically do, while most other users have no choice. A new, independent, browser alone will not solve this, but it's certainly a step in the right direction.
- KronisLV 2y ago> Using the web today is a hostile experience, and the only safe haven from all this nonsense is using community-supported alternative browsers, that are really stripped down versions of mainstream ones, and relying heavily on ad, cookie, JavaScript and other blockers, which may stop working at any point. I think the actual root of the problem is that the people and organizations developing and running the sites do want to force the ads, analytics and other things upon you and you as a user basically have to hack around that. If the users actually took a stance with something a bit like https://en.wikipedia.org/wiki/GNU_LibreJS https://en.wikipedia.org/wiki/GNU_LibreJS then the sad reality would be that you just couldn't use most sites altogether.
- skywal_l 2y agoI found NoScript to be a good alternative. It disables JS by default but then you can reenable per page but also per domain. You only enable just what you need for the page to work and sometimes only temporarily. I still need to enable things here and there but it's a fairly easy straightforward process. Couple this with uBlock and firefox Container (where I am logged to google only for gmail in a specific container) and the web is pleasant again
- 2y ago
- kosolam 2y agoWhy build another browser, from scratch, in C++?
- haspok 2y agoWhy not? Some people are hacking on 30+ year old 8 bit systems... just for the fun of it.
- storoj 2y agoBecause they can
- 1GZ0 2y agoBecause its fun, and because it might break the chromium monopoly we're currently living in, some day far in the future.
- kosolam 2y ago“Why not, because it’s fun, because they can”, These kind of answers kinda underline the question even more…
- segfaltnh 2y agoThey do not.
- marginalia_nu 2y agoWhy aren't you building one in another language if that is something you feel is missing?
- deleted 2y ago[deleted]
- hello_kitty2 2y agoFrom GitHub. > Ladybird is a truly independent web browser, using a novel engine based on web standards. So I assume they want to build a truly independent web browser instead of leaving the Browser market to Google, Apple, and Firefox (relies heavily on Google ad revenue.) and executives that run them who are primarily motivated by money.
- dsalfdslfdsa 2y agoI was recently browsing their docs, and kept finding references to choosing a "browser chrome" (options including Qt and AppKit). Is this some new usage of the word "chrome" that I'm not familiar with, or does it use chrome libraries?
- deleted 2y ago[deleted]
- akie 2y agoThat's the old usage of the word "chrome", as far as I know.
- ben0x539 2y agoIt's a usage that predates and conceivably inspired Google-brand Chrome (and by contrast arguably Rust?), referring to the UI parts of the browser rather than, I think, rendering and javascript and stuff.
- gtufano 2y agoThe "chrome" of an app is the part surrounding the main windows, like toolbars and the such. IIRC when Chrome appeared, the name was chosen because it was a browser without chrome (ie: it used to be just the rendering windows with the url bar on top), differently from other browsers at the time.
- gertop 2y agoFirefox always referred to its user interface as the chrome (hence userchrome.css) and Google engineers decided that it should be funny to name their browser that.
- asicsp 2y agoAs per https://en.wikipedia.org/wiki/Chrome https://en.wikipedia.org/wiki/Chrome: >User interface chrome, the borders and widgets that frame the content part of a window
- Lammy 2y agoGoogle co-opted an already common term into a Proper Noun™. https://developer.mozilla.org/en-US/docs/Glossary/Chrome https://developer.mozilla.org/en-US/docs/Glossary/Chrome http://www.catb.org/%7Eesr/jargon/html/C/chrome.html http://www.catb.org/%7Eesr/jargon/html/C/chrome.html Netscape called it that and thus so does Mozilla. Try loading up `chrome://branding/content/about-logo.png` for an example of the chrome URI scheme in Firefox!
- oskarkk 2y agoOne commenter who worked on Firefox made a nice blog post in response, about what it takes to make a web browser: https://robert.ocallahan.org/2024/06/browser-engine.html https://robert.ocallahan.org/2024/06/browser-engine.html
- getcrunk 2y agoFor a new project I wonder how much simpler (or secure) a browser could be made if you only allowed a subset of js and browser apis. I’d wildly guesstimate for 70% of use cases you wouldn’t even need 50% of stuff with some slight modifications. The web is just so bloated. Edit: might as well prune down the css a little too and maybe dump wasm, webgl and canvas
- InDubioProRubio 2y ago[flagged]
- jsheard 2y agoThe problem with targeting a subset is there's a ratchet effect with web APIs, once support reaches critical mass in the major browsers sites will start unconditionally relying on those features and there's no going back from there, any new browser has to also support those features or be considered broken. I suppose anything that's gated behind a permission prompt in Chrome/Firefox/Safari could be culled without too much trouble at least.
- voidwtf 2y agoI don't want to discourage the developers working on this project, but I'm curious why we're still writing applications that will almost certainly execute or process hostile content in languages that don't maintain strict memory safe contract? Have we not learned our lesson yet, or am I misunderstanding the situation? I believe it was a Microsoft study that linked unsafe memory access to ~70% of exploit chains.
- peoplefromibiza 2y ago> in languages that don't maintain strict memory safe contract? for the same reason people still use the English language, despite being full of crazy inconsistencies and being very hard to become a native speaker, coming from another language: proficiency. Proficiency is one of the most, if not the most, valuable metric when choosing the tool you will use to take on some complex/daunting task.
- elygre 2y agoThe language “legalese” was invented when it turned out that being proficient in English does not protect you against malicious contract partners. (The success of legalese is still debated, but its existence is generally accepted)
- peoplefromibiza 2y agolegalese is a subset of English. BTW Rust (or any other so called "memory safe" language) is not the equivalent of legalese, it's the equivalent of using French because it's the "language of diplomacy" (that's why many English words come from French) instead of English. If you're not proficient in French, French legalese won't save you.
- oriolid 2y agoCould you explain your thinking a bit more? To me the "language of diplomacy" equivalent for computers sounds more like C calling convention, HTTP and XML or JSON.
- sprash 2y agoAs long as they don't get rid of the Qt dependency the project is a bit pointless. If you are using Qt anyways Qt Webview offers already a superior way to render HTML than Ladybird.
- flohofwoe 2y agoQt webview is just Chromium in a trenchcoat. The point is to create a new browser engine, not a new Chromium UI (and hopefully much less bloated than Chromium).
- krackers 2y agoOn mac there's a native appkit backend, no qt needed as far as i can see.
- nurbl 2y agoI think the point is the opposite; they have decided to build a new "web stack" from scratch, not just build a new "browser" (or invent a new GUI framework). Hopefully the web engine is not deeply tied to Qt, but you need something in order to draw an interactive window. The article mentions that they will also use existing libraries for things like font rendering. Seems like a pragmatic decision to me.
- amelius 2y agoNo, because with the current architecture they can more easily migrate away to different GUI libraries.
- 1GZ0 2y agoGUI libraries and a browser engines are vastly different things. Think of Ladybird as Blink, Webkit or Gecko.
- Malidir 2y agoRather than C++ can it be done/mainly done in Rust?
- 1GZ0 2y agoIt could be done in Rust, but I suspect a life long C++ expert would like to use the language they know the best, when writing something at this scale, rather than first learning a new language.
- alex_duf 2y agoI hope both Ladybird and Servo succeed in creating a new browser engine. Though I do have a slight preference for Servo as it's using Rust. Not that Rust is magical, but given how much attack surface there is in a browser, it seems picking C++ is a bit odd in 2024.
- 1GZ0 2y agoPersonally if I were to attempt a project at this scale, I'd do so using a language I'm proficient in. There might be other reasons, but Rust & C++ really are different beasts.
- tormeh 2y agoIt's debatable how many - if any - humans are truly proficient with C++.
- prmoustache 2y agoI would say a lot but the average age is probably higher than rust by a large margin.
- 1GZ0 2y agoSounds like "Its hard, so it can't be done" to me. There are plenty of people making good software in C++, how else would we have what we have. Sure, things get bloated and break over time, but thats not due to programmers not knowing C++, thats just what happens as a product evolves. New coders get brought in, focus shifts, understanding of the code based erodes. Its not that language, its the process.
- ruzig 2y agoThe founder usually lives to stream his work—very impressive skills.
- amelius 2y agoIf they want adoption, maybe a good idea to build a hybrid ladybird/firefox browser, where, if some page does not render well in ladybird, the user can switch to firefox based rendering with a simple mouse click.
- 1GZ0 2y agoWhat would be the point of writing a whole new browser engine from scratch if you're just gonna fall back on a different one? Ladybird isn't ready and likely won't be for a long time. Treat this more like a "we're working on a new browser" type announcement, not a "We're launching a new browser today" announcement.
- 8organicbits 2y agoThese sorts of things exist for the other browsers, so eventually I think Ladybird would support it as well. https://chromewebstore.google.com/detail/open-in-firefox-browser/lmeddoobegbaiopohmpmmobpnpjifpii https://chromewebstore.google.com/detail/open-in-firefox-bro...
- samiv 2y agoI'm already speculating that sooner or later in the future this project will end up pivoting to chromium as the underlying engine. I can think of two reasons for this - money is involved and someone buys them out / influences the direction of the project - the reality of the task ahead sets in the and the dev team gives up on custom engine development For those of you coming back to this comment from the future, yep "told you so". ;-)
- asddubs 2y agoI doubt it. Your prediction might be more appropriate for a project that's in its first week of development, not having been developed for several years and already overcome many difficult hurdles. And if they switch to chromium, there is literally nothing interesting about this project. The fact that it's a novel engine is their only differentiating feature.
- samiv 2y agoThe age of the project or the development status of the project does not matter, what matters is the user base. If you build anything that accumulates users, business interests will be aroused at some point. Business people don't give a shit about the technology itself unless of course the technology itself really is a USP and can be converted into €$. But most people (end users) don't care much about the underlying technology in the browser and whether it's open source or not, chromium or not. Only technologists care.
- torstenvl 2y ago> The age of the project or the development status of the project does not matter If you have any evidence to support this, you could become quite well-known for disproving the Lindy effect's applicability to software projects.
- account42 2y agoIt may be hard for you to believe but there are projects not run by "business people".
- branko_d 2y agoFrom the linked site: > In the post-Spectre world you must have site isolation. The JS for a site (roughly, eTLD+1) must have its own OS address space separate from other sites. Wasn't the whole point of Spectre/Meltdown to read the virtual address space of a different process?
- AshleysBrain 2y agoAs I understand it: Spectre/Meltdown allow reading from the address space of the same process only. If browsers put different origins in the same process - which they used to - then JS code can break the same-origin security barrier and read details of other origins directly from memory. By putting each origin in its own OS address space they are protected from this attack as JS can still only read data from its own origin even when using security flaws to read any part of the address space.
- branko_d 2y ago> As I understand it: Spectre/Meltdown allow reading from the address space of the same process only. Sorry, this does not make much sense. Why would you need a timing attack to read memory from your own address space? Just a regular code execution exploit should do it. Here, I found the relevant info (that I was too lazy to find before I posted my first comment, apparently): https://meltdownattack.com/ https://meltdownattack.com/ > While programs are typically not permitted to read data from other programs, a malicious program can exploit Meltdown and Spectre to get hold of secrets stored in the memory of other running programs.
- jcranmer 2y ago> Sorry, this does not make much sense. Why would you need a timing attack to read memory from your own address space? If you're making a VM such that the running code can only access a particular array, Spectre allows a timing attack that can get malicious code in the VM access to the full memory space. You're right that it's not that scary for most use cases. What it really means is that it's hopeless to make memory inaccessible to a sandbox without putting a process isolation barrier betwixt the two, as there's no real way to close out all of the timing attack possibilities. In principle, if the only thing you needed to foreclose was memory vulnerabilities, then sufficiently good programming™ would let you have the sandbox in the same process space; as a matter of practice, though, anyone looking at product security seriously would still make you put in process isolation, because that kind of good programming just doesn't exist at scale yet. (Note that Meltdown, but not Spectre, allows timing attacks that cross process isolation domains.)
- erremerre 2y agoAlthough I dont like quite a few Firefox decisions. Like the floating tabs which no easy way to revert. I still think Firefox as a browser is fairly decent. And I also think that ladybird is going to have all the problems that Opera Presto had (and now Firefox has) which is going to be ignored by any small developers, and targeted to generate errors by the big companies (google/microsoft...) I definitely would have preferred the momentum to go to SerinityOS, and perhaps, importing firefox/librewolf into Serinity OS.
- paulryanrogers 2y agoIf enough people use different browsers then we'll get effective and slower standards once again. I think the only way to get people on other browsers is to legally require ballots on first use of an OS/device with random order. It worked in the EU, it can work in the US too.
- sharlos201068 2y agoHow did it work in the EU? Almost the entire planet uses Chrome including the EU.
- paulryanrogers 2y agoIn the early 2010s a ballot appeared for new users on Windows [0], though the legal requirement expired only a few years later. It helped other browsers gain market share. Sadly it's not enough alone. Major web players can promote their own browser and sabotage others, even if only by neglecting to test them. IMO a permanent ballot law is needed alongside restrictions from major web vendors pushing their own browser's and relying on their own browsers non-standard features. [0] https://en.m.wikipedia.org/wiki/BrowserChoice.eu https://en.m.wikipedia.org/wiki/BrowserChoice.eu
- zamadatix 2y agoDo you perhaps mean to argue you think it helped other browsers lose users slower than they otherwise might have? From your link: > Competing browsers saw their traffic increase,[16] suggesting that these smaller competing developers were gaining users. However, long-term trends show browsers such as Opera and Firefox losing market share in Europe, calling into question the usefulness of the browser choice screen.[1] Opera is the smaller competitor referred to in both halves and it lost user share in Europe while this was in effect. About the only thing the ballot can claim is a loss in users of the 1st party browser IE but that effect was already occurring prior to the ballot anyways.
- lawn 2y agoA related question: What's the state with Servo? Do I understand it correctly that Servo is the core of a browser but not the browser itself? How much work would it be to create a browser on top of Servo? And is there such a project?
- infotainment 2y agoThey actually have an official blog with status updates! https://servo.org/blog/ https://servo.org/blog/ They do have an official “browser”, ServoShell, which is basically a minimalistic testbed. IIRC adding tabs to it is on their roadmap.
- lawn 2y agoOh, excellent. Thank you!
- Dubh33 2y agoIt looks like the repository for servoshell was archived in 2019. What’s weird is if you go to their website and download the tech demo it’s basically the same thing but may actually be updated.
- niutech 2y agoServoshell is developed here: https://github.com/servo/servo/tree/main/ports/servoshell https://github.com/servo/servo/tree/main/ports/servoshell
- niutech 2y agoThere is a Qt webview using Servo engine: https://github.com/KDABLabs/cxx-qt-servo-webview https://github.com/KDABLabs/cxx-qt-servo-webview
- pkphilip 2y agoThis is astonishing given that the project only started in Sept 2022! Andreas Kling, you are the man!
- bilekas 2y agoAndreas Kling is a great role model in the world of development I feel. The decision to step away from the Serenity OS makes a lot of sense. There are plenty of them, nice projects to do, but they'll never have an immediate impact if any at all. But the browser space, Ladybird is viable as a daily driver for people. I'm still today astounded the work that has been produced just on this. > Somewhat ironically, it was not possible to log into Discord using Ladybird. It does a fair job of rendering pages, but speed and stability are still wanting. Fascinating to see people expecting everything to work out of the box whilst being writter from scratch. And as an avid rust appreciator, all the comments about "rewrite it in rust" as if that solves anything the OP spoke about is really frustrating. Let the team cook, if you dont like the dish, help cook it. The project has been super interesting and honestly I feel we need more like this in the browser scope.
- Y_Y 2y ago> Fascinating to see people expecting everything to work out of the box whilst being writter from scratch. (Sarcastically saying something is interesting is something I find distasteful.) Anyway the irony is that the project chose to use a discussion platform which uses lots of modern web cruft and would be a big challenge for a new browser, when they could have chosen a (maybe less capable) simpler platform like IRC or some simple web forum which would more likely have run on Ladybird.
- codetrotter 2y agoThey used to use IRC in the beginning.
- hailruda 2y agoChosing Discord was a deliberate choice. I remember when Serenity was using IRC as the only communication channel and immediately after setting up a new Discord server the community gravitated towards it. Infact, the number of community members sky rocketed. The fact is, Discord as a platform is more accessible compared to IRC.
- 2y ago
- BNAISU 2y ago[flagged]
- kosolam 2y agoOnly bots around us
- alvincodes 2y agoIt feels very linux-y, I wish it was easier to contribute to Firefox so those efforts would go towards stopping the google monopoly.
- sambull 2y agoMy disappointment for what this means for SerenityOS is pretty high.
- deleted 2y ago[deleted]
- javier_e06 2y agoLadybird has a good use case on embedded projects where there is a need to use a well understood API for small gadgets acting as clients. I wish success.
- chaz6 2y agoI was very impressed by the build script. It worked flawlessly, detecting Clang and Ninja, and pulled in all the dependencies automatically. I am hopefully that this will develop into a serious competitor as there really should be more than 2 choices (KHTML-based vs Gecko-based).
- wagthedog 2y ago[dead]
- butz 2y agoIt is a perfect time for new browser. I long for the days of good old Opera, when each release brought something new and fresh. Multiple browser windows in tiled layout, browser gestures, disabling image loading from UI (although that was standard feature in dial-up era of internet), UI customization, integrated email client and feed reader.