Fog Creek Software
Discussion Board

Rebuild from Scratch

Perhaps my memory is playing tricks on me, but...

Wasn't a couple of years ago Joel was slagging off Netscape for making such a strategic blunder of throwing away their app source code and starting again from scratch.

"Only Microsoft can do that because they make their own gravity" or something along those lines...

And just recently, Joel praising the Mozilla for making such an amazing browser and freeing him from the bloated and uncompetitive IE

ah, here it is..

I'm sure I'm going to get shot down on this, but I think there is a glimmer of irony here ;-)

PS Love the site Joel.

Giles Gregg
Thursday, June 17, 2004

He also said that Microsoft has essentially been doing nothing with IE for the last couple of years.

Thursday, June 17, 2004

I love the site too, but agree that Joel periodically eats his hat.... case and point:

Remember this?

And from the latest article:
"Don't get me wrong... I think .NET is a great development environment and Avalon with XAML is a tremendous advance over the old way of writing GUI apps for Windows..."

Thursday, June 17, 2004

To be fair, pickle, the article you linked to is dated July of 2000.  That's the problem with putting things in print -- people are still reading what you wrote years and years later. =)

Let's take a ride in the Delorian for a bit of perspective...back then .NET really was just a bunch of marketing hype.  If you tried to figure out what it was, all you got was a bunch of nonsense, and you felt more confused than when you started (at least that was my experience).  There was this big push to "get ready for .NET!" before anyone even knew what the darn thing *was*.  He was right to criticize MS for letting their marketing weenies off the leash.

Since then, MS has actually made a couple releases, and it's now much more clear what the actual product is, so I think it's fine that he's revisited his opinions on the platform now that there is so much more information available.

Can't comment on the OP cause I'm not catching the reference to Joel espousing the merits of Mozilla recently.  It was probably in his latest article or something, but I'm feeling a bit brain dead right now :)

Thursday, June 17, 2004

It's not that it isn't possible to make great software when you rewrite, it's that by the time you DO you probably will be out of business.

Like Netscape.

It is very possible that if they had refactored Netscape that they could have had a browser as good as FireFox is today, but had it in 2000.

It's a cost/benefit thing. Very few companies are sitting on enough money to be able to rebuild things from scratch and survive until they're finished.

The best news I read last year was that one of my competitors is rewriting their application completely. :-)

Tim Sullivan
Thursday, June 17, 2004

"Very few companies are sitting on enough money to be able to rebuild things from scratch and survive until they're finished."

As of a few years ago anyway (I'll be vague that way no one can tell me I'm wrong), Word was still written on the same pre-MFC code base.  I don't know if that is still true of Office XP, but anyway it shows that sometimes even having millions to burn isn't enough to make a rebuild worth it.

Thursday, June 17, 2004

Geeezz ... the refactor buzzz. The problem is that Joel only works with the SuperSmarts, that UberCoders, WhizKids, and WunderKinds so refactoring their code is a breeze. He ought to see the dreg that us common folk exude.  We will do the exact same thing in 10 different places. Every variable is global.  Everything is trusted. We make no errors but we like to put print statements all over the place that are commented out most of the time. The only comments are 4 letter words.  We like to include files which include files and maybe we'll include a file twice and we comment out reams of code without making it obvious the code is commented out or difficult to do bracket matching because we don't use version control and we don't making any errors anyhow.

Depending on the nature of the orginal code they might still be working on refactoring to get the bugs out but they probably would have a completely new team as the last few would have gone bananas.

When people talk of no need to build from scratch, that just some refactoring will do .... I really wonder where they come from.  When I refactor I usually have just identified patterns of code that can be encapsulated and I'll do it to make my life easier. But when you have code like this you have architectural issues as well. I guess a problem with rebuilding from scratch is you get people who involved who just ruin everything. I personally refactor all the time without telling anyone ... often times people think I'm slow and they forget how often the code I have to cover for was popping up bugs whereas afterwards it runs smoothly.  Not to say that my own code doesn't also need refactoring as I'm just a schmo, no whizkid like the guy who originally wrote netscape.

Thursday, June 17, 2004

Good point Joe, that's a bit unfair of me.  I'm suddenly remembering how confused I was when first reading those white papers... although I remember thinking the CLR sounded very java-like.

Thursday, June 17, 2004

Good points made people, and I pretty much agree with it all. In any real business environment rebuilding from scratch will finish you off.. depends on the size of your application and what it does an' all that jazz, and hey, guess what, Netscape in the end bought the farm..

Firefox does appear to be the phoenix rising from those ashes though. "The Son Of..." that business decision that killed Netscape may revenge itself upon the MS beast that went on to dominate the land, and then like all conquerers, grow fat and lazy.

Who knows, in 2005 IE may be looking over its shoulder at this young upstart. If there is a sponsor for this new challenger...

:-D (apologies, should have been a writer)

I wonder where we would be now if back in 2000 Netscape had carried on with their existing code base...

Giles Gregg
Thursday, June 17, 2004

"We will do the exact same thing in 10 different places. Every variable is global.  Everything is trusted. We make no errors but we like to put print statements all over the place that are commented out most of the time."

Hehe. Sounds like me.

I like to sprinkle MessageBoxes liberally throughout my code that ultimately get commented out for production.

Unless I really work hard at it, I typically end up with one huge sub procedure.

When I DO use multiple subs/functions I usually end up making a few dozen public variables so they can all share information.

My data processing applications have a nasty habit of locking the UI while processing. Gotta figure out threading some day.

If I didn't have the internet to search for the solution to a problem, I'd be dead meat.

Oh, and I'm the lead consultant/programmer for a consulting firm :)

Name withheld to protect the VB
Thursday, June 17, 2004

I am so glad I gave up client-side programming a long time ago. Now I am the DBA, who rules the server! It's alive! Ha!Ha!Ha!

Klaatu Barada Nikto!

Data Miner
Friday, June 18, 2004

*  Recent Topics

*  Fog Creek Home