News for hackers. Stuff that matters.
Re:Textmate 2 and why you should never rewrite your code by andy_herbert on Thursday August 09, 2012 @04:43PM (#4363134)
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 never hurt Microsoft on occasion, and Apple.

As almost always, context is key.

Re:Textmate 2 and why you should never rewrite your code by astrojams on Thursday August 09, 2012 @05:10PM (#4363257)
I read the Textmate announcement, saw some great comments here and then decided to write the article instead of composing a comment. I didn't think the article would get any traction.

Agreed about the context being key. It always is. My point was more about adding incremental value to your customers with solutions to small problems rather than going after all their problems with one big release.

Re:Textmate 2 and why you should never rewrite your code by MikeKusold on Thursday August 09, 2012 @04:52PM (#4363178)
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.
Re:Textmate 2 and why you should never rewrite your code by evilduck on Thursday August 09, 2012 @05:00PM (#4363203)
But Apple didn't really "start fresh" internally with OSX, they acquired NeXT which was already a pretty robust product when they made that decision. The abandoned the OS9 codebase, but they didn't really start over from a blank slate.
Re:Textmate 2 and why you should never rewrite your code by dasil003 on Thursday August 09, 2012 @07:05PM (#4363824)
Well there was also the many-years development of Copland that ultimately failed and precipitated the purchase of NeXT just to get a decent OS.

It's hard to say whether Copland was a rewrite or a refactoring, but what is indisputable is that the root architectural decisions of Mac OS were a dead-end.

They actually had to go beyond a rewrite to build something completely new and different, and then retrofit an emulator onto it to support the old system.

Re:Textmate 2 and why you should never rewrite your code by ArbitraryLimits on Thursday August 09, 2012 @05:16PM (#4363284)
From Joel's classic article:

"Microsoft almost made the same mistake, trying to rewrite Word for Windows from scratch in a doomed project called Pyramid which was shut down, thrown away, and swept under the rug. Lucky for Microsoft, they had never stopped working on the old code base, so they had something to ship, making it merely a financial disaster, not a strategic one."

Re:Textmate 2 and why you should never rewrite your code by Legion on Thursday August 09, 2012 @05:40PM (#4363413)
> 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 by dgoodlad on Thursday August 09, 2012 @05:02PM (#4363214)
Windows NT? The Windows 95-98-Me series' kernel was thrown in the bin, replaced by the NT kernel when they released Windows XP.
Re:Textmate 2 and why you should never rewrite your code by pydave on Thursday August 09, 2012 @05:28PM (#4363341)
That's a successful version of the Pyramid story. NT had been developed alongside OT (or whatever the old tech kernel was called).

They wrote a new system in tandem with maintaining the old one and when it was mature enough, swapped out old for new. This pattern is very commonplace.

Re:Textmate 2 and why you should never rewrite your code by MBCook on Thursday August 09, 2012 @05:30PM (#4363348)
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 by incongruity on Thursday August 09, 2012 @05:43PM (#4363425)
If there is any lesson from OS X and Windows, I think you've hit on it, exactly. The way to replace isn't to stop one and start another – instead, you need to build in parallel and have a smart migration plan.
Re:Textmate 2 and why you should never rewrite your code by TimGebhardt on Thursday August 09, 2012 @05:37PM (#4363393)
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.