NLnet has been sponsoring large blocks of Servo development as well. Filter with 'servo' in the list here: <a href="https://nlnet.nl/project/" rel="nofollow">https://nlnet.nl/project/</a>
I'm glad we have an alternative to ladybird, since I haven't been a fan of the direction of the project for a bit.
Yeah I remember Ladybird, and Serenity OS starting as a learning project to teach engineers that a Browser can be made from scratch by a relatively small team. I even remember the author claiming he did it to occupy himself as he was trying to stay sober off drugs. This was all very admirable.<p>Then somewhere along the way, they decided they wanted to be a real browser for some reason even though we have Chrome, Safari and Mozilla which is open source. This is IMO the worst use of your time as talented engineers, your product is completely undifferentiated and can never be differentiated since it’s a browser. You’re competing against very well funded adversaries, who are giving away everything for free.<p>Inevitably to compete, you will lean heavily into AI coding, at which point the “learning” goal is completely left at the wayside.<p>I’d analogize, there are sometimes good reasons to build a game engine, maybe it’s for learning, keeping the skill alive, something unique you want to demonstrate or you just want to reinvent the wheel for your game but using AI, a bajillion tokens to build an Unreal clone is a waste of your time, which is exactly what Ladybirds doing.
> your product is completely undifferentiated and can never be differentiated since it’s a browser.<p>I disagree with this. Yes, we have Chrome, Safari, and Firefox. And a few spin-offs of those. However, functionally, they are all pretty much the same. They all offer largely the same set of features, have substantially identical UX, and in general try to be everything for everyone.<p>What's missing is a browser for those of use who aren't "everyone." There is an (admittedly small) market for a browser for the privacy-conscious, the ad- and DRM-averse, the hackers, the power users, and those who are delighted rather than scared to see every possibly tweakable knob and button in their settings menu. Let me change the theme, let me rearrange the UI to my workflow, let me block any damn element/site I choose at the network level. Give me an API to extend and modify the _whole_ browser however I want without needing your corporate permission.<p>What's missing is the "Linux" of browsers.<p>(To be clear, I am not suggesting that Ladybird or Servo will fill this gap. It's too early to say one way or the other.)
Would also be interested to hear why. Personally I used to watch serenityOS and only recently relooked into it to see the main guy was no longer leading it but working on ladybird full time
They announced they are doing an AI assisted rewrite of parts of their code into Rust. That would alienate some.<p><a href="https://ladybird.org/posts/adopting-rust/" rel="nofollow">https://ladybird.org/posts/adopting-rust/</a><p>Myself, my annoyance with Ladybird is that restarted everything from scratch. There are components of servo that are really good and basically complete. Why not use those components and concentrate on the components where you have design conflicts with Servo?
An AI-assisted rewrite can make sense, if you take the time to uphold semantics and code quality, as they suggested. In practice, the first file I looked in had unsound unsafe – in the Rust sense, that a safe caller could cause UB, not that any callers do so – in fact there <i>are</i> no callers, the functionality was removed from the C++ bindings in a 1400-file changeset but left in the associated Rust module.
Didn't they start with like C++, then zig, and now rust.<p>To me it's just not serious. They also had articles of "why we are doing zig and not rust".<p>It's an ambitious project, but I can't take it seriously when the tech stack is in constant flux.
Their origins are in C++, which is what SerenityOS has used. They've never done zig. They <i>explored</i> using Swift as a C++ successor language for the project[1], but seeing the platform support out of Apple was lacking, they gave up and made the bet on Rust[2].<p>The motivation to use a memory safe language as the alpha approaches sounds more of a longer term bet [3].<p>[1] <a href="https://ladybird.org/newsletter/2024-11-30/#swift-language-adoption" rel="nofollow">https://ladybird.org/newsletter/2024-11-30/#swift-language-a...</a><p>[2] <a href="https://ladybird.org/posts/adopting-rust/" rel="nofollow">https://ladybird.org/posts/adopting-rust/</a><p>[3] <a href="https://ladybird.org/posts/changing-how-we-develop-ladybird/" rel="nofollow">https://ladybird.org/posts/changing-how-we-develop-ladybird/</a>
They did start with C++. They experimented with Swift, then experimented with Rust, ultimately choosing Rust. I don't see how experimenting with things makes anything "not serious". If you don't question your primitives and just accept them "because that's how it has always been", you're not a very good engineer in my book. In any case, the tech stack is not in constant flux as you claim, it's still C++, with more and more parts moving / being started in Rust, with the eventual probability of Rust replacing C++ organically, I suppose. Seems like pretty sound strategy to me to slowly, but surely, adopt a memory-safe language.
I think they used swift instead of zig because Kling was using mac for development
I'm curious why you care about whether or not they spent time and effort to write those components themselves. Isn't that their choice as the authors? How does it materially affect you or the product experience? From my vantage point, I love the idea of having even more options as it will create competition, making all sides better for it. Having a singular dominant player in any space (whether it's a browser, kernel, or library) is something we should try to avoid whenever possible.
They can obviously do whatever they want, but realistically, having five different engines that are all 70% complete is not helpful. That's not providing more options. Instead, having one that's 99% complete would be providing more options.
Spreading oneself too thin makes you much less likely to succeed.
What in particular? I've enjoyed watching some of the community update videos and dev videos, but haven't followed the project closely.
Any idea how much this has cost them?<p>Some non-profits have their HQ in the valley and pay SF salaries when they could just as well have paid a fraction of that to a very competent developer elsewhere.
The hyperlink to the maintainer's name says they are out of rural Ontario. According to the total in <a href="https://opencollective.com/servo/expenses?limit=20&searchTerm=Joshua&direction=RECEIVE" rel="nofollow">https://opencollective.com/servo/expenses?limit=20&searchTer...</a> it comes out to $52,883.97 (USD) in these payments over the last 12 months.
European safety nets, and government grants have helped open source projects a lot, and this is a big reason almost all of these projects end up being developed/maintained by folks from EU. Even if the sponsorships could hire 2-3x as much man power elsewhere in the world.<p>Another big thing is govt aligned sponsorships are not for software but for generating jobs/work within their borders.
This is public <a href="https://github.com/servo/project/issues/181" rel="nofollow">https://github.com/servo/project/issues/181</a> and <a href="https://github.com/servo/project/issues/187" rel="nofollow">https://github.com/servo/project/issues/187</a>. TL;DR: up to $4800/month (at a rate of $150/h depending on hours actually worked)
I really wish a patron would step up and sponsor this project. Not just by money, but also by plugging it in their browser-carrying products. Maybe Hauwei of Samgsung; they now sling a browser derived of another for-profit --usually competitor-- company's browser.
Huawei <i>are</i> funding Servo. They have a small full time team on it and are the main reason the project got revived in 2022.
That’s interesting, anyone have more info on how why this came about? The why is pretty clear at least.
I was not aware of this, and now I suddenly understand the weird hate that the project gets from drive-by commenters. (I don’t agree with it, but I can see a plausible motivation.)
I don't really see why they would do that?
So right now Servo is funded by the community, and this is no good because why? Instead you propose that this project should be funded by a for-profit company with it's own objectives in this world (that often starts with "more money"), again leading me to ask why?<p>The setup right now seems to give enough people enough time to work on it to move forward, why on earth would you want to involve companies infamous for their shit software quality, like Samsung?
> So right now Servo is funded by the community, and this is no good because why?<p>Because look at Mozilla... You need to get the browser in front of people. A browser that works on the real web, is such a huge project, you cannot do it as a hobby community-funded project for ever. You need user-share-%.<p>Samsung can put it in front of Samsung appliance users.
Samsung has put Enlightenment 17 in front of every Tizen user. I am not seeing the flood of apps implemented on EFL coming out
I think it is actually Mozilla people look at when they ask "why" :-P
Probably because broad adoption would help making it a real option to use in the near future?<p>So sure, Samsung would bundle it with their usual crap, but if it helps making the engine more mature, great, but I also don't see why they would in the first place.
> Instead you propose that this project should be funded by a for-profit company with it's own objectives in this world (that often starts with "more money"), again leading me to ask why?<p>You understand that Mozilla Firefox is not funded by the "community" and is completely funded by Google's money. Even donating does not fund the browser.<p>Mozilla knows that the open source "community" has no money, and cannot replace the amount of money Google is paying them and the employees who work on the browser.<p>The question is are <i>you</i> ready to fill the $600M a year black hole for Google to NOT pay Mozilla to fund Firefox?<p>It only makes sense for Servo to get funding from for-profit companies at this point, which is one of the only ways open source can work.
The Hurd of browser engines
They are clearly progressing now as a project and the world definitely needs what they are building - it's literally something you can download and run right now.<p>Rust was started in 2006 (20 years ago) and is now one of the most powerful programming languages, while the Servo project was started in 2012. If they reach parity and beyond of current browsers this could clearly become one of the most important browser engines in the future. Effort very well spent in my opinion.
I remember waiting on the Mozilla project to deliver something that could browse as well on linux as closed source browsers on windows/mac did.<p>It... took... long...<p>But there it was. And it still works.
Was this recent? Because Firefox were the browser that worked better than all the rest, for quite many years, maybe 2005-2010, and Firefox had no competition basically until Chrome arrived on the scene.<p>Just the fact that Firefox got browser tabs before anyone else, and Firebug, just took it to another level compared to all the other browsers available at the time.
Your history is off. Opera was the first mainstream browser to implement tabs and boy was Opera also much faster than Firefox at its peak (both UI, resource usage, and rendering) which overlaps that “peak” Firefox period by a lot.<p>Firefox was great because it was open source but it wasn’t ever really the “best” browser - it was the best open source browser.
> Hardware accelerated video decoding (for video playback or for WebRTC) is available via VA-API for both X11 and Wayland. Since firefox-101.0.1-4 package it's enabled by default for Intel/AMD users.<p>From <a href="https://fedoraproject.org/wiki/Firefox_Hardware_acceleration" rel="nofollow">https://fedoraproject.org/wiki/Firefox_Hardware_acceleration</a><p>I think that was around 2022-23.<p>I remember this affecting my laptop video watching a lot. Google meet feeling sluggish on Firefox is also something I remember until very recently..
Google still tries to sabotage Firefox experience on Google Apps, especially Meet but also YouTube and sometimes Google Sheets/Docs as well.<p>They want to degrade the experience just enough to get you fed up with FF and go (back) to Chrome, without making it absolutely obvious that's what they're doing.<p>They often label these things as "regressions" because they don't test on Firefox and take forever to fix them. But I can't help but believe it's intentional.
Firefox was bad on linux for a long time. Even running the windows ff build via wine/proton got you better performance than the "native" build (I think that was around 10 years ago).
IE5 and then IE6 were head-and-shoulders better than Mozilla around the 1999-2002 era. They were significantly faster and lighter, and not just because of the deep OS integration but because Mozilla's browser was actually a full Web suite, with a built-in page editor and a mail client.<p>Then Microsoft stopped developing IE, and it became essentially frozen.<p>Mozilla moved ahead with refactoring the browser parts into a lightweight Phoenix (Firebird, Firefox - anyone remembers the FireSomething extension?). But it took _years_ for it to get into a usable state.
At least originally, servo was just an experimental browser with the intention to carve up useful parts and send them back into Firefox. I believe firefox's current css parser came from servo.
Feels like ladybird is going to Linux Servo
Servo uses mozjs which is just rust bindings for SpiderMonkey which is still C++.<p>All this effort to use rust and yet they would not rewrite the JS engine which is the biggest attack surface for memory vulns.
One thing at a time, it looks like implementing a rendering engine from scratch is already enough work for 20 years. First make it work, then make it better.
Setting aside the fact that using Rust for a JIT won't help <i>that</i> much - a new JS engine is a huge undertaking, especially if the goal is to compete with V8. They could eventually switch to Boa[1] if they wanted more safety, but it's still ways off and doesn't seem necessary enough just yet<p>Also, isn't the goal of Servo to effectively compete with CEF first and foremost? Because you don't need memory safety for that really
Why would it help? Rust doesn’t do anything to make generated assembly code safer.
They can always reimplement it later.<p>Focus on core right now, you can change js engines further down the line if need be.
Congrats on the successful year!
What can one actually do with Servo today?<p>It’s apparently still not ready to be used as a browser engine (and may never be), so what exactly is it for?
I use servo to render e-ink UIs and screenshot them to push to the displays. About 10% of the memory usage and 5% of the render time as doing the same thing with headless chrome. It doesn’t handle every possible feature, but it handles enough that it’s never been an issue when it’s my only target rendering environment. I love it.
<a href="https://v2.tauri.app/blog/tauri-verso-integration/" rel="nofollow">https://v2.tauri.app/blog/tauri-verso-integration/</a><p><a href="https://github.com/versotile-org/tauri-runtime-verso" rel="nofollow">https://github.com/versotile-org/tauri-runtime-verso</a><p>Servo doesn't implement the whole web platform, but your own desktop app isn't the whole web. You can generally work around any limitations or missing features. And it might be lighter than CEF or whatever.
Naive question then: Where does Servo stand, relative to Electron?
Couldn't agree more. Looking at [1], it seems to me like Servo has a much better adoption story than Ladybird. The latter seems to be just building a browser that's going to be crashy and not really work on the web. The former is addressing problem spaces where, even with the limitations of the half-finished state it's in, it can be usefully applied: WebView/Electron-replacement and headless browsers. Things not currently on this list that could/should be: HTML rendering for desktop E-Mail clients. Also, I wonder to what extent they're implementing paged media and capable of targetting PDF output or similar (like weasyprint). That could be another domain, where you don't need full web-scale abilities.<p>And yet, somehow, Ladybird seems to be the darling of the masses (in certain circles at least). Doing vibe-ports to Rust, while going closed-contribution also, in my mind, sits in a marked contrast to the origin story that initially generated so much goodwill.<p>[1] <a href="https://servo.org/made-with/" rel="nofollow">https://servo.org/made-with/</a>
Regardless of actual use as an (embedded) browser, it is useful in the sense that it can be used to provide (another) source of validation about whether specs and WPT [1] tests are properly and clearly defined. That helps for long term browser compatibility.<p>[1] <a href="https://wpt.fyi/results/?label=experimental&label=master&product=servo&aligned" rel="nofollow">https://wpt.fyi/results/?label=experimental&label=master&pro...</a>
>long term browser compatibility<p>Making a new browser engine hurts browser compatibility more than it helps it. It now becomes one more target that needs to be tested against, limitations need to be kept tracked of, etc. The best thing for long term browser compatibility is focusing resources into Blink. In regards to the standard we can use LLMs to cross reference the spec, with tests, and with the implementation to make sure all match.
Ah, you must be too young to have experienced early Internet Explorer, which attempted just this.
> The best thing for long term browser compatibility is focusing resources into Blink.<p>Lol, for Blink perhaps, what about the rest of the ecosystem, the web and the users, like the ones who don't even use Blink?<p>Very idealistic point-of-view with no basis in reality, sadly, because wouldn't it be nice if we could care about just one engine?
> The best thing for long term browser compatibility is focusing resources into Blink.<p>That’s what makes Google more dominant, and if you think that’s a good idea you should really put down your LLM and go read up on a bit of history. Do you want to live in a world where a single company controls your access to the web? Are you eager to navigate through ad pages with a little bit of web? To have even more of your data mined?<p>Browser diversity may be a bit annoying for developers, but it is good for users, and developers are users too. When there’s a lack of diversity, everyone but the dominant player is squeezed.
yeah in a perfect world google dictates how the standard will evolve, we kill all competition so we're sure that you have only one target to build your software against, I'm sure a monopoly will greatly improves innovation and not be used to stiffen competition. /s
>> What can one actually do with Servo today?<p>You can run CAD in it: <a href="https://solvespace.com/webver.pl" rel="nofollow">https://solvespace.com/webver.pl</a>
It’s not really a finished product yet (in terms of being production-ready), but it would already be usable as an embedded kiosk for applications where you own the pages being accessed.
servo is incredibly cool. super easy API to embed, and to build browsers around it.
Non ai post as top post. We did it guys!
But seriously, it’s nice to see other news on here.
Important we keep covering broader tech things.
[dead]
[flagged]
[flagged]
Hot take... There is something about programming projects spending 10x (or 1000x) the effort to parallelize execution when everything is still restricted by von Neumann architecture.