I want to follow updates from this project. They have a Twitter account but not Mastodon sigh
RSS is not even enabled on the Newz page on the website.
I share the disappointment.
I found they have a newsletter, that sounds like an acceptable middle ground, not good, not terrible.
Love the idea! Shopify as the highest tier sponsor? Not so much.
I’m curious what issue you see with that? It seems like the project is only accepting unrestricted donations, but is there something suspicious about shopify that makes it’s involvement concerning (I don’t know much about them)?
My best guess would be that Shopify either care about the open Web or had some disagreements with Google.
I can’t find anything shady on them, but maybe I’m looking the wrong places.
My guess is they just want a high value backlink for their SEO performance 😉
Why? Shopify has been sponsoring stuff like community gaming events for a few years now.
It’ll be interesting to see how this plays out. I’ve had more than a handful of people bitching at me that it’s impossible to make a new, open web browser in this day.
Interestingly the founder of the project seems to explicitly disagree with that article
Their rendering engine is already pretty solide (see penultimate video in their channel). Now that their “no third party code” restriction is lifted, they can actually focus on building a browser engine instead of recreating 30 years worth of technologies from scratch.
Funny how in the video the guy say that all other browsers are based on Google’s code. But Firefox is also independent right?
He says “powered by or funded by Google”. Firefox depends on Google financially, most of the income of Mozilla comes from Google paying for being the default search engine.
They try to diversify their income (Firefox VPN, email alias service, etc.), but anything they try gets a huge backlash from the community, and still small compared to the the money from google.
Is this their way of asking Google for money?
I think google need firefox exist to avoid anti trust, and Mozilla need google to keep the the six figures payroll for the CEO. So yes.
C++
If they’re starting a browser from scratch, why would they not have chosen Rust? Seems very short sighted to not have learned from Firefox.
They used c++ initially since it was spawned from SerenityOS, which was designed to be a mashup of win2000 and unix.
now that Ladybird is its own project, it’s not constrained to that goal, and they have said they will incorporate modern languages.
Glad to hear that!
Must be planning on actually shipping something
/s
Ship what, segfaults / invalid memory access? Lol
CVEs lol
I do not understand the urge to start from scratch instead of forking an existing, mature codebase. This is typically a rookie instinct, but they aren’t rookie so there’s perhaps an alternative motive of some sort.
Because there are only like 3 browser engines: Chrome’s Blink, Firefox’s Gecko and Apple‘s WebKit. And while they are all open source, KHTML, the last independent browser engine got discontinued last year and hasn’t been actively developed since 2016.
There’s need in the space for an unaffiliated engine. Google’s share is far too high for a healthy market (roughly 75%), WebKit never got big outside of Safari (although there are a few like Gnome Web, there’s no up to date WebKit based browser on Windows) and Gecko has its own problems (like lack of HEVC support).
So, in my book, this is exciting news. Sure it‘ll take a while to mature and it is up against software giants but it‘s something because Mozilla doesn’t seem to have a working strategy to fight against Google‘s monopoly and Apple doesn’t have to.
Mozilla doesn’t seem to have a working strategy
Guess they couldn’t replicate the “own everything that people use to get stuff on the internet and make secret breaking changes to constantly mess up other browsers” strategy.
Could they not add HEVC support? Or is there some technical limitation that meant starting from zero was a good idea?
They could, probably. My guess is, that it’s either a limitation of resources, the issue of licensing fees or Google‘s significant financial influence on Mozilla forcing them to make a worse browser than they potentially could. Similar to how Firefox does not support HDR (although, to my knowledge, there’s no licensing involved there).
The biggest problem most people have with Mozilla is said influence by Google, making them not truly independent.
Google probably is putting pressure on Mozilla, but if the options are licensed HECV or open royalty-free AV1, the choice is pretty clear for a FOSS project.
Yes but: HEVC is the standard for UHD content for now, until AV1 gets much broader adoption. And judging from how long HEVC took to be as broadly available as h.264, it’ll still take a while for AV1 to be viable for most applications.
Mozilla had the same problem with h.264 until Cisco allowed them to use openh264 and ate any associated licensing costs. Just from a cursory glance, HEVC licensing seems much more of a clusterfuck.
The good news is no streaming service even supports UHD in browers (except Netflix on Edge?) because of DRM. So I don’t see the value.
My Jellyfin server does and on Firefox it needs to transcode to h.264
Yeah I’m curious as to whether there’s not merit in taking the imperfect codebase and improving it.
I suppose Mozilla is already doing that as best as they can.
If 50% of firefox users donated 2 dollars per year mozilla could work for people instead of Google or at least people AND google
The problem is, most user don’t want to pay. And every time mozilla tries to monetise differently they get community backlash…
WDYM “independent” ?
Isn’t mozilla / gecko more or less independent?
No webkit browser on Android either. If there was gnome web for Android id switch in a heartbeat
Does anyone know why there are barely any WebKit based browsers? WebKit is open source and at least Safari works really well. Is it hard to work with? Do people just hate Apple that much? Is there some limitation?
Also, WebKit was based on KHTML, which was open source and platform independent itself.
Because software monocultures are bad. The vast majority of browsers are Chromium based. Since Google de-facto decides what gets in Chromium, sooner or later the downstream forks are forced to adopt their changes. Manifest V3 is a great example of this. You can only backport for so long, especially when upstream is being adversarial to your changes. We need an unaffiliated engine that corrects the mistakes we made with KHTML/Webkit.
Why are open source software monocultures bad? The vast majority of non-Windows OSes are Linux based. Teams who don’t like certain decisions of the mainline Linux team maintain their forks with the needed changes.
Manifest V3 is a great example of this. You can only backport for so long, especially when upstream is being adversarial to your changes. We need an unaffiliated engine that corrects the mistakes we made with KHTML/Webkit.
And we could get a functional one today by forking Chromium and never accepting a single upstream patch thereafter. I find it really hard to believe that starting a browser engine from scratch would require less labor. This is why I’m looking for an alternative motive. Someone mentioned licensing.
Perhaps some folks just want to do more work to write a new browser engine. After all Linus did just that, instead of forking the BSD kernel.
I agree mostly, but forks don’t need to keep the upstream. They can go their own way.
There is currently no implementation of web standards that is under a more permissive license than LGPL or MPL. I think that is a gap worth filling and if I recall that is what Ladybird is doing.
I guess Chromium isn’t fully BSD. This could be the reason. Although I’d think reimplementing the non-BSD bits in Chromium would be less work than reimplementing all the bits, including the BSD ones.
Chromium and WebKit both still have bits from KHTML in them which is LGPL
i’d argue its better for software to max foss license like AGPL, not bsd that can be taken out by companies
Why is that a gap worth filling? There is no benefit to users as long as its free of a EULA they don’t have to care either way. For those wanting to produce open source software based on same they already have all the rights they could need. The only party clamoring for permissively licensed software are companies intending to close off the source and sell other people’s work.
I understand why they would want to do that I don’t understand why anyone would feel the need to work for free for something someone else closes off.
There are some cases where it’s just not possible to release the source code, even if you wanted to.
For example, if you’re developing a Nintendo switch game, you aren’t allowed to release any code that uses Nintendo’s sdk, so that means you also can’t use any copyleft libraries.
Maybe MPL-licensed libraries would be ok though. Idk, I’m not a lawyer.
Why would open source code be released with the intention of helping people who wont or can’t give back?
Why not?
I’ve been in situations where I couldn’t release the code to a project, but I was able to use some decent libraries because they were MIT licensed.
So I’m happy to do the same for libraries I write so that others in similar situations could also receive the same benefit I did.
I see it as an act of public goodwill, like paying it forward for the times you can’t directly contribute to another project.Just my personal view on it, anyway.
I’m not claiming it’s a bulletproof solution or that it isn’t open to being ‘abused’.It’s an act of public goodwill to rich corporations who could get the same privilege by paying for a separate license.
It’s an act of goodwill for all developers.
You’re free to believe it’s a simple black/white “us vs them” issue, but I choose to see the world as more nuanced then that.
I can’t understand how people can continue relying on chrome and derivatives like electron, CEF etc. and not see it as a problem.
It’s easy to understand when you think most comments are similar to yours and don’t provide any insight as to why this might be a problem.
Maybe you could update your post and share your knowledge and experience with others, so that there are less people in the world who don’t see the problem.
When trying to render a relatively simple page consisting few thousands of text lines in a table, any current browser will cause mouse cursor to lag for some time, then you’ll discover it consumes at least 2 GB ~ 4 GB of RAM. YouTube lags like I have 2 cores instead of 16. Any electron app is either clunky or too clunky, also either hungry or too hungry.
I’m sorry but I don’t have time to look up other cases.
Any intuition on why we’d expect opening the same page on a newly implemented browser engine that implements all equivalent standards and functions will consume less resources?
That’s not an expectation. The experience is that this became a reality thanks to google, and that it will only get worse in the future. More competition within browsers is the expectation. Better chance for better frameworks to emerge. Eventually it may cause google code to shift into a better overall state too.
Ladybird was born from SerenityOS, which is a hobbyist unix-like (or POSIX compliant?) OS that simply aimed to do things “from the ground up”. It just happened that they needed to make a browser, and the response was to make one from scratch.
From there it seemed to have brought a lot of attention organically to the point where it can stand on its own, but originally it was never intended to be a “third browser engine” from its inception.
That actually makes the most sense. So similar to how Linux was started.
It would be nice if people read the post and the project before randomly making assumptions such as implying the project started from scratch yesterday or its run by some amateurs, this is a 4 year old project! It’s founded by a former KHTML/Webkit developer for Apple!
If only.
Servo already exists and is independent and written in a modern language and way ahead of this.
I mean, competition is good but they aren’t the only independent browser engine.
Remind me in 2 years when this project becomes discontinued…
is it open source?
Good luck!
builds a new browser from scratch without borrowing existing code
still chooses to do it in C++
Epic fail
Not sure if you are trying to be funny, but if not: enlighten us?
Sure :)
There are a lot of downsides of C++ compared to more modern languages that make it not a great choice if you’re starting a web browser from scratch
- Complexity of the language leading to increased bugs and slower development
- Manual memory management is error-prone and leads to issues like memory leaks or segmentation faults. Modern browsers need to handle large amounts of dynamic content, making memory management complicated
- C++ lacks some of the built-in safety features of more modern languages, which has led to the majority of security vulnerabilities found in major browsers. It’s so bad that Mozilla invented an entirely new programming language just to deal with this
- Compared to higher-level languages, C++ can be slower to develop in, which may impact the ability to quickly implement new web standards or features unless you have a massive team
- While C++ is cross-platform, ensuring consistent behavior across different operating systems can be more challenging than with some other languages.
- Newer languages often provide built-in support for concurrent programming, garbage collection, and other features useful for browser development, which C++ lacks.
So tl;dr: a browser but in C++ will take much longer to develop, have fewer features, more bugs, less concurrency and and more security vulnerabilities
Thanks for laying out your concerns. As a C++ developer who does not know the other languages you speak of (I assume Rust, Go), I can agree to some of your points, but also some of them I see differently:
-
C++ can be complex, because it has a lot of features and especially the newer standards have brought some syntax that is hard to understand or read at times. However, those elements are not frequently used, or if they are, the developer will get used to them quickly & they won’t make development slow. As a matter of fact, most development time should be spent on thinking about algorithms, and thinking very well before implementing them - and until implementation, the language does not matter. I do not think that language complexity leads to increased bugs per se. My biggest project is just short of 40k lines of code, and most of the bugs I produced were the classical “off by one” or missing range checks, bugs that you can just as well produce in other languages.
-
C++ no longer requires you to do manual memory management - that is what smart pointers are for, and RAII-programming.
-
I can’t make a qualified comment on that, due to lack of expertise - you might be right.
-
You’re somewhat repeating point 1) here with slow development. But you raise a good point: web standards have become insane in terms of quantity and interface sizes. Everyone and their dog wants to reinvent the wheel. That in itself requires a very large team to support I would say. As stated for point 1), I do not agree development in C++ has to be slower
-
True, as someone who just suffered from problems introduced on windows (cygwin POSIX message queues implementation got broken by Win10, and inotify does not work on Windows Subsystem for Linux) I can confirm that while the C++ standard library is not much of a problem, the moment you interface with the host OS, you leave the standard realm and it becomes “zombieland”. Also, for some reason, the realtime library implementation on MacOS is different, breaking some very simple time-based functions. So yeah, that’s annoying to circumvent, but can be done by creating platform specific wrapper libraries that create a uniform API. For other languages, it appears this is done by the compilers, which is probably better - meaning the I/O operations got taken into those language’s core features
-
I am highly doubtful of people relying on garbage collection - a programmer that doesn’t know exactly when his objects come into existence, and when they cease to exist is likely to make much bigger mistakes and produce very inefficient code. The aforementioned smart pointers in C++ solve this issue: object lifetime is the scope of the smart pointer declaration, and for shared pointers, object lifetime expires when the last process using it leaves the scope in which it is declared. For concurrent programming, I do not know if you mean concurrency (threads) or multiple people working on the same project. While multi-threading can be a bit “weird” at first, you have a lot of control over shared variables and memory barriers in C++ that might enable a team to produce a browser that is much faster, which I believe is a core requirement towards modern browsers
As for your tl;dr: definitely not “less concurrency”, that makes no sense. The other points may or may not be true, keeping in mind the answers I gave above.
Appreciate you taking the time to reply in such detail! Some good insights thank you
You had some valid points as well - I enjoy a good constructive exchange, thank you! :)
-
The language choice was because Ladybird started as a component of SerenityOS, which is also written in C++. With this separation, they are free to gradually introduce other language(s) into the codebase, and maybe eventually replace C++ entirely, piece by piece.
In Hackernews thread about this, the head maintainer mentioned that they have been evaluating several languages already, so we’ll see what the future brings.
In the meantime, let’s try to be mature about it, what do you say?
The dev has 30 years of experience with c++ and a lot of it was on browsers.
He tried to incorporate rust with the help of “JT”, one of the original rust designers/devs and according to Andreas it didn’t work that well due to the web being too objet oriented or something like that. They both worked together (well, mostly “JT”) to create a new safe programming language called “yakt” that transpile to c++, but the project is currently pretty much dead because nobody is really working on it anymore.
The web being too object oriented for rust? Assuming that made sense, who wrote the dang language? If that’s true I’m even less confident they know what they’re doing then I was before.
You’re doubting someone’s ability to create a web browser knowing that they specialize in browser development since the early 2000s?
If this isn’t enough to have confidence in them then nothing will.
Using my decades of experience in how programming and compilers works and the fact Mozilla has used it to great effect and how it is being used for parts of the Linux kernel… Yeah just a general statement it doesn’t make any sense.
Maybe they aren’t effective at designing software with the paradigms of the language or they don’t like it but the given explanation doesn’t track.
I am pretty sure it was about how it was difficult for them to do oop with rust, but I reckon it was long ago and my programming knowledge is minimal.
Found it:
https://rl.rootdo.com/r/rust/comments/yuxb8a/serenityos_author_rust_is_a_neat_language_but
I vaguely remember the talk about needing oop for the web being on discord and not twitter, so the twitter post is likely a reaction that.
Reading all of that it sounds mostly like a dev who has spent 20 years doing things the C++ way wasn’t comfortable learning something new. Like basically they’ve been using horrible design patterns that Rust bans because they’re horrible, and instead of learning better approaches they just say Rust is bad
It could be. But then again, he did have the help of a Rust designer/core dev. I believe they even wrote the first iteration of the “Jakt” compiler in Rust before rewriting it in Jakt itself, so Andreas isn’t against using Rust.
Rust or bust
Then build a browser in rust…
Servo exists
That’s a web rendering engine, not a web browser application. You need a lot of stuff other than the engine to make a browser.
It’s hard to understand the purpose of this. The difficulty of the project (i.e. complexity of the web) is the real problem that needs solving. We don’t need another fork of the browser-verse. We need a fork of the web itself.
They have a fork of the web. Its called the dark web. They use it to sell hookers and drugs.
We also have a fork of money, it’s called crypto and it’s used to sell and buy hookers and drugs. Every fork of something end up used to buy hookers and drugs. Truly marvelous!
I mean…yes?
Dark web should really be called dark or overlay Internet.
All dark “web” browser use the same rendering engines and same spec as regular ones.
I use Firefox.
Ok
I hope this pans out, because I’ve long ago lost hope on Firefox being a worthy alternative to Chromium.
Have you used Firefox recently? There are a few chrome only sites but I’ve been daily driving it for a few months and it’s mostly upside
I can no longer play any podcast hosted on Apple podcasts, which is a distressing amount of them.
They work just fine in Chromium.
Huh, I just went to the website to try and it worked for me
No clue, I guess I’m just not lucky. It doesn’t work on either my phone or my desktop
You can use the app cider for that (Oh, it is a Electron app 😂🙈)
Fair enough, I capitulated and I use spotify for podcasts now
The only reason I dont use spoitfy, which one particular show was available on both, is because it doesnt support my RSS feed.