Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I dunno, maybe cause re-writing a 10 year old working app in another platform is not something that is easily achievable or even desirable.

http://www.joelonsoftware.com/articles/fog0000000069.html



I would still advocate migration even of 10-year old apps to new languages. You will learn the language and its frameworks better, you'll enrich your neural paths and many other things will suddenly become clearer, and you might even help your customer succeed even more. Worth the shot most of the time, I believe.

I am currently tasked with maintaining and upgrading a Spree 2.2 (ancient version) and Rails 4.0.8 (very old) based e-commerce shop and even slight modernizations are extremely painful and have proven impossible. The test suite I inherired is sorely lacking in several areas so I can't even rely on that. Most of the problems in the project are related to payments and real cart / order / payment flows and the payment processors don't provide sandboxing environment. Cute, right?

I tried once to upgrade it to the latest Rails 4.1.* and I drowned a weekend in fuzzy and frustrating tasks I can't even remember anymore, only to give up frustrated after what has practically been almost 3 work days fit in a weekend.

My point is, if you want your app not to die by itself (while adding some features and chasing 2-year old bugs that cost your customer money even today) and if you want to modernize it, you _will_ suffer. Not a matter of "if", it's a matter of "how and when".

One of my former customers used to say this about rewrites or maintenance: "Both approaches are gonna hurt a lot so we might as well suffer for the right cause". Granted that's not an universal rule but IMO it's quite on point for a good chunk of scenarios.


I was surprised by and love Paul Graham's comment on just this:

"Keep rewriting your program. Rewriting a program often yields a cleaner design. But it would have advantages even if it didn't: you have to understand a program completely to rewrite it, so there is no better way to get one loaded into your head."

http://paulgraham.com/head.html


Indeed! Even though I originally got that lesson from Martin Fowler (his absolutely legendary book "Refactoring"), I do see Paul Graham's article as an amazing source of this same wisdom as well.


Yes I think that's obviously true; I'm definitely not advocating huge app rewrites if that wasn't clear!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: