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.
Im glad to see this. Discord is a nightmare. It’s the same as a Facebook only group to me.
I agree, but (hot take) I think that Discord is even worse than Facebook.
The website makes it sound like all of the code being bespoke and “based on standards” is some kind of huge advantage but all I see is a Herculean undertaking with too few engineers and too many standards.
W3C lists 1138 separate standards currently, so if each of their three engineers implements one discrete standard every day, with no breaks/weekends/holidays, then having an alpha available that adheres to all 2024 web standards should be possible by 2026?
This is obviously also without testing but these guys are serious, senior engineers, so their code will be perfect on the first try, right?
Love the passion though, can’t wait to see how this project plays out.
W3C lists 1138 separate standards currently, so if each of their three engineers implements one discrete standard every day, with no breaks/weekends/holidays, then having an alpha available that adheres to all 2024 web standards should be possible by 2026?
Yes, that is exactly the plan: “We are targeting Summer 2026 for a first Alpha version”
a Herculean undertaking with too few engineers and too many standards
Yeah, as a layperson this is my take. If mozilla is struggling to stay in the game then I just don’t really see how an unfinanced indie team has a shot.
Mozilla has loads of projects, not just the browser. I doubt more than a 30 work exclusively on the engine nowadays.
Even if that were true, and it seems unlikely, that’s still an order of magnitude more than the ladybug devs.
Let’s not forget that Mozilla (the company) is largely mismanaged, so that doesn’t help.
It might seem that way but it’s a fairly arrogant assertion. They’re a sophisticated organisation with a lot of well experienced people guiding them. As an outsider it’s easy to criticise their seemingly endless series of bad decisions, but I’m still confident that internally all of these decisions seemed like a good idea at the time.
Besides which, this would be a good reason to fork their codebase rather than starting from scratch.
Sure, but an individual website may use only a few of those standards. Ladybird devs will pick a website they like to use - Reddit, Twitter, Twinings tea, etc. and improve adherence to X or Y standards to make that one website look better. In turn, thousands of websites suddenly work perfectly, and many others work better than before.
Ladybird is largely conformant to the majority of HTML standards now. It’s about the edge cases (and where standards aren’t followed by websites) and performance. This isn’t a new project.
Lol, mentioning Twinings tea together with Reddit and Twitter sounds so random
Andreas Kling, the founder and lead dev, has a massive love for Twinings tea and spent a few Dev logs working on improving their website with the end goal being ordering his tea from them :)
That is a nice little tidbit of information :)
You are assuming that they only started now from point 0. They have probably been working on it for a bit before announcing everything.
Exactly. They have been working on Ladybird Browser for few years already, before it was announced as standalone product (It was a part of SerenityOS).
They say they already use it to manage GitHub issues so it’s definitely more than “point 0” right now.
They’ve been at it for four years and they plan to have an alpha by 2026. Maybe wait how it actually turns out?
Let’s not do zomething because it’s hard pretty much sums up every new generation.
Imagine if they said that when they had to program everything in assembly…
Software nowadays is a lot more complex. You’d get nowhere using assembly. Are you also gonna call me lazy if I say making a smartphone from scratch is complicated? “But the Nokia 1234 only had 4kb of memory” Is what you will probably say.
You’d get nowhere using assembly because people wanted to keep improving technology.
The Nokia was actually build and freakin’ rock solid. Then came smartphones because people wanted to improve. It sure wasn’t easy and they didn’t go Geez, a phone from scratch? Why bother?
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.
I think it’s less that it’s “impossible” but rather that it’s expensive.
Honestly we’ve in general shoved too much shit into the browser that’s not strictly related to just browsing web sites.
And you “have to” support all the layers and layers and layers of added stuff, or you can’t “compete”.
But, at the same time, the goals of making a good-enough browser that mostly works and isn’t completely enshittified and captured by corpo big tech interests is a very worthy project and 100% support what they’re doing.
JavaScript was a mistake.
And it went downhill from there.
It was fine when it was contained to an actual web site instead of infecting desktop software too. To me, using JS for that purpose feels like using PHP to write a 3D video game.
Eh, scriptable content was probably fine.
Techbros going ‘holy shit, we should make EVERYTHING a website!’ was the curse that doomed us.
Pushing for bloated web apps instead of having optimized and perfectly functional websites was what killed it for me.
or you can’t compete
Nah nah fuck that noise. ‘Jack of all trades but ace of none’ or however the saying goes, is a shitty way to go about things. I don’t have the biggest dick but I know my way around around the block, and I know I’m good at it. More specialized > the catch-all bitches.
Let the fucks with their special engine requirements eat shit. Standardize or write a fucking proper program (miss me with that “app” bullshit) or fuck right off. “everyone is special… exactly like you” now fuck off web dev. Your shit doesn’t get a permit.
…
I may have some… disputes with the way the web is done nowadays.
you shouldn’t use this browser the devs are transphobic sexist chuds
Hmm. I just read the github thread that this is about. The devs made a mistake on this; but it seems to me that there is a bit of an over-reaction here. The people in the thread seem to be discussing it calmly and politely; and the issue (i.e. use of pronouns in the build instructions) ends up being resolved. By contrast, the reaction outside of the actual thread… is extreme.
Like I said, this seems like an overreaction to someone making a mistake of ignorance & indifference. It wasn’t an act of malice.
Appears to be fixed now: https://github.com/SerenityOS/serenity/pull/24648
Yeah, I saw this, and all my excitement for the project died. If it becomes successful, I might use it anyway though.
they must be trying to go after the brave marketshare
… What
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.
Google is Mozilla’s biggest source of income, and google developers have actively contributed code to the Firefox engine.
So you decide for yourself what level of independence you assign to it.
is it open source?
As Firefox will introduce Manifest V3 which will make ad-blockers unusable, I hope they will not implement that as well … But since this is so new, this will not have any add-ons at all for the foreseeable future
Stop spreading lies. Firefox will not deprecate the APIs that enable adblocking..
I use Firefox.
Ok
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.
I hope this pans out, because I’ve long ago lost hope on Firefox being a worthy alternative to Chromium.
Firefox has been perfectly capable for the entire time it has existed. What are you talking about?
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!
“Ladybird uses a brand new engine based on web standards, without borrowing any code from other browsers.” has the same energy as
Not really. They aren’t inventing new standards. They are implementing an engine that confirms to existing standards.
Wasn’t this the transphobic one?
Brave?
Don’t believe they’re related
Shoutout to the user pointing out that forcing “he” is just as, if not more, political ❤️
i like how they’re like this isnt the place for personal politics while ignoring the fact that gendered readme files are patently stupid in the first place.
Changing to gender neutral seems like a no brainer to me but how is this transphobia?
builds a new browser from scratch without borrowing existing code
still chooses to do it in C++
Epic fail
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?
Rust or bust
Then build a browser in rust…
I’m not sure 10 years old are allowed on the internet. Isn’t it time for Coco and bed?
I agree that Rust would be an interesting choice for this project but there’s a reason why this particular project is done in C++
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! :)
-
C++ is a very old, extremely complex language. There are arguably objectively better modern alternatives, such as Rust.
I agree that Rust is the way to go, but calling something “arguably” & “objectively” in the same breath is a bit of a paradox innit?
Rust is great, but anybody developing something should have the ability to choose whatever programming language they prefer. If you want it made with rust, make it yourself.
Of course, but it still makes sense to think carefully about the advantages of disadvantages of the tools you use when starting any project.
Remind me in 2 years when this project becomes discontinued…