Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ames!elroy!usc!nunki.usc.edu!sawant From: sawant@nunki.usc.edu (Abhay Sawant) Newsgroups: comp.sys.ibm.pc Subject: Re: Why unix doesn't catch on Message-ID: <3718@nunki.usc.edu> Date: 3 May 89 01:15:44 GMT References: <7632@phoenix.Princeton.EDU> <256@jwt.UUCP> <2496@bucsb.UUCP> <274@tree.UUCP> <552@rna.UUCP> <13546@watdragon.waterloo.edu> Reply-To: sawant@nunki.usc.edu (Abhay Sawant) Organization: University of Southern California, Los Angeles, CA Lines: 58 In article <13546@watdragon.waterloo.edu> afscian@violet.waterloo.edu (Anthony Scian) writes: >In article <552@rna.UUCP> kc@rna.UUCP (Kaare Christian) writes: >>In article <274@tree.UUCP>, stever@tree.UUCP (Steve Rudek) writes: >>> This is *Microsoft*, >>> people: You know--the company which markets perhaps the best optimized >>> C compiler in the world. And they aren't writing OS/2 in C; or even >>> You suppose they're just stupid? > >Yes. A company that ignores history is doomed to repeat it.... >It is beyond comprehension >how anybody can develop an OS in assembly language this day and age. Objection 1: Microsoft C is certainly not the best optimized C compiler in the world. Apart from evidence from benchmarks etc. (after discounting for stuff like the Sieve which are worn out enough for the compiler to "recognize" them), the sheer *intelligence* of TC code is mind blowing. Try disassembling a .exe created with msc and compare with what you see with tc. That is what really sold the issue to me (apart from tc being better whenever *i* did a comparison). Objection 2: I think it's childish bashing microsoft along the lines "every sane person on the planet knows writing OS's in C is the best, surely they're being outrageously stupid to be writing on in assembly". Like everything else about writing an OS, the decision of assembly vs. C is one of the tradeoffs before the designer. I think there is little doubt that assembly offers speed while losing portability and becoming more expensive (time, people, money). You may choose to differ in the relative importance of these two to you: it's just that the people out there in Microsoft chose to think different. There is no absolute answer to this tradeoff, as with essentially any engineering tradeoff. I'm pretty certain that the performance which MS-DOS extracts out of it's hardware could not have been got by writing in C. So writing MS-DOS in assembly (all the way through version 3.3 by which time every PC in the world had all the memory a monster might need) cost them more but the bux they made on near 10 million PCs seems to suggest that the extra effort was well deserved. A monstrosity of a slow, bulky OS would've certainly impeded the success of the PC. *I*, think it was a great tradeoff. In engineering, "principles" are pretty meaningless: getting the job done well is all that matters (that is a principle). And what is "well" is a function of the design objectives at hand. *I* think writing OS/2 in assembly is an excellent idea. I've seen a big application like Ventura yearn for more computing punch on a 16 MHz 286: it's pretty clear that even with a single user single task machine, we need all the punch that we can get. So i'm thrilled that microsoft felt there was enough money in the PS/2 market to justify spending a lot on hand-writing in assembly. I'd like a lot of bang for my buck when i buy a PS/2 (not yet plonked the cash :-) ). Just my opinions... ------------------------------------------------------------------------------- You're never too old to have a happy childhood. ajay shah (213)745-2923 or sawant@nunki.usc.edu _______________________________________________________________________________