4 ms·
This seems apt: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ https://www.joelonsoftware.com/2000/04/06/things-you-should-... Mo
by quincunx 10y ago
This seems apt:
https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ https://www.joelonsoftware.com/2000/04/06/things-you-should-...
Mozilla spending time on this suggests Mozilla doesn't know what to spend time on.
- statictype 10y agoMozilla was a rewrite of Netscape and Firefox was a restructuring of Mozilla. 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.
- quincunx 10y agoWasn't Mozilla the open source version of Netscape Communicator, rather than a rewrite?
- statictype 10y agoYou're probably right. An earlier version of Netscape was a rewrite. Mozilla was a refactored version of Netscape (to remove closed-source dependencies)
- nailer 10y agoNetscape 4 was pre XUL. Mozilla browser was Netscape 6 with XUL 'hotness' and massive UI lag. Firefox was stripped down and fast (though XUL is apparently still around).
- toyg 10y agoMozilla started as a big rewrite of Communicator 4, which was then open-sourced at an early stage. It wasn't great because it concentrated a bit too much on rewriting underpinnings (XUL, Gecko etc), resulting in a relatively poor UI. Eventually a skunkwork project was started to drop all non-browser components and focus on user UI, and that became Firefox.
- hsivonen 10y agoInitially Netscape Open Sourced Mariner that was on track to becoming the engine of Netscape 5 and was an evolution of the engine of Netscape 4. Netscape 4 lacked proper DOM support and proper CSS support. (Project to add DOM support was called Perignon, IIRC.) 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.
- verbify 10y agoOthers have pointed out that Netscape's rewrite gave us Firefox, so the rewrite was incredibly successful.
- fnj 10y agoIf you call Firefox incredibly successful.
- andy_ppp 10y agoAs a charity with hundreds of millions in revenue and employing over 1000 people I'd call Firefox and Mozilla pretty successful.
- fnj 10y agoIt has enjoyed success during its lifetime, but the userbase has looked like an upside-down hockey stick for some years now. I would say that having your userbase drop from a dominant majority of the market to well below 10% of the market is indicative of failure.
- robin_reala 10y agoFirefox was never a dominant majority. It peaked at ~25-30% pre-Chrome (when it was the only major competitor to IE).
- iopq 10y agoFirefox gained users since October 2016
- adrianmsmith 10y agoIronically Mozilla is the best counter-example to that Joel on Software article. 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.
- rerx 10y agoNetscape as a company owned by AOL pretty much died during the process of the rewrite. Although parts lived on in the Mozilla foundation.
- daenney 10y agoThen again, Gecko itself started under Netscape, they just released it under an open license after the Mozilla thing was started. So in a sense it's still an incremental improvement over Netscape 4.7, at least when it comes to the rendering engine.
- aduitsis 10y agoThe complete rewrite wasn't initially too good either. It took them years to bring it on par with Netscape 4.7, warts and all. 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.
- Ygg2 10y agoIt seems you either haven't read or understood either Joel's article or this article. 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 http://www.martinfowler.com/bliki/StranglerApplication.html http://www.martinfowler.com/bliki/StranglerApplication.html
- quincunx 10y agoI see what you're saying, however they don't seem to be "strangling" Gecko in the Strangler-pattern sense of the word. Rather it seems they're borrowing smaller pieces (Stylo) written in a foreign language and integrating them with Gecko as the main engine. To me that sounds like the end-state is a Chimera and not a Lion, without any incremental end-user benefits along the way.
- stymaar 10y ago> To me that sounds like the end-state is a Chimera and not a Lion 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.
- Ericson2314 10y agoServo will still exist, so they'll always have the lion and the chimera. 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.
- deleted 10y ago[deleted]
- stymaar 10y ago> I guess we could land the plane, let all the passengers disembark so they can wander over and take other planes, and not provide any service for a while while we change the engines out… but no — no, we can't do that. Not gonna happen. > 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.
- andreareina 10y agoJoel's article is about doing everything from scratch, while if I read it correctly the article talks about doing things in-place, alongside normal use and development.