4 ms·
Ambitious! I've always been curious about the trade-off between "second-system syndrome" and "learning from experience". Do people have examples of rewrites th
by losvedir 4y ago
Ambitious!
I've always been curious about the trade-off between "second-system syndrome" and "learning from experience". Do people have examples of rewrites that went well and those that didn't?
I can think of several that didn't go well (and in fact ultimately decided as tech lead at my last place not to do one for a big chunk of our code that I was on the fence about, just because of that), but can't think of many that did go well.
Maybe Go is kind of an example where the authors used all their experience to build something new, rather than just a straight up rewrite. BurntSushi's ripgrep is an example of someone else doing a rewrite that worked out pretty well. Others?
- mwint 4y agoThe classic Joel article: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ https://www.joelonsoftware.com/2000/04/06/things-you-should-...
- capableweb 4y agoIt's a bit ironic to use Netscape as an example of a "rewrite gone wrong" as (if I remember correctly) the initial version of Netscape was a complete rewrite of Mosaic, with Mosaic developers being involved in the rewrite as well. And I think Netscape in general was quite popular, most if not all software people were using Netscape at one point if they were active during that time.
- mixmastamyk 4y agoEvery new program is a “rewrite” if you look back far enough. In that case they had funding to start a new company and the problem space was an order of magnitude smaller. He’s right, that decision marked the end of Netscape as a factor.
- Brybry 4y agoTwitch rewrote their backend from Rails to Go. They also rewrote their frontend in React (previously Ember.js)[1] I know I've also seen a Twitch developer stream themselves benchmarking Rust + io_uring vs Go but I don't know if anything ever came of that. Discord rewrote at least one Go service in Rust. [2] Cloudflare made Pingora (Rust) to use instead of NGINX (C) though idk if that meets the rewrite criteria. [3] [1] https://blog.twitch.tv/en/2022/03/30/breaking-the-monolith-at-twitch/ https://blog.twitch.tv/en/2022/03/30/breaking-the-monolith-a... [2] https://discord.com/blog/why-discord-is-switching-from-go-to-rust https://discord.com/blog/why-discord-is-switching-from-go-to... [3] https://blog.cloudflare.com/how-we-built-pingora-the-proxy-that-connects-cloudflare-to-the-internet/ https://blog.cloudflare.com/how-we-built-pingora-the-proxy-t...
- gpmcadam 4y agoI believe reddit was rewritten in Python (formerly Lisp?)
- franksvalli 4y agoAngular 2 is a good example of something that didn't turn out so well. Many developers gave pause and ended up just migrating to a competing framework instead. I just skimmed through this but it looks like a decent summary: https://medium.com/@chriscordle/why-angular-2-4-is-too-little-too-late-ea86d7fa0bae https://medium.com/@chriscordle/why-angular-2-4-is-too-littl... NPM trends tells an interesting story as well: https://npmtrends.com/@angular/core-vs-react-vs-vue https://npmtrends.com/@angular/core-vs-react-vs-vue