|Home » Resources » Rants
Week of July 30, 2004
Jim Rapoza takes Mozilla fans down memory lane.
Mozilla is Netscape is Mosaic - and once upon a time Mosaic was for all practical purposes the only web browser out there.
The Mosaic team wandered from the University of Illinois after matriculation to the US west coast like all true geeks, set up shop, and introduced their browser on the Unix platform. They called it Mosaic and they called themselves Mosaic too. They later changed their name to Netscape and changed the name of their product to Navigator.
Mosaic/Netscape eventually decided to enter the PC market. Word got around and they were invited to Redmond Washington to discuss the matter. Bill Gates told them in no uncertain terms they were not to do this. Mosaic/Netscape didn't see how Bill Gates could ever stop them, and so they proceeded - and learned later on how he could stop them. Mosaic/Netscape is no more, the shambles of the company bought up in 1998 by AOL, and Internet Explorer becoming the dominant browser on the web.
All that is changing today, and not only because IE users have felt the straw that breaks the camel's back: Mozilla, the open source evolution of Mosaic, is mature and has survived all the machinations of corporate suits over the past seven years. As Jim Rapoza of eWEEK puts it in his excellent article on the subject:
'Congratulations to Mozilla, which has proved that an open-source project can rise above lots of boneheaded moves. If companies truly want their open-source projects to succeed, they'll have a lot easier time if they just let the developers do their jobs.'
Rapoza goes on to recount exactly how Mozilla finally got their act together.
'Navigator's bloated code made it impossible to make necessary advancements... Thus the developers decided to scrap the Navigator code and build a Mozilla browser from scratch.'
Rick Downes, consultant at Radsoft, was involved in the Mozilla project at this time, albeit briefly. Downes downloaded the Mozilla source, poked around what was known as the 'Windows front end' (FE), picked a source code module at random, and cleaned it - from 300 lines of code to 19 (nineteen) in thirty minutes - and sent it in.
Mozilla responded with 'wow's and 'geez's. The code was referred upwards in the organisation and others wrote back invariably with the same lead-in question: 'how the ♠♣♥♦ did you do that?'
Mozilla needed help but had no funds. Code-cleaning, coming off Netscape 4, was a critical issue, but there was another issue not mentioned by Rapoza.
The Mosaic programmers had never worked with PCs. They had no contact with Microsoft Windows. When searching for a suitable programming environment, they'd chosen the market leader Microsoft Visual Studio with its concomitant Microsoft Foundation Classes.
The C compiler in Visual Studio was indeed the leanest and meanest in the industry, and successive releases up to but not past MSC 12.0 proved even better. But the MFC was not good, and was generally avoided by the programmers in Redmond. Sadly the development team at Mosaic did not know this.
The MFC is a hodgepodge of 'catchup' marketing politics borrowing from and bastardising technologies everywhere. In its simplest form it is a one-on-one wrapper for the 'real' Windows API. In its worst form it is a continual source of memory leaks, with some of the worst, most boneheaded implementations of others' good design ideas ever seen.
The model-view-controller (MVC) paradigm of Alan Kay's Smalltalk team at PARC was trampled beyond recognition; data exchange paradigms as used in NeXTSTEP were copied in a brutish form; but above all the code was not good: it was shaky, unstable, unproven, put together in the greatest haste to eliminate Borland as a market player - and it leaked memory like a sieve in a tsunami.
Mosaic did not know this. They assumed... But they assumed wrong. And only later, when they'd seen the destruction that Microsoft's MFC had caused, did they fully appreciate what a corner they'd painted themselves into. And at that point it was much too late. Netscape 4 for Windows almost visibly shook when run. It was a truly hopeless case.
The Mozilla managers who contacted Downes wanted him to literally yank out all the MFC code from the underpinnings of their browser and rewrite the whole ball of wax in better code - something that in the best of circumstances would have taken a not so insignificant team perhaps a half year or more to accomplish.
And all this of course without having the ability to provide recompense - Mozilla had no money. And all the while the Mozilla development forums were full not of more suggestions to gut the code and start anew, but of new K3WL features to add on to what essentially was an untenable foundation.
Downes of course refused the assignment. Mozilla slowly learned there was nothing they could do, and in the end opted for the only clear course: scrap the code and start all over again - which they did with gusto, creating the formidable Gecko rendering engine.
Which all goes to prove: the reason Mosaic aka Netscape aka Mozilla lagged for so long had little to do with the capabilities of the programmers. Yes, they were obstructed on several occasions by the leadership of AOL. But equally important was the role Microsoft played: it was their own development code which made Netscape get as bad as it did and helped IE take over the market.
And in case you weren't sure: no, the IE development team would never use the MFC in their code. As Microsoft employees they're all too aware of how crappy it is. They wouldn't touch the MFC with a barge pole - and never have.