However, the thought has also crossed my mind if we're finally seeing fruits of browsers being better standardized on "95%"+ of the popular features -- and if writing a browser today is in fact easier than both writing AND maintaining a browser a decade back. While the web is of course still evolving, it feels more "settled in" than 10-15 years ago.
There's also the factor that past developers didn't have the more complete roadmap set when they initially planned browser design, but now we have huge amounts of web standards already there AND also know how popular they got over time i.e. what to prioritize to support a modern web. One might superficially think there's simply more of everything, but I also think ideas that can be discarded. Just imagine that Internet Explorer had XSLT support, and FTP was common once upon a time!
It would be interesting to hear more about their own thoughts on these topics!
Edit: My bad; XSLT is still commonly supported and by all major browsers but a rarely used feature and stuck in limbo in XSLT 1.0. So it's probably among those things that can be safely omitted for quite some time.
Thanks jug! I'm super proud of all the folks who have worked on it with me :^)
> However, the thought has also crossed my mind if we're finally seeing fruits of browsers being better standardized on "95%"+ of the popular features -- and if writing a browser today is in fact easier than both writing AND maintaining a browser a decade back. While the web is of course still evolving, it feels more "settled in" than 10-15 years ago
This is definitely true! I've worked on browsers on and off since 2006, and it's a very different landscape today. Specs are better than ever and there's a treasure trove of tests available.
If anyone threatens Google position, they can literally throw money at the problem, invent some overcomplicated standard, implement it in Blink, and have the competition chase them. It doesn't need to go through W3C either, if it works in Chrome, all web developers will adopt it and any smaller engine will necessarily have to support it or risk losing whatever little market share they have left.
Having control of the internet now is of greater strategic importance than it was 20-30 years ago when Microsoft was king of the hill.
It is conceptually despicable, especially for devs, but it prevents Google from completely running the show.
Now the European Union is coming after Apple without trying to rein in Google's influence... This seems short-sighted.
This is why we, tech nerds who understand the problem, must resist monopolies: object to using such APIs. Chrome wouldn't be in quite this position if, instead of embracing the monopolist, more techies had warned their non-techy friends and family away from it, like they did with IE.
It's almost as if backwards-compatibility is seen as something to be avoided in certain web dev communities. Lots of "drop support" and "moving forward", zero consideration for simplicity and interoperability.
How is Instagram dependent on whatever Google decides? How is Facebook, TikTok and Snapchat? How are streaming platforms dependent on Chrome? Big businesses with a ton of users easily launch their own apps to sidestep Chrome. And if Chrome makes fundamental breaks of HTML and CSS, then most of the internet is going to be broken in Chrome.
If your bank website stops working in Chrome, they're not going to change their website. They're going to ask you to install another browser.
A decade back, maybe... but decades ago the number of things you had to support was just so much smaller even if you only looked at HTML! Consider https://www.ietf.org/rfc/rfc1866.txt vs https://html.spec.whatwg.org/multipage/
Writing a web browser was hard in the old days for a lot of reasons, but trying to write a full-featured one today is a huge undertaking and we're still adding a bunch of new features all the time and expecting browsers to support them
I thought, oh, that's not so bad. Then I realized what I was looking at was a 10 page index.
Probably not. Yeah we have web standards and some idea of how to architect it, but the total set of APIs and HTML/CSS features a browser supports is probably changing faster than the Ladybird team can actively implement it. The API surface is just impossibly large compared to 10 or 15 years ago. Look at all of these: https://developer.mozilla.org/en-US/docs/Web/API
And that doesn't include the updates to Javascript, MathML, SVG, HTTP-based security features, encryption or media support.
- standards are really detailed at this point and a large reason why the three remaining browser engines (chromium, safari, and firefox) largely do exactly the same things.
- There are a lot of open source components. It's not necessary to start from scratch on things like wasm and javascript interpreters for example. There are some nice low level graphics libraries out there as well. And of course things like Rust are now pretty mature and there's a lot of rust code out there that does stuff that a browser would need.
That being said, it's one hell of a hobby project to take on and I don't see much economical value in an independent implementation of something provided by free by three independent browsers already; two of which are open source.
Which begs the question: why?!? Is there qualitative argument here of doing the exact same thing but somehow better?
1. https://www.webkit.org/blog/14633/get-ready-for-interop-2024...
The idea of being able to ship an XML template with basic logic like for loops alongside the actual XML data source is really unique today. If people cared to use XML at all, that really does cover quite a few use cases that we current reach for JSON + client JS today.
I've been watching the development videos for a year or two, and the speed that this has progressed in such a short time is unbelievable. Now they have multiple volunteers and enough sponsorship to pay more than one developer, it's pretty exciting what could happen here!
He did not even use the C++ standard library, when he says "from scratch" it includes his own string class, for better or worse, which is fine since it's "just for fun", "to learn" etc. And just when you think a library and an OS are crazy, he announced a browser and a JavaScript engine on top. Then a JIT compiler, then Jakt, their own novel programming language, because neither C++ nor Rust is what makes him perfectly happy.
More than his expertise I admire his modesty and kindness - unlike Linus etc. he is not full of himself, and each of his videos gives lots of credit name by name of who did what. A perfect role model for open source.
Also, you would think that having to implement EVERYTHING themselves ( they are making their own image decoders as an example -- inclding SVG ) would slow them down. However, as it is written in a mono-repo from soup to nuts, this allows them to very rapidly add support throughout the stack. They do not have any of the endless conversation and arguing that happens between components in Open Source. They do not have to work around things missing upstream. If they need something, they add it.
I can't imagine how it can be for worse; the standard C++ string library is awful. It makes perfect sense that a super-talented C++ dev would make something better if they have the energy and time.
TBH Jakt defaults to reference counting, which makes it compete more with Swift and Go rather than C/C++/Rust.
Would love to read more details about this, or have a link to a video where he describes and follows the process.
It’s still really impressive but he is not the new kid in town when we talk about developing browsers.
Ladybird also comes with their LibJS runtime, which has good coverage of the JS standards and even manages to implement some new features before the big browsers all get to it.
I would consider contributing but development is coordinated on Discord and I avoid proprietary software… [1]. It's a shame. Can't blame them though, they are doing it for fun.
[1] https://drewdevault.com/2022/03/29/free-software-free-infras...
He claims that authors promoting their open source software on channels like Twitter, Hacker news, LinkedIn or even Github is "selfish and unethical outright":
> Many projects choose to prioritize access to the established audience that large commercial platforms provide, in order to maximize their odds of becoming popular, and enjoying some of the knock-on effects of that popularity, such as more contributions.
> To me, this is selfish and unethical outright, though you may have different ethical standards.
I find Zealotry like this tough, and promotes a definition of FOSS that feels hostile against those who want to simply build something cool, and share it with the world - (or even more controversially, make money from FOSS).
Given such a strong view, it's really surprising that he then posts stuff like "Can I be on your podcast"[1] to try to promote Hare - his programming language.
He didn't ask for podcasts that aren't distributed on platforms like Spotify or Apple Podcasts. In fact - he's right there with several appearances promoting Hare.
That feels like hypocrisy.
[1]: https://drewdevault.com/2023/11/09/Can-I-be-on-your-podcast....
I doubt Drew is against making money from FOSS. He actually runs a business (businesses?) around FOSS.
I don't think it's controversial to make money from FOSS anymore. FOSDEM just happened, many companies making money from FOSS were there, and they are liked. Some specific ways of making money might be less appreciated, but not the whole concept.
People are not silly, they know money helps develop (free) software and also many would love to be paid to work on free software.
> That feels like hypocrisy.
No, that feels like living in an imperfect world and trying to make it better. To improve something, you generally need to be part of it and its imperfections.
Isn't this the exact opposite of zealotry? Zealotry is imposing your ethical standards on others.
Requiring the use of priorietary software to access and discuss it is a problem, and requiring complicated software is not that good either, but it is also possible to use open protocols with multiple software.
(In the specific case of GitHub, they had previously allow viewing files without needing JavaScripts; that has changed now, but the data is included as JSON data within the HTML file, so I was able to write my own much shorter script to substitute for theirs. Of course, that does not help much if you do not have that script, but you can still use the git protocol to download the files, or to use the API (the form for creating a new repository has stopped working on my computer, but I have been able to do so by using the API).)
One thing they do not mention is NNTP, which I think can be a helpful alternative than mailing lists (although you can also have multiple interfaces for the same messages).
Just because you don't necessarily have a solid counterargument to his convictions, doesn't make anything he said "over the top." That's just a disingenuous dismissive attitude towards what is clearly a post on his personal website that builds on established and clearly communicated values (freedom of software.)
There's absolutely nothing in that article that criticises making and sharing free software. It is clearly criticising using a certain type of medium to share free software. If that's zealotry, then any argument against doing anything is, too.
I wager that this hostility felt by these views are projections of guilt, devoid of criticisms towards said views or values. In fact, I'd argue that having no opposition towards a certain ethos then opposing it for frivolous reasons such as personal offence out of a public blog post is as close to hypocrisy as one can get.
That would correspond to the NonFreeNet antifeature in F-Droid [1].
They could update the code they released for good measure though [2].
Running Discord is on another level for me. I would consider accessing a Discord using a Matrix or IRC bridge.
" Q: Why bother? You can’t make a new browser engine without billions of dollars and hundreds of staff.
Sure you can. Don’t listen to armchair defeatists who never worked on a browser. "
Nice take.
It's a huge shame that there are no nightly builds of ladybird to try out but I assume that's because they just don't want the bug reports (if everything doesn't work it's pointless getting random bugs filed).
(agreed, it is a credible alternative to Blink's dominance)
And for me there is the question of canvas, threejs, react-three-fiber and react-drei. Is it possible that - especially with mobile - that canvas could be used to provide a better user experience? Who writes games for mobile with a HTML and CSS? Not saying it can't be done, but I wonder how many web sites require HTML & CSS instead of canvas?
A big barrier to browser competition is needing to implement obsolete and outdated technology. Why not just a minimum set of html and canvas.
Just thinking. Your thoughts?
I don't think it'd help much.
- There's been a Cambrian Explosion in the web API surface era. The modern stuff dwarfs the old stuff. Dropping support for older/less frequently used mechanisms does not shed as much code and complexity as you might think.
- Beyond mere surface area, the level of engineering required to implement a sort of "Restricted Core Profile" to a competitive degree (e.g. performance) is quite high, if you're talking true blank-canvas development.
- There's a long tail effect in full force, where even mostly-modern websites will use and rely on some cruft here and there, making very few pages work in your supposed browser.
That is to say, it's still a very large, tough project. But the FOSS community has achieved quite a few large, tough projects; it's not the same as saying that it's not possible, of course.
Please stop following Google who is trying to turn the Web into an OS for their own ad-fueled, user-tracking profit.
If you want to make connected (or not) apps, there's already the Internet and OSes for that. And you don't have to make your interface worse by fighting with the browser about it ! (Especially important for games and other "deep" software.)
The whole point of the Web is to be an hyperlinked collection of documents, sometimes multimedia, with maybe a little bit of interactivity with some forms and scripts sprinkled on that.
(As an example to how incongruous the current situation is, imagine a parallel universe where it was Adobe rather than Google that got humongous, and it was the JavaScript in PDFs that was (ab)used instead to make apps.)
Interview with Andreas Kling of Serenity OS (2022) - https://news.ycombinator.com/item?id=39286638 - Feb 2024 (134 comments)
Related to OP:
Ladybird browser update (July 2023) [video] - https://news.ycombinator.com/item?id=36939402 - July 2023 (1 comment)
Chat with Andreas Kling about Ladybird and developing a browser engine - https://news.ycombinator.com/item?id=36620450 - July 2023 (65 comments)
Shopify Sponsored Ladybird Browser - https://news.ycombinator.com/item?id=36502583 - June 2023 (1 comment)
I have received a $100k sponsorship for Ladybird browser - https://news.ycombinator.com/item?id=36377805 - June 2023 (166 comments)
Early stages of Google Docs support in the Ladybird browser - https://news.ycombinator.com/item?id=33511831 - Nov 2022 (84 comments)
Github.com on Ladybird, new browser with JavaScript/CSS/SVG engines from scratch - https://news.ycombinator.com/item?id=33273785 - Oct 2022 (1 comment)
Ladybird: A new cross-platform browser project - https://news.ycombinator.com/item?id=32809126 - Sept 2022 (473 comments)
Ladybird: A truly new Web Browser comes to Linux - https://news.ycombinator.com/item?id=32014061 - July 2022 (8 comments)
Ladybird Web Browser - https://news.ycombinator.com/item?id=31987506 - July 2022 (2 comments)
Ladybird Web Browser – SerenityOS LibWeb Engine on Linux - https://news.ycombinator.com/item?id=31976579 - July 2022 (2 comments)
Google, on the other hand, provides a web engine with a nice license and reasonable ergonomics that can be used for all sorts of projects. This allows them to execute an EEE strategy:
Embed (into all kinds of projects)
Enforce (moving-target standards of your own making)
Exhaust (any potential competitor/resources that needs to chase after them)
This is why I wish we can get an alternative, OSS, easy-to-embed engine soon.
It's (IMO) very pronounced and hard to avoid on Mastodon.
Discussion: https://news.ycombinator.com/item?id=36502433 (246 points | 7 months ago | 66 comments)
If the language becomes mature enough, and there are people interested enough in doing that porting, it will likely happen.
I think their C++ code is also constrained enough due to the use of their custom standard library that it would be possible to write a transpiler from C++ to Jakt.
I will note though that development on the Jakt language has slowed down significantly. After extremely fast initial development, most Serenity developers no longer contribute to the language. Because everything is done exclusively when the contributors feel like it, development happens in bursts. And right now, Andreas is not actively working on Jakt, so very little improvement is happening there. The main developer working on the language is Ali Mohammadpur, but I don't think he is currently being paid to work on the project. So his contributions are also inconsistent.
What are the chances that this could become a real world usable replacement for chrome or Firefox witching the next couple of years?
I hate what a small group of lazy front-end people have done to our world...
Which ones? I have always exclusively used Firefox and rarely have issues.
The real problem is that firefox is tier 2 support or not even. It's a small percent of users so it's a cost/benefit for these businesses.
A recent issue I had was buying tickets from air india. You can't with firefox... it'll hang at a certain point. Switch to chrome... works perfectly.
The web is dead. It's basically client/server nowadays. Firefox is still my main browser, but I keep chrome/chromium around when I need it.
you mean minor aesthetics differences or functionality? I just use firefox, I don't even have chrome, and everything works. And I use mainstream web, nothing too niche.
I've seen them putting all effort on eye-candy while ignoring that the page only works on "retina" display and then only on Safari.
What happens when you put a percentage height on a row in a table. What happens when an element has a margin that doesn’t fit in its parent. How does adding display: flex effect how text is laid out inside an element.
These are things that Gecko and WebKit/Blink handle differently. Some of them are defined in the spec and have tracking bugs, but some of them just aren’t addressed. I don’t think it’s maliciousness or laziness on anyone’s part, but the web is too complicated for there to be multiple perfectly compatible rendering engines.
This seems like hyperbole, frankly.
Seems like they're involved in many browser technologies, and other technologies.
It's a religious disagreement.
There are tools which are much more user-friendly than IRC (and even Discord, in some aspects), such as Matrix or Zulip. They easily enough could’ve been more pragmatic picking those instead.
> 2023-06-28: Welcoming Shopify as a Ladybird sponsor
Hmm, no new sponsor since august 2023. Not a good sign. I cheer for them to succeed though!
> #!/usr/bin/env bash
> cd ${HOME}/serenity && ./Meta/serenity.sh run lagom ladybird
I guess you could create a .desktop file that invokes the script, or just the "serenity.sh" script directly.
I also find it curious that they are sponsored by a real estate site (:
"Where are the ISO images?
There are no ISO images. This project does not cater to non-technical users."
This comes off as really abrasive. Wanting an ISO image to quickly test this out is not an indicator of someones technical ability.
I'm sorry I don't want to boot up a linux vm, install a lot of development packages and then build my own boot image just to try this out.
I think that’s often the point with OSS projects, especially those that have an ambitious long term vision. If you “don’t want to boot up a Linux VM” etc, they don’t want you. It’s a filter. It means their concern at the moment is the coherence of their community, not increasing their numbers. It’s the same reason projects like this often have absurdly ugly logos, and landing pages that don’t work on mobile. Fast growth is often seen as destructive when you already have a nice little community vibe. It’s essential to maintain that vibe carefully if you have a long term goal of building something important.
Anyone can set up a pipeline to distribute ISO images though, it's open source.
If it's just for fun, we need to temper our expectations accordingly.
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones.Is it really important to answer this question? A lot of widely used software started as "just for fun", e.g. Linux or OpenSSL.
I think tempering our expectations should be the default for Open Source software.
And that having expectations as a end user is still a bit premature.
You can expect the project to move somewhat fast.
Is this true?