Path: utzoo!attcan!uunet!cs.utexas.edu!usc!zaphod.mps.ohio-state.edu!rpi!bu.edu!orc!decwrl!bacchus.pa.dec.com!e2big.mko.dec.com!ceomax!gillett From: gillett@ceomax..dec.com (Christopher Gillett) Newsgroups: comp.arch Subject: Re: It looks like he's at it again! Message-ID: <388@e2big.mko.dec.com> Date: 22 Jul 90 17:46:16 GMT References: <1990Jul21.004616.649@Stardent.COM> Sender: usenet@e2big.mko.dec.com Reply-To: gillett@ceomax.dec.com (Christopher Gillett) Organization: Digital Equipment Corporation, Semiconductor Engineering Group Lines: 158 In article <1990Jul21.004616.649@Stardent.COM> wright@stardent.Stardent.COM (David Wright @stardent) writes: >In article <64044@sgi.sgi.com>, karsh@trifolium.esd.sgi.com (Bruce Karsh) >writes: > >>I love the science part of computer science, but I am dissapointed with >>some of the religious-sounding beliefs that have attached themselves to >>the field. [...] >>I left the field and switched to mathematics where >>correctness was considered more important than cosmetics. > >And you can write incomprehensible proofs all day to your heart's >content? ( 0.5 :-) I agree that there are plenty of second-rate >CS departments where form doesn't follow function. [...] >But I still object to your tarring all CS people with this brush. It >doesn't apply to me or to a lot of other people I know. So either qualify >your remarks or stop making them. > Whoa! Slow down...pop a couple valium. I didn't see Karsh's comments as indicative of *all* computer science types. His remarks were about the typical computer scientist, not all of them. My background and degree are in computer science, and I found his remarks more accurate than offensive. Calm down. >>I still hope for a day when programming professionals will evaluate >>programs by how well they perform their intended function, not by how the >>souce code is indented and commented, or how portably they were >>written. (This is, by the way, how people who purchase software >>usually evaluate it). > >Yes it is. And that's because those people don't have to maintain the >code. But if you think they don't care about portability, you're wrong. >What if they want to buy new hardware? And in effect, they do care >how it's written, because they'll want improvements, and bug fixes. and >quality. Hard to get from spaghetti code. > Methinks you've missed Karsh's point. Too many CS programs put the emphasis on the esthetical beauty of a computer program. CS students tend to be evaluated on how their program source code looks, how it maps to flowcharts, how well it is commented and indented, etc (Ok, everyone who ever had a CS prof say something like "A subroutine is never more than x [pages,lines] long" raise your hands). While it is necessary to place some emphasis on these things, the Real World wants to know about performance and buginess. What got everyone excited when Phillipe Kahn and Turbo Pascal hit the market? Nobody gave a rats ass about how well it was engineered, or what the source code looked like. What everyone was cranked up about was how small and how fast the damned thing was. Borland Industries makes a vast majority of their money trading on the performance of their tools. No, you don't want spaghetti code. Yes, you want code that you can maintain. Yes, for most apps you'd like some platform independance. But these are not what drives your market. Accuracy, speed, and efficiency seperate the successes from the failures. >>If electrical engineering were taught like computer science, all the >>schematics would be drawn perfectly symetrically, would all use the >> [...deleted for brevity] >Pfui. The notion that a well-structured program is inherently slow >is bullshit. As for utility, well, you're right that it hasn't had >the attention it deserves. But that's independent of the existence >or non-existence of CS as a discipline, and has everything to do with >what users have been willing to bend over and take so far. > I agree with the assertion that well structured programs can perform as well as a hacked mess. Unfortunately, the notion of "well structured" as taught by the vast majority of universities leads to the kinds of programs that Karsh is discussing. Yes, the Big Ten of Computer Science may teach the principles correctly, but the 10 kazillion other CS schools don't do it right. This means that most of the computer science types coming out the school don't have the right ideas about program structure, data abstraction, information hiding, etc. >>Just what is the common base of knowledge that is basic to computer >>science? >... >>the undergraduate computer science grad will assuredly know >>how to indent code, how to decompose a problem into way too many >>subroutines, how to criticize the way a program is commented, and how >>to avoid learning about any particular computer's machine language and >>peripherals. > >I wouldn't give a degree to anyone like this. Can you cite an example >of a program that feels this is the right way to go? You make a lot of >claims about "CS does this", but your claims don't match my experience. > Most of the CS types I've encountered seem to have the point of view described by Karsh, at least upon leaving school. There is virtually no emphasis placed on understanding hardware, understanding how mahines work, or even on learning assembly language in most computer science programs. The CS program I took (circa 1984) was ACM accredited and had absolutely no courses in which hardware was discussed. The only course that came close was a logic circuit design course, and that was primarily the wonders of boolean algebra. Most of the courses were typical hammering away at good form, instead of striving for good function. After working for several different places in several different states, I've met and talked with a lot of CS types. The vast majority of these people had experiences similar to mine. >>My favorite example of the anti-intellectual current in CS is a paper by >>a very famous computer scientist in which he states that the teaching of >>certain computer languages should be treated as a criminal act. > >Dijkstra, wasn't it, on either Fortran or BASIC? > Based on the mail I got from folks regarding this question, it was Dijkstra, on COBOL. > >>Really good computer scientists don't often argue that >>there's no place for assembly language. But many typical one do. In >>my opinion assembly language is an underused technique with real power >>to make smaller, faster, cheaper systems. It's one of many techniques >>for doing this and the negative attitudes about it are completely >>unwarranted. > >No. It's too labor-intensive, and if you're working on a program that >really does need to run on multiple platforms, it should be a technique >of last resort. I use it if it's needed, but only if it's really needed. > Aha! Lets presume for a moment that you are truly a computer scientist, and that you buy into all the stuff that computer "science" teaches. So, you've got really good modularity, excellent functional decomposition, supporting design documents to explain the whole thing, etc. Doesn't it follow that you should be able to put in your assembly language routines such that you don't interfere too much with portability issues? Whenever I use assembly language routines or modules, they wind up getting abstracted down into the compatibility layer of my applications. That means that the entire application above the layer will port without modification to any conforming environment (in this case, an ANSI Standard C environ), and the compatibility layer varies on a platform-by-platform basis. I've written some pretty big apps this way, and ported them to fairly divergent platforms, and never suffered from budget overruns, or labor-intensive problems. Don't get me wrong here. I personally buy into all the aforementioned goodies: modularity, functional decomposition, design documents, etc. I even like to write code that is properly documented and in a form that is easy to comprehend. I just think your missing the boat about assembly language. Face it, if your architecting right (and you've already established that computer scientists know how to do this), then you can use whatever combination of languages you want and not die in the effort. > -- David Wright, not officially representing Stardent Computer Inc > wright@stardent.com or uunet!stardent!wright /Chris P.S. Ken Olsen speaks for Digital...I speak for me. #include --- Christopher Gillett gillett@ceomax.dec.com Digital Equipment Corporation {decwrl,decpa}!ceomax.dec.com!gillett Hudson, Taxachusetts (508) 568-7172