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 499912
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: "Better" vs. Better
by lucas_maximus on Mon 12th Dec 2011 11:02 UTC 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[5]: "Better" vs. Better
by lucas_maximus on Mon 12th Dec 2011 19:12 in reply to "RE[4]: "Better" vs. Better"
lucas_maximus Member since:
2009-08-18

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 have something working, it is ridiculous to do a full rewrite. The only time I can see it making sense if the current platform is going to be depreciated, or fundamental core changes need to be made.

Re-factoring and rewriting modules is fine. Slowly changing the architecture is okay as well. It is pretty easy to do this after a few iterations.

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.


Agreed, but that doesn't mean that rewriting a working application is a good idea because it might be better in the future.

Many of the weird logic the applications have are there for very good reasons.

Reply Parent Score: 2

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

RE[5]: "Better" vs. Better
by dnebdal on Mon 12th Dec 2011 17:56 in reply to "RE[4]: "Better" vs. Better"
dnebdal Member since:
2008-08-27

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.


The largest problem with this is the way good enough is sometimes best - a working but horribly coded project now has some benefits over a well-coded one later.

Reply Parent Score: 1

RE[5]: "Better" vs. Better
by lucas_maximus on Mon 12th Dec 2011 19:22 in reply to "RE[4]: "Better" vs. Better"
lucas_maximus Member since:
2009-08-18

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


Oh comon, this is ridiculous. You can do sensible things the first time, but doing it "right" first time is a completely different matter.

I wrote a C# library the other day, a nice bit of OO programming. Very clean and encapsulated, today I found out a way to make it even cleaner ... While my first attempt was sensible ... tomorrow it will be perfect.

Reply Parent Score: 2

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