3 ms·
I think your vision is predicated on not having rewrites, but rewrites do happen in many (most?) projects constantly. And when they happen we exchange some old
by riffraff 3y ago
I think your vision is predicated on not having rewrites, but rewrites do happen in many (most?) projects constantly.
And when they happen we exchange some old bugs for new ones.
There are onions[0] but IME people's natural instinct is to think they can just rebuild something rather than think they haven't considered all edge cases.
[0] http://wiki.c2.com/?OnionInTheVarnish http://wiki.c2.com/?OnionInTheVarnish
- mrpopo 3y agoThis is obviously project-specific, but most rewrites that I've been a part of are usually not "re-implement everything from scratch", but rather "re-implement everything based on this new framework/library", which will usually be one more layer of software, on top of the few things to be salvaged from the original. Small projects can be re-written; big projects like browsers, compilers, OSs require too much investment.
- riffraff 3y agobut big projects keep changing nonetheless, as subsystems get replaced e.g. how many schedulers has Linux been through? Or e.g. microsoft replaced WSL1 with a completely different approach in WSL2. Sure it's still Windows but I would be surprised if most of today's code is the same it was in the year 2000.
- lodovic 3y agorewrites of large software projects usually fail in my experience. For example Netscape, WordPerfect, Digg, Myspace, Healthcare.gov. Most large projects have code bases that are decades old. (exception: Facebook)
- riffraff 3y agofull rewrites for sure, but _parts_ of many projects keep getting rewritten. Firefox kept some Netscape code for sure, but replaced its CSS engine, its JS engine, its XUL-based UI.
- nine_k 3y agoMany projects are like the ship of Theseus: can be completely replaced along the way, as long as the crew did not try to replace the whole ship in one go while sailing. You need enough continuity to stay afloat.