Mozilla spending time on this suggests Mozilla doesn't know what to spend time on.
Mozilla spending time on this suggests Mozilla doesn't know what to spend time on.
They are going for small incremental changes, instead of rewriting code from scratch, which is what Joel warned against. They aren't saying, fuck Firefox, replace it with Servo. Instead the idea is use Servo as a way to discover better layout, rendering components and transplant it into Firefox.
See Strangular Application pattern
To me that sounds like the end-state is a Chimera and not a Lion, without any incremental end-user benefits along the way.
This is an aesthetic judgment. There is no such things as «a Lion» in the real world. Engineering is the work of building chimeras that solve your problems.
> without any incremental end-user benefits along the way.
The expected benefits are :
- speed (thanks to the massive parallelization permitted by Rust «fearless concurrency»)
- reliability (thanks to Rust's memory safety to avoid crashes and better type system that helps reducing the number of bugs)
- security (thanks to Rust's memory safety to avoid exploits)
Component from Servo will be included in Gecko one by one, the user will gain on these three fronts each time a new component is included.
Creating a new langauges to incrementally change and clean-slate rewrite is an orders-of-magnitude bigger investment than what either what Joel's criticizing or advocating. I don't think that article is very relevant here one way or the other.
There can be legacy system that can just be maintained without modifying. Like for example JavaScript engine.
The article specifically mentions that Netscape shouldn't try and re-write their browser. But if they hadn't done that, we wouldn't have Firefox. We'd still have an incremental improvement over Netscape 4.7.
For those who can't remember Netscape 4.7, let me remind you, it wasn't very good at the end. If they hadn't rewritten it, causing Joel to write that article to tell them they were wrong, there would be no relevant browser called Firefox today.
I've been in a talk of a mozilla developer like a decade or more ago, shortly after they had released the rewrite. His comment on starting a project like that from scratch: "don't". What they intend to do (slowly and gradually transition to Servo) seems consistent with an organization that has learned from this experience.
> We could keep flying the current plane, while starting from scratch and building an entirely new plane on the ground — special ordering every nut, every bolt, designing a new cockpit, and waiting many years before we to get to fly that plane. But we don't want to do that either.
Mozilla is exactly following Joel's advice.
The only reason they still exist today and have relevance is their willingness to rewrite.
I don't disagree with Joel - but his main point seems to be - be prepared to spend longer than you expect on a rewrite - that doesn't mean you shouldn't do it.
Netscape had purchased another company called Digital Style. Their layout tech became Gecko but was called Raptor and NGLayout before being renamed to Gecko. Mariner / Netscape 5 was canceled and Mozilla migrated to Gecko, which was used in Netscape 6.
SpiderMonkey survived the transition from Mariner to Gecko and is used in Servo, too.
Mozilla browser was Netscape 6 with XUL 'hotness' and massive UI lag.
Firefox was stripped down and fast (though XUL is apparently still around).
Eventually a skunkwork project was started to drop all non-browser components and focus on user UI, and that became Firefox.
Mozilla was a refactored version of Netscape (to remove closed-source dependencies)