The bigger issue is backwards compatibility; the web has bent over backwards to maintain it, which is a blessing and a curse. On the one hand it makes the feature set absurd, but on the other hand the web is (relatively) easy to archive since format interpreters for it are widespread, and pages can be built and then forgotten about because they still work.
I'd like to see that experiment done.
This is talked about in a few videos and articles by it's creators.
The HTML5 parsing algorithm is not _that_ hard:
https://www.w3.org/TR/2011/WD-html5-20110113/parsing.html
Do you really think that the complexity of a full XML implementation of the half dozen specs required to implement XHTML would really be that significant a savings compared to the actual features browser developers actually spend their time on?
You're correct that complex software is what people want but that's complex as in an advanced document layout system with advanced language support, rich media, forms, etc. rather than the format those features are implemented in.
Seriously, XML is arguably bad, but html5 is absurdly horrible. The only reason it's acceptable is because it's so widely used that parsers are huge shared projects and most bugs are shallow.
I guess it's all a matter of perspective: sure, you might argue, hey, the spec isn't hundreds of pages, so it's humanly comprehensible. But from my perspective that's a really low bar, and it clears it just barely.
It matters too, because these weird quirks have often hidden things like performance issues, misparses, and security issues due to incorrect normalization.
https://en.wikipedia.org/wiki/Comparison_of_lightweight_web_...
I think I disagree. Most of my customers don't even want software. They want to watch a movie, or read something, or make some data transform, or something else that is their actual goal.
Complex software is what we make in order to enable them to achieve their goal; perhaps if we were smarter and better, we'd be able to make simple software that enabled their goals.
Or perhaps more useful: domains / classes of such issues?
I suspect a lot is:
- XHR
- JS generally
- Cookies
A heatmap of problem areas might be interesting.
Update: that's sort of here:
Great link!
Mozilla themselves have been doing this with Firefox. They've been replacing C++ by Rust (with the Servo rendering-engine project). They've replaced the JavaScript JIT more than once, if I recall correctly.
We've already seen WebKit give rise to two divergent major browsers: Chrome and Safari.
I just discovered Goanna on Wikipedia, a fork of the Gecko engine, presumably with relatively thin resources. Don't know how well it compares to mainstream engines though. [0]
I suppose the short version is that the workload is a function of the goals.
Edit: at that point I wouldn't really consider it "FF of yore." A rewrite is really a new product.
The comment you called out is directly related to what I was talking about, it is not orthogonal.
I'll repeat myself: Firefox is already using the browser engine for its own UI, and that's been the case—I'll repeat again—since before it was even called Firefox.
> they recently announced that the UI is web component based - which means that using Servo for the window chrome is in the realm of possibility
IMO some of the key words there are "web component" and "Servo":
1. IIRC you can't render XUL strictly with web components or anything that would be called "web", since that usually refers to web standards or something you would use from a webpage but not included as a standard (non-standardized extensions, flash, silverlight and so on).
2. Regarding the Servo part, I don't think that Servo ever included XUL support at all. Servo isn't used wholesale as the rendering engine in firefox, but the parent comment talks about the possibility to use it and web standards for the browser chrome.
I feel like you are responding to a comment that never was and then responding to a comment on that comment by saying the original comment was something you thought it was, but it wasn't.
> IIRC you can't render XUL strictly with web components or anything that would be called "web"
> use [Servo] and web standards for the browser chrome.
Geez, this is excruciating.
If you want to use web standards for the browser chrome, this is not a new development. Because Gecko supports web standards. And Gecko has been used for the browser UI for years. There is nothing particular to Servo here. There's nothing particular to Rust.
Using standardized web tech for the "window chrome" is not "in the realm of possibility". It is possible. Full stop. It has never not been the case.
1. Servo supports many web standards, not XUL
2. The firefox UI used to be built in XUL
3. The firefox UI is now not built on XUL, but rather on web standards
This means that the firefox UI can now be rendered by servo or similar components.
That's basically the parent comment. If you disagree with any of those facts that's an interesting discussion, but I think you think that somebody said that the firefox UI could not be built on gecko previously, which nobody said.
If anything, Firefox is a good example of why it's probably better for aspiring browser competitors to start off by just spinning off from Chromium like Brave did. Not that Brave is perfect either, especially not on desktops, but the saved resources let them focus on finding ways to surpass the competition like improving the mobile ui.
* References:
1. https://www.dedoimedo.com/computers/firefox-suckfest.html
2. https://www.dedoimedo.com/computers/firefox-disable-australi...
3. https://www.dedoimedo.com/computers/firefox-directory-tiles....
[Edit (fixing link)]: 4. https://www.dedoimedo.com/computers/firefox-addons-future.ht...
I think it's more likely that a new communication paradigm will supplant the web than that a Chromium competitor will replace Chromium, just as the new smartphone/cloud computing platforms finally broke the Windows stranglehold. PCs are still dominated by Windows.