5 ms·
>> Take your first, crappy implementation and rewrite it in the same language and you'll probably still see at least 10x improvement. You will probably will ge
by pdelgallego 14y ago
>> Take your first, crappy implementation and rewrite it in the same language and you'll probably still see at least 10x improvement.
You will probably will get the same mess. There is plenty of literature about that. I.e: A complete rewrite is what killed Netscape
- ahupp 14y agoI think this taking the wrong lesson from Netscape. If you do a greenfield re-write of a multi-million line application you probably are going to have a bad time, but people successfully re-write smaller applications or portions of an application all the time. Since this was just a portion of the total functionality of LinkedIn, they incurred much less risk than a ground up rewrite would have.
- Devilboy 14y agoIs moving from Rails to Node not a complete rewrite?
- pyre 14y agoThey just wrote a Ruby interpreter for Node.js. Node.js is just that fast.
- OriginalSyn 14y agoWhere can I see this?
- jrockway 14y agoYou'll have to wait until April 1.
- tedunangst 14y agoIt doesn't count as a rewrite when the rewrite is in a language that's cooler than the original version.
- dmorgan 14y ago>You will probably will get the same mess. There is plenty of literature about that. I.e: A complete rewrite is what killed Netscape That's a meme started by a Joel Spolsky article, and maybe an allusion to the "second system effect" (which is about something else altogether). Hardly "plenty of literature about that". Actually, the complete rewrite might killed Netscape, but it saved Mozilla and Firefox. And Netscape was a multi-million line web browser engine, with a javascript interpreter, a full mail client and a wysiwyg editor thrown in. And multi-platform in C/C++ to boot. That is, something an order of magnitude more difficult than LinkedIn or 99% of web properties out there. There have been TONS of successful rewrites. Especially in the web space, it's almost trivial to rewrite your webapp or parts of it. To name but a few: Twitter, the new Digg, SoundCloud, Basecamp, etc etc.
- andybak 14y agoIt's got a slightly longer history than just being a Joel Spolsky meme: http://en.wikipedia.org/wiki/Second-system_effect http://en.wikipedia.org/wiki/Second-system_effect
- dmorgan 14y agoNoticed how I already wrote about that? To quote: "That's a meme started by a Joel Spolsky article, and maybe an allusion to the "second system effect" (which is about something else altogether)." That said, the "second system effect" is not about merely rewriting risks, but especially about architecture and design choices. From the very wikipedia article: """People who have designed something only once before, try to do all the things they "did not get to do last time," loading the project up with all the things they put off while making version one, even if most of them should be put off in version two as well.""" That is, if you design your rewrite _without_ wanting to build a bigger, more involved product, but merely a cleaner and more cleanly made product, this does not apply. Another quote from the very article: """The second-system effect refers to the tendency of small, elegant, and successful systems to have elephantine, feature-laden monstrosities as their successors.""" This is not the case we refer to here. The Netscape got by version 4 had gotten an ungodly mess (and even before that), not a "small, elegant" system. And Mozilla/Firefox, the rewrite, is cleaner and more elegant than Netscape was. Consider a 100 line Python script. People can rewrite it from scratch in 100 different ways, while improving upon it with no problem. At some point of complexity this stops being true, but Brooks was talking about huge projects, built by enormous teams, like OS/360 and such. Not some 20K - 100K line web project.
- zorked 14y agoAs bad as Netscape 4 was, what killed the company was their decision to charge for the browser while their monopolitic competidor was giving it away for free.
- yuhong 14y agoActually the competitor deliberately did it in order to kill Netscape's business model. This also affected Opera too.
- tedunangst 14y agoWhen a competitor undercuts your pricing with free, not doing anything for three years is unlikely to be the optimal response...
- segmond 14y agohow was netscape to survive back then? making money from ads was not in. microsoft had plenty of other ways to earn money. would you write millions of lines of code and give it away for free?
- jes5199 14y agoDon't rewrite the whole thing at once! Cut off logical sections and fix them one at a time.