comp.lang.ada
 help / color / mirror / Atom feed
From: Erik Naggum <erik@naggum.no>
Subject: Re: C++ not OOP? (Was: Language Efficiency
Date: 1995/04/21
Date: 1995-04-21T00:00:00+00:00	[thread overview]
Message-ID: <19950421T230840Z.enag@naggum.no> (raw)
In-Reply-To: 3n8rjd$90a@disunms.epfl.ch

[Fernando Mato Mira]

|   In article <3n8jdv$jer@watnews1.watson.ibm.com>, ncohen@watson.ibm.com (Norman H. Cohen) writes:
|   
|   > It should be noted that even in languages without direct linguistic
|   > support for multiple dispatch, the same effect can be achieved in a
|   > straightforward way by redispatching.
|   
|   Of course. And you can achieve the same effect as single-dispatch by
|   using function pointers in a C program..

unless I have missed something crucial, I think both of you may have missed
something crucial.

your idea seems to be to have Grand Unifying Classes from which devices and
shapes inherit Grand Unifying Methods, such that all shapes are implemented
using a set of abstract methods that all devices implement.  I object to
the very idea of Grand Unifying Classes, on the grounds that abstraction
that achieves a Unifying Abstraction over devices (in particular) will have
great cost in both the abstraction process and the implementation, more
notably the abstraction process.  whereas it is nearly trivial to design
and implement drawing a shape on a device using device-specific code, it is
exceedingly hard to design the Abstract Device that will capture sufficient
power of real devices, not to mention ways to optimize the Grand Unifying
Methods for a particular device.

one of the reasons that I found "object-oriented" programming in C++ to be
exceedingly hard was the requirement to make counter-intuitive and overly
abstract abstractions only to conform to the lack of ability to dispatch to
the proper classes.  I have only experimented with CLOS and Dylan, but what
I found was indeed that I could write better code to do specific tasks, and
that I could intuit the abstract classes, if and when appropriate _after_ I
had the necessary experience to talk about them, and _after_ I had a chance
to decide whether they were indeed appropriate.  for me, programming is a
learning process, and I found that C++ was actively hindering that process,
whereas both CLOS and Dylan encourage me to make abstractions when I have a
greater understanding, an understanding that could not exist prior to
design and implementation of individual subclasses of some Unknown Grand
Unifying Class.

maybe I'm doing something wrong, but premature abstraction seems as bad as
or worse than premature optimization, both of which are encouraged by C++
and discouraged by both CLOS and Dylan.

(I'd appreciate if someone more experienced in either language would let me
know if I'm wandering off in the wrong direction.)

#<Erik>
--
sufficiently advanced political correctness is indistinguishable from irony




  reply	other threads:[~1995-04-21  0:00 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1995-04-02  0:00 Language Efficiency Robert C. Bethel
1995-04-04  0:00 ` Harold P Zbiegien
1995-04-04  0:00   ` Larry Kilgallen
1995-04-06  0:00     ` Robert Dewar
1995-04-04  0:00   ` Kennel
1995-04-05  0:00     ` Ray Toal
1995-04-07  0:00     ` Robert Dewar
     [not found]       ` <3m9o9q$igf@stc06.ctd.ornl.gov>
     [not found]         ` <D6ss6z.Gvw@mcshub.dcss.mcmaster.ca>
     [not found]           ` <dewar.797512974@gnat>
1995-04-19  0:00             ` Adam Beneschan
1995-04-19  0:00               ` Robert Dewar
     [not found]             ` <3mbmd5$s06@icebox.mfltd.co.uk>
1995-04-19  0:00               ` Multiple dispatch (was Re: C++ not OOP?) Kenneth Almquist
     [not found]               ` <D6uA77.Lqp@mcshub.dcss.mcmaster.ca>
     [not found]                 ` <3mcfbf$psl@acmez.gatech.edu>
     [not found]                   ` <3mgnkc$e3j@atlantis <3muaif$46u@atlantis.utmb.edu>
     [not found]                     ` <3n0lsu$nio@druid.borland.com>
     [not found]                       ` <3n0uvi$8jt@atlantis.utmb.edu>
1995-04-19  0:00                         ` C++ not OOP? (Was: Language Efficiency Fernando Mato Mira
1995-04-19  0:00                           ` Curtis Bass
1995-04-19  0:00                             ` David Weller
1995-04-20  0:00                               ` Curtis Bass
1995-04-20  0:00                                 ` David Weller
1995-04-20  0:00                                   ` Robert Dewar
1995-04-21  0:00                                     ` Curtis Bass
1995-04-21  0:00                                       ` Robert Dewar
1995-04-20  0:00                                   ` Curtis Bass
1995-04-21  0:00                                     ` Robert Martin
1995-04-21  0:00                                       ` Ed Osinski
1995-04-21  0:00                                     ` Fernando Mato Mira
1995-04-21  0:00                                 ` Robert Martin
1995-04-20  0:00                         ` Matt Austern
1995-04-21  0:00                         ` Robert Martin
1995-04-21  0:00                           ` Curtis Bass
1995-04-21  0:00                         ` Matt Austern
1995-04-22  0:00                           ` Robert Martin
1995-04-22  0:00                             ` OOAD courses by Object Mentor cjames
1995-04-22  0:00                           ` C++ not OOP? (Was: Language Efficiency David Weller
1995-04-21  0:00                         ` Robert Martin
1995-04-21  0:00                           ` Curtis Bass
1995-04-21  0:00                         ` Ed Osinski
     [not found]                   ` <3mcoh6$add@Starbase.NeoSoft.COM>
     [not found]                     ` <3mdrpf$3o9@disunms.epfl.ch>
     [not found]                       ` <dewar.797608300@gnat>
     [not found]                         ` <3mg45s$5r7@disunms.epfl.ch>
     [not found]                           ` <3mjc8c$630@crcnis3.unl.edu>
     [not found]                             ` <D71Gs9.2FG@nntpa.cb.att.com>
     [not found]                               ` <EACHUS.95Apr17162921@spectre.mitre.org>
     [not found]                                 ` <3n1als$ksi@no-names.nerdc.ufl.edu>
1995-04-19  0:00                                   ` Multiple dispatch (was Re: C++ not OOP?) Fernando Mato Mira
     [not found]                           ` <1995Apr13.152104@di.epfl.ch>
1995-04-21  0:00                             ` C++ not OOP? (Was: Language Efficiency James McKim
     [not found]                   ` <3mgnkc$e3j@atlantis.utmb.edu>
     [not found]                     ` <3mk65q$1kti@watnews1.watson.ibm.com>
     [not found]                       ` <3muavq$46u@atlantis.utmb.edu>
1995-04-21  0:00                         ` Norman H. Cohen
1995-04-21  0:00                           ` Curtis Bass
     [not found]                     ` <1995Apr13.180317.3308@rcmcon.com>
     [not found]                       ` <3muaif$46u@atlantis.utmb.edu>
1995-04-21  0:00                         ` Robert Martin
1995-04-21  0:00                           ` Curtis Bass
1995-04-21  0:00                             ` Robert Dewar
1995-04-22  0:00                             ` Robert Martin
     [not found]                 ` <dewar.797566928@gnat>
     [not found]                   ` <D6vxDG.JKJ@mcshub.dcss.mcmaster.ca>
     [not found]                     ` <dewar.797636710@gnat>
     [not found]                       ` <D6xF22.38H@mcshub.dcss.mcmaster.ca>
     [not found]                         ` <dewar.797729041@gnat>
     [not found]                           ` <3msdop$862@stc06.ctd.ornl.gov>
1995-04-19  0:00                   ` Paul Graham
1995-04-19  0:00                     ` Robert Dewar
1995-04-19  0:00               ` C++ not OOP? (Was: " Harley Davis
1995-04-19  0:00               ` Multiple dispatch (was Re: C++ not OOP?) Robert I. Eachus
1995-04-21  0:00               ` Robert I. Eachus
1995-04-21  0:00               ` C++ not OOP? (Was: Language Efficiency Norman H. Cohen
1995-04-21  0:00                 ` Fernando Mato Mira
1995-04-21  0:00                   ` Erik Naggum [this message]
     [not found]               ` <MATT.95Apr17124932@physics10.berkeley.edu>
     [not found]                 ` <3mujnl$4u8@atlantis.utmb.edu>
1995-04-20  0:00                   ` ron house
1995-04-21  0:00                   ` Robert Martin
1995-04-21  0:00                     ` Curtis Bass
     [not found]         ` <dewar.797469506@gnat>
     [not found]           ` <1995Apr10.095958@di.epfl.ch>
     [not found]             ` <dewar.797513130@gnat>
     [not found]               ` <1995Apr10.165638@di.epfl.ch>
     [not found]                 ` <D6yGqv.4BG@nntpa.cb.att.com>
1995-04-21  0:00                   ` Fergus Henderson
1995-04-22  0:00                     ` Kenneth Almquist
1995-04-19  0:00       ` Fergus Henderson
1995-04-19  0:00         ` Robert Dewar
1995-04-20  0:00           ` Kennel
1995-04-19  0:00             ` Robert Dewar
1995-04-20  0:00   ` Matt Austern
1995-04-21  0:00   ` Robert I. Eachus
1995-04-04  0:00 ` Bob Kitzberger
1995-04-05  0:00   ` Mike Wilson
1995-04-05  0:00     ` David Weller
1995-04-05  0:00     ` Larry Kilgallen
1995-04-05  0:00 ` Mitch Gart
1995-04-05  0:00 ` Lawrence Free/ A.F. Software Services
1995-04-06  0:00 ` Ken Leidner
1995-04-06  0:00   ` Larry Kilgallen
  -- strict thread matches above, loose matches on Subject: below --
1995-04-20  0:00 C++ not OOP? (Was: " Wes Groleau
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox