Live data from Hacker News

Textmate 2 and why you should never rewrite your code

kerr.io

21–30 of 52 posts

Re: Textmate 2 and why you should never rewrite your code

#21

Earlier quoted context omitted.

Do you have any examples of Microsoft throwing away their codebase and starting fresh? I believe that is what Apple did with the OS9 to OSX transition. I can't think of too many examples where starting from scratch worked out though.

Windows NT? The Windows 95-98-Me series' kernel was thrown in the bin, replaced by the NT kernel when they released Windows XP.

NT was created in parallel, and run in parallel for a long time. Eventually the benefits of NT outweighed the 9x kernel, and computers were fast enough that the extra overhead was acceptable. 9x was EOLed and XP went with the NT kernel.

They were two different products that ended up converging enough that sharing code made sense.

Re: Textmate 2 and why you should never rewrite your code

#22
post #16

Earlier quoted context omitted.

Maybe the real lesson here is, don't get in technical debt. Do it right from the start.

If only it were that simple. The problem is that you don't know what the 'right way' is until you've done it once and discovered all of your the mistakes and pitfalls. The temptation then becomes to start over and do it right after having learned your lesson. The problem with that is that often, in addition to taking to long too start over, you just end up making a whole new set of mistakes.

I read the Mythical Man Month years ago and for a long time I've thought of this as the "second-system effect": You can create a much better architecture the second time around. (Hence the advantage of quick, throwaway prototypes.)

The article (and wikipedia) tell me I'm wrong on Brooks' meaning.

Re: Textmate 2 and why you should never rewrite your code

#25

Gotta call you out for a sensationalist headline and over-the-top one-sided article. People rewrite their codebases all the time, and quite often it's a very good idea.

Take for example my company's product. It's old, written with a mix of Pascal, Cobol, VB and C#. The VB for the user interface is now at a point where it's causing problems, and there aren't a lot of developers who want to work on VB6 applications. Not to mention it's 12 years out of date. Never rewrite your code? Yea right, I'll just leave all this cruft here so that in the future nobody can even put together a development system to build the thing.

Re: Textmate 2 and why you should never rewrite your code

#26

Earlier quoted context omitted.

Do you have any examples of Microsoft throwing away their codebase and starting fresh? I believe that is what Apple did with the OS9 to OSX transition. I can't think of too many examples where starting from scratch worked out though.

Windows NT? The Windows 95-98-Me series' kernel was thrown in the bin, replaced by the NT kernel when they released Windows XP.

Yes, but they had been developing the NT product line for years, so it wasn't a full start over. Then they had the Windows 2000 release which was their first stab at a "merged" kernel for desktop and pro/server. XP was the full cutover after Windows 2000 validated that it'd work.

Re: Textmate 2 and why you should never rewrite your code

#27

Wow, how long did it take to write this article, given the news of Textmate 2 going open source is only hours old? If I was cynical, I'd be guessing that the topical headline was a fairly shameless attempt to gain attention from website aggregators. On the subject of rewrites, with the benefit of hindsight it's easy to point out when it was a bad idea. But clearly it doesn't always have to be that way. After all, it…

[deleted]

Re: Textmate 2 and why you should never rewrite your code

#28
I prefer an alternative interpretation: if rewriting your code is an existential risk, you weren't writing it right in the first place.

Startups need to value flexibility. The longer they stay flexible -- even in the presence of growth -- the higher their valuations get. So the conclusion seems inescapable: find ways to make rewrites utterly banal. This may seem hard, but I think it's possible. Part of the answer might be replacing compatibility concerns with automated tests to a far more comprehensive level: http://news.ycombinator.com/item?id=4361596.

One benefit of Google's NIH syndrome that I think people don't focus on enough: because they built the entire stack from scratch they had no backwards compatibility overheads in the early days. (Of course this is no longer true.)

Re: Textmate 2 and why you should never rewrite your code

#29

Wow, how long did it take to write this article, given the news of Textmate 2 going open source is only hours old? If I was cynical, I'd be guessing that the topical headline was a fairly shameless attempt to gain attention from website aggregators. On the subject of rewrites, with the benefit of hindsight it's easy to point out when it was a bad idea. But clearly it doesn't always have to be that way. After all, it…

Do you have any examples of Microsoft throwing away their codebase and starting fresh? I believe that is what Apple did with the OS9 to OSX transition. I can't think of too many examples where starting from scratch worked out though.

> Do you have any examples of Microsoft throwing away their codebase and starting fresh? I believe that is what Apple did with the OS9 to OSX transition.

Even that wasn't "starting fresh". The starting point was a complete operating system: OPENSTEP. It was just a different operating system than the one they were using before.

Re: Textmate 2 and why you should never rewrite your code

#30
post #16

Earlier quoted context omitted.

Maybe the real lesson here is, don't get in technical debt. Do it right from the start.

If only it were that simple. The problem is that you don't know what the 'right way' is until you've done it once and discovered all of your the mistakes and pitfalls. The temptation then becomes to start over and do it right after having learned your lesson. The problem with that is that often, in addition to taking to long too start over, you just end up making a whole new set of mistakes.

Also most companies don't live in happy land, where you are allowed infinite time to do this things.

It can be "I have one day, to a 4 day job", better hack it sort of thing.

Post reply on HN