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

A rewrite is very hard, specially from a ancient, spaguetti monster. Keep it in the same language or not is not the biggest issue, IMHO, except if we are talking about a key library not available elsewhere or a niche where that language is just the BEST.

I have done severals. Changin languages, database engines, architecture, styles... even do the same thing several times in the same project!

And each time, I see a lot of code reduction. Specially, if I can change the language!. In one of them, I reduce by the butloads some badly C# project to python. I meant, close to 1000 files to few dozens. Yep, if we are talking about spaguetti, then that could compresse that well ;)

In fact, I think the action of change language (or move to the most recent versions with the most modern libraries/dependencies possible) is the SIMPLEST way to reduce the load of the job.

I do this all the time. Each time obj-c give some new trick that cut code, I apply it as fast as possible, across all my codebase. I learn to do that after the most insane upgrade/rewrite from .NET 1 to 1.1 then 2.0 that kill us because the boss wait to much.

The BEST way is obviously not bring (again) the same mistake that create that monster in first place. THAT is what make hard/impossible the task in the average corporation, because are the cultural problems that cause the biggest mess.

Also, is necesary to keep old project alive, and (this is something that bite me once) truly have the most hyper-perfect data upgrade/syncronization possible to minimize downtime and have real data from the start... real but clean! This way I create a 3-tier version in visual foxpro+sql server of a fox/dos app that was deployed in +2000 places with non-tech people before the internet, sucesfully (bar the first couple of tries ;)).



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

Search: