Newsgroups: comp.lang.ada,comp.lang.c++,comp.object,comp.lang.clos
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!gatech!howland.reston.ans.net!pipex!uknet!comlab.ox.ac.uk!sable.ox.ac.uk!lady0065
From: lady0065@sable.ox.ac.uk (David Hopwood)
Subject: Re: C++ not OOP?
Message-ID: <1995May19.022320.17275@inca.comlab.ox.ac.uk>
Sender: david.hopwood@lmh.ox.ac.uk
Organization: Oxford University, England
References: <dewar.797512974@gnat> <GIROD.95May15105836@dshp01.trs.ntc.nokia.com> <rshapiro-1605952054040001@ipa.bbn.com> <GIROD.95May17152642@ace.trs.ntc.nokia.com>
Date: Fri, 19 May 95 02:23:19 BST
Lines: 39
Xref: glinda.oz.cs.cmu.edu comp.lang.ada:30060 comp.lang.c++:128955 comp.object:31094 comp.lang.clos:2937

[comp.lang.cobol removed from Newsgroups]

In article <GIROD.95May17152642@ace.trs.ntc.nokia.com>,
Marc Girod <girod@trshp.trs.ntc.nokia.com> wrote:
>>>>>> "RS" == R Shapiro <rshapiro@bbn.com> writes:
>In article <rshapiro-1605952054040001@ipa.bbn.com> rshapiro@bbn.com (R Shapiro) writes:
>
>RS> Explain to me how any C++ environment could possibly support rapid
>RS> prototyping without dynamic, incremental compilation at the function/class
>RS> level.
>
>I agree: incremental compilation and linking would reduce the edit
>cycle, which would be useful. The fact that there is so far no
>environment providing these facilities (isn't there really?) does not
>mean that this is a problem with C++.

Yes it does.

I'm not trying to flame C++ here, but it's absurd to suggest that the design
of a language does not make a significant difference to whether it is
practical to interpret, or compile incrementally. In C++ there is significant
reliance at the implementation level, on the layout of data members, vtables,
etc, between classes.

(BTW, this is not due to static typing; there are statically typesafe
languages that are very suitable for incremental compilation, eg. Java,
Strongtalk).

These implementation dependencies do not exist in a method lookup based
language like Smalltalk or CLOS, which is one of the main reasons why they
are easier to interpret or incrementally compile. And it does need to be
relatively _easy_, rather than just possible, to achieve something, if it is
to be widely used.

This is a question of using appropriate tools. If you want to do rapid
prototyping, use a language that is suited for it. C++ isn't, imo.

David Hopwood
david.hopwood@lmh.ox.ac.uk
