From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,a9f32f7699236ef1 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,7fb761492573daee X-Google-Attributes: gid103376,public X-Google-Thread: 10db24,a9f32f7699236ef1 X-Google-Attributes: gid10db24,public From: scottw@bmtech.demon.co.uk (Scott Wheeler) Subject: Re: Which first-course languages? (was: What schools use Eiffel (was: No top schools use Ada)) ? Date: 1995/04/20 Message-ID: #1/1 X-Deja-AN: 101283298 sender: usenet@demon.co.uk references: <3mq0jd$r10@kaiwan009.kaiwan.com> followup-to: comp.lang.eiffel,comp.lang.ada,comp.edu x-posting-host: bmtech.demon.co.uk organization: British Maritime Technology reply-to: Scott Wheeler newsgroups: comp.lang.eiffel,comp.lang.ada,comp.edu Date: 1995-04-20T00:00:00+00:00 List-Id: In Article Spencer Allain writes: >> I'm hoping that the only reason for the statement >> >> but we wouldn't even have considered employing him if he hadn't learnt C under his own steam. >> was because the job involved real-time systems where every millisecond counts or the company didn't want to invest a couple of weeks teaching a new person the syntax of a particular language. No. As a matter of fact, we don't want him to program in C - at present our main language is C++, but I don't have a religious attachment to that (as a matter of fact, I used to use Modula as my main language before moving to C). Also in a computer science course I would prefer that people start with a "purer" language: my preference at the moment would be for Eiffel. My point (obscurely made) was that a CS course should not *only* deal with academic languages, particularly ones as far removed from everyday life as Miranda. If we take Eiffel as an example, it has certain specific lessons to teach regarding encapsulation, data hiding, re-use by templates. The main lesson, of course, is the very practical idea of programming by contract, in order to build reliable software. Fine. Now suppose someone takes a course which emphasises Eiffel heavily. Almost certainly the student gets a job involving programming, and almost certainly it won't be in Eiffel. To profit from the lessons learned, the ex-student has to apply the same lessons to the environment being used - C++ is quite likely these days, and it is sufficiently flexible to support most of the same ideas. In practice, what we get is likely to be very poor, because the course didn't cover adapting the techniques to the environments which will probably be encounted, and most students won't think this through in depth themselves. Now why don't we use Modula, or Oberon, or Eiffel, or whatever? It's not because C++ is the flavour of the month, or not directly. It's because the factories we work with want to use PCs, preferably running Windows (don't tell me you don't like it - *we* don't like programming it!). While all of those languages are supported on PCs, the compilers and environments (debuggers, GUI class libraries, browsers, integrated editors) are very weak compared to C++, the proprietary Borland implementation of Pascal, and "Visual BASIC". As I mentioned, I prefer Eiffel myself, but the compiler I have is simply not a viable development environment, and NICE hasn't standardised the vital class libraries yet so we would be locked in to one vendor. I would prefer it if the "teaching" languages could also be "working" languages, but as yet only Pascal has made that transition, albeit heavily extended. An final point is that it is certainly possible to learn the syntax of most languages in a couple of weeks, as you mention. The trouble is that this is like teaching someone to drive by showing them the controls of a car: it's only a beginning, it doesn't show them how to drive safely or comfortably. >> Personally, I've found that individuals who have a background in many languages (ie. different types of thinking) are generally "better" programmers. They may not be able to optimize a loop as well as a hacker who really knows one language, but they often find a way to remove the loop completely by using a different concept. I absolutely agree. I think the only way we can argue over this is whether modern programmers should learn some assembler (which side do you want to argue?) Scott (pass me that COBOL manual) Wheeler