Linked by snydeq on Sun 11th Dec 2011 01:35 UTC
General Development Fatal Exception's Neil McAllister writes in favor of new programming languages given the difficulty of upgrading existing, popular languages. 'Whenever a new programming language is announced, a certain segment of the developer population always rolls its eyes and groans that we have quite enough to choose from already,' McAllister writes. 'But once a language reaches a certain tipping point of popularity, overhauling it to include support for new features, paradigms, and patterns is easier said than done.' PHP 6, Perl 6, Python 3, ECMAScript 4 -- 'the lesson from all of these examples is clear: Programming languages move slowly, and the more popular a language is, the slower it moves. It is far, far easier to create a new language from whole cloth than it is to convince the existing user base of a popular language to accept radical changes.'
Thread beginning with comment 499847
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: "Better" vs. Better
by ilovebeer on Sun 11th Dec 2011 17:54 UTC in reply to "RE: "Better" vs. Better"
ilovebeer
Member since:
2011-08-08

Totally agree, You should never do a rewrite on a piece of software because you instantly lose years worth of effort.

If all those years of effort took the software in the wrong direction and wound up crippling it more than helping it for future expansion, then yes, a complete rewrite is certainly the better option.

There's one constant that you should always consider as much as possible -- progression. If you want your language to survive the test of time, it not only needs to be good, it needs to be expandable/extendable. That is a key element in it's basic design. If you ignore it, you will pay the price later.

Reply Parent Score: 1

RE[3]: "Better" vs. Better
by Delgarde on Sun 11th Dec 2011 21:51 in reply to "RE[2]: "Better" vs. Better"
Delgarde Member since:
2008-08-19

"Totally agree, You should never do a rewrite on a piece of software because you instantly lose years worth of effort.

If all those years of effort took the software in the wrong direction and wound up crippling it more than helping it for future expansion, then yes, a complete rewrite is certainly the better option.
"


Even so, rewrites kill companies. No matter how painful it is to stick with the existing version, that's the version that's paying the bills.

It's all very well assigning developers to do the complete rewrite that in five years time will make everything better. But if you're spending all the effort on the rewrite instead of on keeping the old product going, well... you probably won't still be around in five years time.

Reply Parent Score: 2

RE[4]: "Better" vs. Better
by ilovebeer on Mon 12th Dec 2011 04:19 in reply to "RE[3]: "Better" vs. Better"
ilovebeer Member since:
2011-08-08

Even so, rewrites kill companies. No matter how painful it is to stick with the existing version, that's the version that's paying the bills.

It's all very well assigning developers to do the complete rewrite that in five years time will make everything better. But if you're spending all the effort on the rewrite instead of on keeping the old product going, well... you probably won't still be around in five years time.

That makes some big assumptions:

-that the software actually is paying the bills
-that it will take substantial time to do a working rewrite
-that the current troubled version is still usable and meeting the required needs

If all of that is true, I would tend to agree. If any of them are false, I can't say the same.

Reply Parent Score: 1

RE[3]: "Better" vs. Better
by lucas_maximus on Mon 12th Dec 2011 11:02 in reply to "RE[2]: "Better" vs. Better"
lucas_maximus Member since:
2009-08-18

I worked at one company where they decided they were going to rewrite the old product from scratch. 1 year later they had a product that they couldn't sell to anyone, while the old product with all of it problems the clients still wanted.

The old product is still going and has been bought by new customers and is still paying the bills. If the amount of effort for the rewrite had been spent refactoring the product ... It would probably would have none of the performance problems it currently has.

The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they've been fixed. There's nothing wrong with it. It doesn't acquire bugs just by sitting around on your hard drive. Au contraire, baby! Is software supposed to be like an old Dodge Dart, that rusts just sitting in the garage? Is software like a teddy bear that's kind of gross if it's not made out of all new material?

Back to that two page function. Yes, I know, it's just a simple function to display a window, but it has grown little hairs and stuff on it and nobody knows why. Well, I'll tell you why: those are bug fixes. One of them fixes that bug that Nancy had when she tried to install the thing on a computer that didn't have Internet Explorer. Another one fixes that bug that occurs in low memory conditions. Another one fixes that bug that occurred when the file is on a floppy disk and the user yanks out the disk in the middle. That LoadLibrary call is ugly but it makes the code work on old versions of Windows 95.

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

Edited 2011-12-12 11:08 UTC

Reply Parent Score: 2

RE[4]: "Better" vs. Better
by ilovebeer on Mon 12th Dec 2011 17:22 in reply to "RE[3]: "Better" vs. Better"
ilovebeer Member since:
2011-08-08

I worked at one company where they decided they were going to rewrite the old product from scratch. 1 year later they had a product that they couldn't sell to anyone, while the old product with all of it problems the clients still wanted.

The old product is still going and has been bought by new customers and is still paying the bills. If the amount of effort for the rewrite had been spent refactoring the product ... It would probably would have none of the performance problems it currently has.

The only thing that proves is that the rewrite was poorly handled. For every case where a rewrite was a disaster, you have a case where it was a great success and the old version was treated with good riddance.

If you create a new piece of crap, all you have is a new piece of crap. The problem isn't that you made something new, it's that you made it a piece of crap.

Reply Parent Score: 1

RE[4]: "Better" vs. Better
by Neolander on Mon 12th Dec 2011 17:52 in reply to "RE[3]: "Better" vs. Better"
Neolander Member since:
2010-03-08

I believe that "Do it right the first time" should become some kind of mantra for computer science.

Good code ages well and is easy to fix. It doesn't require rewrites.

The thing is, it takes a lot of mental discipline to actively apply this philosophy every day, including the worst ones, where you're lacking sleep and must ship something that is currently barely finished in one week.

Edited 2011-12-12 17:53 UTC

Reply Parent Score: 1

Bill Shooter of Bul Member since:
2006-07-14

Absolutely agree. Refactor first, Rewrite in different language, only if everything else fails, or if its just a fun hobby.

Reply Parent Score: 2