From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-0.0 required=3.0 tests=BAYES_40 autolearn=ham autolearn_force=no version=3.4.5-pre1 Date: 26 Jan 93 15:56:04 GMT From: mfeldman@seas.gwu.edu (Michael Feldman) Subject: Re: Why and how do organizations select the OO Message-ID: <1993Jan26.155604.19230@seas.gwu.edu> List-Id: In article <24696@alice.att.com> bs@alice.att.com (Bjarne Stroustrup) writes: > [lots of good stuff deleted] >One way of expressing this is that companies (and individuals) wants mere >training (i.e. ways of using new tools without absorbing new concepts). >What they need is education (i.e. new concepts and their related techniques). Indeed. I am aware of a certain SE educator in the Ada world whose business card used to say "education manager." His customer base grew a good bit when he changed the title to "training manager." His customers didn't want "education." Too "academic", they said. Turns out he taught the same stuff, but they were willing to swallow it when he called it training. Sigh...No wonder we're losin' it to the Japanese... >Ada without some understanding of data abstraction, etc. seems to me to >be very nearly just Pascal, and C++ without some understanding of data >abstraction, etc. is just C with better type checking. Indeed. > >I don't know about the Ada world, but in the C++ world we do have a problem >with teachers and textbook writers who miss the connection between concepts >and programming language constructs and thus miss the point and makes learning >unnecessarily difficult for the students. Well, I can speak as a teacher of neophytes, who have _tremendous_ difficulty making the distinction. They identify the concept with the feature. I'm a pretty decent teacher, and working pretty hard at the distinction between, say, data abstraction and packages. Indeed, I was teaching DA several years before Ada even existed, in a data structures course. The course is _still_ data structures, and Ada is used as the language. Five years later, I'll run into students who say "Hi Mike. Remember me? I was your student in that Ada course." Makes me wanna scream. I am convinced that the only way to show people how to distinguish concept from language construct is to teach them _more than one language_, so that they can see for themselves what is universal and what is language-dependent. Alas, that is rarely possible in today's world, especially in industry. It's even hard in college courses (except comparative languages courses) to do two languages side-by-side. At the University of Washington last year I taught a freshman course whose requirements were 8 weeks of Ada followed by 2 weeks of Fortran. I was _very_ gratified at the way the students reacted to the 2-language model. Far from resisting it, they were fascinated by the similarities and differences. And I daresay they learned more about fundamentals by doing two languages than by doing one. Examples on request. It's very difficult to compare an apple. > > > Their state of knowledge of OO truly seemed to be "It's that stuff that > > C++ has and Ada doesn't." Some in the group were quite surprised to > > discover (from me) that Ada supports information hiding and private types. > > Their eyes glazed over when I got to the intricacies of inheritance. > >Maybe you focussed too much on the intricacies and too little on the >concepts :-) I don't experience serious problems getting the object- >oriented concepts and the C++ language mechanisms that support then >across - the problem comes when the ideas have to be applied to real >projects (exactly, as for the data abstraction concepts and the language >constructs that support them). I misspoke. I had about half an hour to give the "Ada viewpoint." Obviously there weren't too many intricacies discussed. The point was that I believed that for their situation, Ada's weak single inheritance could well be quite sufficient,so they could relax and stop fighting the mandate. DoD Ada implementation policies presume Ada's cost-effectiveness unless shown otherwise. I feel no need to trash C++ in order to show that Ada is viable, because that is all I have to show. I have no need to engage in a "my language is better than yours" crusade; I need only to show that my language will solve your problem in a cost-effective manner. I'm tired of pi**ing contests... Mike Feldman