Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!uunet!bfmny0!tneff From: tneff@bfmny0.UUCP (Tom Neff) Newsgroups: comp.lang.misc Subject: Re: Non-professional programmers (was: Which language to teach first?) Message-ID: <14577@bfmny0.UUCP> Date: 22 Aug 89 04:50:16 GMT References: <13380@megaron.arizona.edu> Reply-To: tneff@bfmny0.UU.NET (Tom Neff) Organization: ^ Lines: 53 Koldinger's point is correct, Gudeman's is actually arrogant. Every good engineer understands elegance of design. (Programmers as a class not only don't have a corner on that market, we're not even big players.) What a good engineer may not necessarily share with a programming whiz is that peculiar aptitude for solving the little symbolic mind puzzles which 20th century orthodoxy has decided epitomize "elegance" in programming. A few do share it, of course. However to the extent one is a good and useful engineer, time spent being an "elegant" programmer is time misused. It's not what they train and pay engineers to do -- however often they end up having to do it anyway these days. I know this, if I go halves with my draftsman's night school tuition so he can move up to steam boiler design, he had damn well better spend those nights learning his steam tables and not trading clever "C" functions with CS kids! The really complicated stuff (from a software design standpoint) which nonetheless does basic things from an engineering point of view (like CAD/CAM or project documentation systems) should be written by professional programmers -- and in fact already is. Engineers just consult in the design, since they are supposed to know what they want. (Do they? Separate issue :-) ) But the simple stuff (from a CS standpoint) that does complicated engineering things (like beam stress, structural analysis, fluid dynamics etc) should be programmed by engineers, with whatever CS professional support is required to keep from wasting the engineers' time worrying about peripheral stuff. And "elegance" is peripheral. The easiest-to-write program that gets the right answers (now AND later) is central. I am not saying that FORTRAN is the best of possible languages for engineers to use, in fact it wastes their time on just some of those peripheral things we don't pay them for, like worrying about how an EQUIVALENCE statement's going to work. But some language should exist, FOR engineering, such that its basic structure isn't offensive to modern understanding of how programs work (as BASIC and FORTRAN often are), yet it is directly usable in the engineering workplace once you know the whole language. Maybe Ada is it, I don't know. I get the sense that if so, it's not quite ready. When micros beef up to the point where any engineering student can afford a PC that runs Ada, you might see it. Even then FORTRAN would have to be learned because there is decades' worth of backlog to support (and believe me, some of these FORTRAN number bangers have been running the same program for 20 years or more! If it ain't broke...). But it would be an advanced elective for those who anticipate working (or find they need to work) with old code. Surely if you taught the right language to begin with, FORTRAN would be easy to pick up as a sideline later. Guess I ran on - they got me started. :-) -- "We walked on the moon -- (( Tom Neff you be polite" )) tneff@bfmny0.UU.NET