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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b0d569080889afd6 X-Google-Attributes: gid103376,public From: Mike Yoder Subject: Re: A question for my personal knowledge. Date: 1999/05/13 Message-ID: <373AC668.4824FF07@decada.enet.dec.com>#1/1 X-Deja-AN: 477468946 Content-Transfer-Encoding: 7bit References: <1VEZ2.1515$I51.88140@carnaval.risq.qc.ca> <37372A84.641F2133@bigfoot.com> <7h8oe8$2js$1@cf01.edf.fr> <37382B0C.A95B6745@bigfoot.com> <7h9o21$9v4$1@nnrp1.deja.com> <7h9pei$aut$1@nnrp1.deja.com> Organization: Compaq Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 1999-05-13T00:00:00+00:00 List-Id: In article <7h9o21$9v4$1@nnrp1.deja.com>, Robert Dewar wrote: > ... On the contrary, switching to a > new language often illuminates principles that are hard to > understand in a language that does not support or is actively > hostile to these principles. Additionally, it (unfortunately) matters significantly which is the *first* language learned, especially to those programmers that aren't exposed to a great many languages. When I taught programming using Pascal at Boston University in the late 70's, the students who had never programmed before found the material easy, while those who had already learned FORTRAN or COBOL were constantly struggling. Outside the classroom I see a similar effect in those who learn C, C++, or BLISS first and then write Ada code: the most noticeable symptom is an overuse of Unchecked_Conversion (even for pointer types!). It's uncertain that that is the most damaging effect, but it alone is quite bad. If I were to teach programming today, I'd choose Ada 95 as the vehicle. It is a serious detriment to pedagogy (and to programming!) to muddle together the vehicle of polymorphism and the vehicle of abstraction as C++ does. (This impinges on the discussion in another thread, which I will nevertheless refrain from joining.) In case it is inobvious to some what I'm referring to, I mean the tagged type for polymorphism and the package for abstraction; in C++ these both become classes.