the perfect browser
the perfect browser
the perfect browser
As long as we're filling out our fantasy browser brackets, I'm hoping that the Servo engine and browser/s can become viable. Servo was started at Mozilla as a web rendering engine only, before they laid off the whole team and the Linux Foundation took over the project. Basically revived from the dead in 2023, the current project is working on an engine and a demonstration browser that uses it. It's years away from being a usable replacement for current browsers and the engine is certainly the main project. A separate browser which employs Servo as its engine is a more likely future than an actual Servo browser.
Still, you can download a demo build of the official browser from the web site. Currently, it's only usable for very simple web sites. Even Lemmy/Mbin display is a little broken, and I think of those as fairly basic. YouTube is out of the question. One of the sites that's been used to demonstrate its capability to render web pages is the web site for Space Jam (1996) if that gives you any idea of its current state.
Honest question, since I have no clue about web/browser engines other than being able to maybe name 4-5 of them (Ladybird, Servo, Webkit, Gecko, … shit, what was Chromium’s called again?):
What makes browsers/browser engines so difficult that they need millions upon millions of LOC?
Naively thinking, it’s “just” XML + CSS + JS, right? (Edit: and then the networking stack/hyperlinks)
So what am I missing? (Since I’m obviously either forgetting something and/or underestimating how difficult engines for the aforementioned three are to build…)
JavaScript alone is not a simple beast. It needs to be optimized to deal with modern JavaScript web apps so it needs JIT, it also needs sandboxing, and all of the standard web APIs it has to implement. All of this also needs to be robust. Browsers ingest the majority of what people see on the Internet and they have to handle every single edge case gracefully. Robust software is actually incredibly difficult and good error handling often adds a lot more code complexity. Security in a browser is also not easy, you're parsing a bunch of different untrusted HTML, CSS, and JavaScript. You're also executing untrusted code.
Then there is the monster that is CSS and layout. I can't imagine being the people that have to write code dealing with that it'd drive me crazy.
Then there are all of the image formats, HTML5 canvases, videos, PDFs, etc. These all have to be parsed safely and displayed correctly as well.
There is also the entire HTTP spec that I didn't even think to bring up. Yikes is that a monster too, you have to support all versions. Then there is all of that networking state and TLS + PKI.
There is likely so much that I'm still leaving out, like how all of this will also be cross platform and sometimes even cross architecture.
What makes implementation so difficult is that browsers cannot just "work", they need to be correct in what they do. And support all websites.
The standards of HTML, CSS and JS have developed over a long time, not only is the amount of stuff massive, over time sometimes strange features where implemented, that were then used by website developers, and now these all need to be handled correctly by all new browsers.
Emulating and reimplementing existing stuff is often more difficult, especially if you cannot leave out any feature, no matter how obscure, because that might break someone's website.
I'm never going to be one to dog on something before I try it. If it's good and can offer the same or better experience as Firefox then sign me up. The biggest sticking point for me, though, is potentially losing Firefox's massive add-in library. I really like my uBlock Origin and Restore YouTube Dislike and my VPN extension and Metamask and all the other crap I've got there.
Yes. Good filters and privacy/security are an absolutely vital requirement today. Unbreaking things and adding features via extensions or something are also good.
you can try it now if you want and it does work surprisingly well, but their timeline is still "alpha in 2026"
as long as the new browser supports webextensions its fine
I think I could get by with Bitwarden/uBlock as a minimum. Addons like enhancer for youtube are super nice though.
I don't understand why everyone wants to jump ship to a whole new browser, when the governance of a browser is the real issue to solve regardless of which browser is supported. A good stewardship model has to be established by people of integrity, technical skill, and funding. From there forking making a hard fork of Firefox is way cheaper and easier than trying to invest in one that's not even finished.
Having more than two browser engines out there would be nice for standardization reasons.
There are more than two browser engines. But it's important to emphasize supporting Firefox's engine because we're already at threat of there being only one dominant engine.
it is also written from the ground up wich means it also has its own engine
explaining the difference between a Toyota and a Honda
God forbid someone on the internet has less niche knowledge about browser engines than you.
Not only C++ but also Swift, which just feels strange
Why build a new browser in C++ when safer and more modern languages are available?
Ladybird started as a component of the SerenityOS hobby project, which only allows C++. The choice of language was not so much a technical decision, but more one of personal convenience. Andreas was most comfortable with C++ when creating SerenityOS, and now we have almost half a million lines of modern C++ to maintain.
However, now that Ladybird has forked and become its own independent project, all constraints previously imposed by SerenityOS are no longer in effect.
We have evaluated a number of alternatives, and will begin incremental adoption of Swift as a successor language, once Swift version 6 is released.
Swift is a pretty fully fledged systems language at this point ... however, it's far from tried and tested for use cases like this and cross platform support is still garbage, so still a pretty questionable choice.
that is actually really goofy, didn't know about that
c++ is adding memory safety features… it’s still modern and frequently updated
It's not the C++ that I find strange hah
Let’s see how ladybird writes docs in the future. Will they assume the user is a man and shut down any corrections for being political?
As far as i know, the pronouns were fixed
I’m OOTL. Are these actual issues people have with the project?
C++ might not be as memory-safe as Rust, but let’s not pretend a Rust code base wouldn’t be riddled with raw pointers.
BSD tells me the team probably wants Ladybird to become not just a standalone browser but also a new competing base for others to build a browser on top of – a Chromium competitor. Even though BSD wouldn’t force downstream projects to contribute back upstream, they probably would, since that’s far less resource-intensive than maintaining a fork. (Source: me, who works on proprietary software, can’t use GPL stuff, but contributes back to my open-source dependencies.)
well, its possible to check if a rust equivalent would be riddled with raw pointers: just check the Servo code base.
personally I think its a good thing to have another browser implementation, regardless of specific choices they make about language or license
C++ might not be as memory-safe as Rust, but let’s not pretend a Rust code base wouldn’t be riddled with raw pointers.
I'm curious. Why do you believe the last statement to be true?
BSD tells me the team probably wants Ladybird to become not just a standalone browser but also a new competing base for others to build a browser on top of
Don’t have time to factcheck so going to take your word for it. Interesting bit of knowledge! Honestly wouldn’t have thought that. How else are Chrome, Edge, Brave, Arc, Vivaldi and co getting away with building proprietary layers on top of a copyleft dependency?
I’m no legal expert. All I know is that when I’m picking dependencies at work, if it’s copyleft, I leave it on the table. I love the spirit of GPL, but I don’t love the idea of failing an audit by potential investors because of avoidable liabilities.
What about safari? Doesn't it still use webkit?
If you cant tell from just looking at the relative successes of BSD and linux that copyleft licenses are better than I dont know how to convince you of anything
By that logic proprietary licenses are best for desktop OSs because Windows has the biggest market share?
Clang vs GCC is probably a better metric for the role of the license in viability and popularity. Or maybe Postgres vs MySQL.
Why has nothing GPL replaced Xorg or Mesa or now Wayland?
Why hasn’t the MIT or Apache license held Rust back from being so popular? Why would Ubuntu be moving away from GNU Coreutils (GPL) to uutils (MIT)? How did Pipewire (MiT) replace PulseAiudio (LGPL)? How did Docker or Kubernetes win (both Apache)? Actually, what non-Red Hat GPL software has dominated a category in the past 10 years?
If the GPL is the obvious reason for the popularity of Linux, why would RedoxOS choose MIT?
This is not an anti-GPL rant.
My point is that choosing the GPL (or not) does not correlate as obviously with project success as you make it sound. It is an opinion that would require a lot more evidence.
I don't like that "C++ isn't memory safe". It is. Users of that language are usually just not experienced or educated enough and therefore more mistakes happen.
I agree though, that other languages like Rust or Java can make it easier to prevent such mistakes.
In my experience, using smart pointers alone already solves 90% of memory issues I have to deal with. C++ improved a lot in that regard over the decades.
I agree that experienced users can write code that leaks less than in C, leaving aside the bottomless pit of despair that is undefined behaviour. But the the language isn't memory safe, it doesn't even prevent you from returning a reference to a local or helpnwitg iterator invalidation. you don't have to jump through any hoops to enable making that mistake.
I'm very experienced with C++and I still feel like I'm juggling chainsaws every time I use it. And I've personally run into into things like use after free errors while working in Chromium. It's a massive codebase full of multithreading, callbacks, and nonlocal effects. Managing memory may be easy in a simple codebase but it's a nightmare in Chromium. Tools like AddressSanitizer are a routine part of Chrome development for exactly that reason. And people who think memory management is easy in C++ are precisely the people I expect to introduce a lot of bugs.
The good news is that the browser comes from Serenity OS which means it probably is lightweight and well written.
with mandatory male pronouns for users in the documentation.
(and no politics allowed!)
can I get some context for this, what is the reference to? I stopped caring about new browsers and now just use Firefox 🤷♀️
it's about the ladybird browser. i edited my comment to add details.
This whole situation was a concern for me too, but with Ladybird being spun off into its own not for profit, these kind of things are much less likely to occur again going forward. The project is a lot more focused now.
Everyone knows links2 is the best browser.
#links2gang
Comic review closed: please don't advertise identity politics
Yess more pmv2q..x...?
You misspelled curl. The keys are right next to each other so it’s understandable.
That's not controlled by Google...
It is also important to note that the license is still foss and GPL compatible. In the future they could made it GPL.
Every contributor needs to have signed a CLA in order for the license to be changed
I’m downloading this and contributing to prove the haters wrong. Y’all are gonna regret not being able to say “I toad a so” like me.
i'm sure they will appreciate your BSD 2 Clause contributions at Microsoft HQ
What is the problem with a BSD-license? I'm not familiar with the different open source licensing models and their problems.
Basically, it allows you to steal all the code and use it in your closed-source programs, giving a green light for corporations to use open-source code without giving anything back.
GPL doesn't allow that, forcing you to open-source anything that was produced using other GPL-licensed code. That's, for example, why so much of Linux software is open-source - it commonly relies on various dependencies that are GPL-licensed, so there is no other legal option other than sharing the code as well.
Apple, Sony, N*****do, Netflix all use BSD but they don't contribute any code to the BSD project itself, because of the BSD allow other people/company to close source their code when using with BSD
Sony actually does contribute. https://christitus.com/sony-playstation-and-freebsd/
TBH, considering those corporations, most of that would be DRM stuff, and they can't let that leak in any format. Others are drivers.
It's not a viral copyleft license, so you're free to use the source code without giving anything back.
This has pros and cons over something like GPL, but people like to circlejerk GPL and pretend it's always the best option 100% of the time.
For situations where you have to sign an NDA and are unable to release source code (eg; console game dev), MIT and BSD licensed projects are a godsend.
MIT/BSD also makes the most sense for small/minimal projects where GPL is likely overkill. A 100 line script does not need to be GPL'ed. A small static website does not need to be GPL'ed.
It's not really an issue for the end user. But it's basically made for companies to take advantage of free hobbyist developers without needing to give anything back in return.
So if you're the kind of person who runs to foss software to get away from corporate tech bull, having a license that benefits companies more than users just kinda feels scummy.
Remember the Minix operating system that runs on your processors ? It's a proprietary spyware now because of BSD licencing
This is such a non-issue
Is he the one constantly spewing hateful shit in the Issues on GitHub whenever people ask him to not use only "he" and "him" in the docs?
Yeah that was the thing that alerted me.
That dev definitely doesn't seem like the best human around, but this is all around terrible to me. Calling the project "dehumanizing" and "vile" because of this is ridiculous. Are people really willing to have their browsing tracked and sold rather than using a browser that has an assumed gender in the documentation? Not saying that they shouldn't use gender neutral language, but as the original issue said, it's a minor nitpick, let's be honest. It's also something that's representative of one dev as a person, not of the project as a browser. Additionally, it could be something as simple as the dev coming from a gendered language, where the word "user" itself is masculine, and doesn't see it the same way as English speakers asking for neutral language.
Constantly? Or once?
And was the “hateful shit” a single request to keep politics out of the project and stay technical?
And was the request to be more gender neutral granted?
I mean, I have not drilled into it. But I keep reading these complaints on Lemmy and the only link I have seen features a single response from him. It feels like a lot of manufactured controversy.
Dammit, again? What did this developer do...
I've only tangentially picked up things about this but this is an example for it
(For some context, if you didn't already know this, Ladybird originated from a SerenityOS component and the first reply is from the lead dev)
Can you elaborate ?
........I have no idea what this is referencing. Duckduckgo?
Its a new Browser build from the ground up. I think its called ladybird.
It's a monumental effort really, building a browser engine from scratch and taking it to daily driver usable is probably among the most difficult programming challenges. It's way easier to build a new Linux kernel from scratch than a browser engine lmao
Even Microshit tried and gave up because it was so hard
What happened to the logo. I swear like 2 years ago it was a picture of an actual ladybird
Good interview with the Dev for anyone who is interested in more of the details from this thread, like why Swift? What's so hard about browsers? Etc. https://youtu.be/z1Eq0xlVs3g
Hey it could be worse. It could be the completely and utterly worthless MIT license.
Well how is MIT more worse than BSD? Both allows prorpietary right?
The only difference is that BSD defends a bit more the owner rights. Either of them defends the software or its users.
BSD license is the only thing that annoys me. Chrome not by google.
Should've written it in python, smh
Is it that difficult to implement a CopyLeft licence ? Well we do have Servo (A modular browser engine) in development & SeaMonkey is a thing too (Which is an entire internet-application suite)
It is not difficult. Not everybody agrees that it a desirable thing to do.
Copyleft is the true path
BSD is freer than GPL. Fight me.
BSD is freer for programmers (or frequently their corporate overlords), but not for people using the software.
That's false. Derivative software that doesn't use the BSD licence has no bearing on the BSD-licenced software itself. For example, Sony using FreeBSD for the PS3 operating system has zero impact on the freedom of a FreeBSD user. The GPL, on the other hand, directly infringes on the user's freedom to fork and redistribute the software.
Yeah but GitHub defaults to GPL, so checkmate nerd 😎
The GitHub owned by Microsoft? That GitHub?
I won't fight you because I agree. But a lot of people think it's more free to have freedoms end when it comes to proprietary forks and such.
To me, that's just one less freedom.
Copyleft protects the freedom of the user, regardless of who is the developer, I think that is way more important if what we want is to make software for humanity rather than pragmatic business choices.
It is a point of what you regard as real freedom, do you wish to eventually lock in your users or let who might fork/take over your project do that?
It is one less freedom.