Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!uwm.edu!zaphod.mps.ohio-state.edu!mips!sgi!decwrl!bacchus.pa.dec.com!deccrl!decvax.dec.com!ima!cfisun!stardent!wright From: wright@stardent.Stardent.COM (David Wright @stardent) Newsgroups: comp.arch Subject: Re: It looks like he's at it again! Message-ID: <1990Jul21.004616.649@Stardent.COM> Date: 21 Jul 90 00:46:16 GMT Organization: Stardent Computer, Newton MA Lines: 112 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. When I was an undergraduate in CS, I became very frustrated >with what we were taught. We were bombarded with information about how >programs "should be" structured, but usually the end-result of all this >structuring was slow, user-unfriendly, huge programs. Much of what we >did was completely unconcerned with what the program did for the user. >Instead it was concerned with a lot of cosmetic aspects of program >designs. 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. Instead, form becomes everything. The really good people in the field recognize this (Tony Hoare has made a few pithy comments), but in all too many cases, it really does become like a religion where the ceremonies are everything and the inner meaning has been lost. 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. >Portability, modularity, programming style, and extensibility are >religious issues, Their general necessity has never been proven, Oh, come now. While it's easy to pick out specific examples of programs where any given one of these properties need not apply, there are plenty of others where it's obvious that they do apply, and if they aren't used, there'll be hell to pay later. It's the notion that these goals can only be achieved by working in ONE SPECIFIC WAY that needs to be shot down. They aren't a panacea, because, for example, extensibility is a hard thing to get right, and if an extension is needed in a way that the original coder did not foresee, then there's no gain in that case. But what would you have us do instead? Write every program as one huge main procedure? No? Then maybe these techniques do have some value after all? >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. >If electrical engineering were taught like computer science, all the >schematics would be drawn perfectly symetrically, would all use the >very same circuits, would be governed by standards which would add a >fortune to their costs. TV's would display maybe 5 frames per second, >and would have no audio. You'd have to use a soldering iron to change >the channel. They'd only have one channel, but they'd all be >networked. You'd have to have a system administrator to install one. 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. >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. >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? The point being made was that learning a language with many restrictions tends to crimp your ability to analyze a problem. And it's true. For example, people brought up on Fortran IV don't tend to think of working through an array from the high index to the low, because DO-loops only index up. It wasn't denigrating teaching and learning. It was denigrating forcing people to think in excessively restrictive ways. >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. In effect, we aren't really that far apart, but you generalize too much, and as we know, all generalizations are bad. -- David Wright, not officially representing Stardent Computer Inc wright@stardent.com or uunet!stardent!wright Join the war against violence