dsill@NSWC-OAS.arpa (Dave Sill) (01/20/88)
In article <4186@eagle.ukc.ac.uk> "H.A.Shaw" <has@eagle.ukc.ac.UK> writes: [much editing] >What people appear to be forgetting is what C is for. >We have forgotten that C was originally a system programmers language. Right. What C "is for" and what C was originally are two different things. C's popularity these days is a testament to its suitability for other tasks. >C is one of a nearly infinite group of languages, each is good at >only ONE job. Right again, C is good for programming computers. >As a final point, when I was an undergrad in Physics, the Computing Lab refused >to teach C, as it was possible to pick up very bad habits from its freedom. >We were told that programming was like walking. One should learn in a >cushoned, small space before being let out into a big field where if you fall >nobody will catch you. This really ticks me off. You don't learn to be careful with guns by shooting blanks. Yes, C will let you do things you probably shouldn't, at least until you know what you're doing. But when you're ready to use them they're there, and you don't have to learn a new language first. >I wholeheartedly agree, and hope I write better C >programs now for three years of BASIC/PASCAL/FORTRAN/FORTH first. >They did teach [C] to third year Computer Scientists sometimes. This is much too late. Computer education should proceed from a hardware overview to machine language to assembler language to low- level compiled languages on up to high-level compiled languages. Teaching BASIC/Pascal/FORTRAN/Forth/etc first is like teaching algebra before arithmetic. BASIC is a bad joke. The bad habits that it imparts on students are particularly hard to unlearn (first impressions are lasting impressions). It oversimplifies the hardware-software interface to the point where it seems, to the student, to be performing magic. C on the other hand, is more transparent. It allows the student to see the gears turning. >PS: > If hack had been written in DDL or something similar, would >net.sources.bugs have all the traffic it now does? The number of bugs might be different, but the code would still be buggy. No language can preclude semantic errors. ========= The opinions expressed above are mine. "I shed, therefore, I am." -- ALF