comp.lang.ada
 help / color / mirror / Atom feed
From: bs@research.att.com (Valerie Torres)
Subject: Re: What is wrong with OO ?
Date: 1997/01/04
Date: 1997-01-04T00:00:00+00:00	[thread overview]
Message-ID: <E3I8GL.AuH@research.att.com> (raw)
In-Reply-To: JSA.97Jan1181506@alexandria


Jon S Anthony (jsa@alexandria) writes:

 > In article <5acjtn$5uj@news3.digex.net> ell@access1.digex.net (Ell) writes:
 > 
 > > Jon S Anthony (jsa@alexandria) wrote:
 > > : With respect to this "led/leads" claim: Such as?????  I can't think of
 > > : _any_ where this is true.  Though I can think of at least one
 > > : important _implementation_ aspect where this seems to be true.
 > > 
 > > Led (first or second) wrt the OO paradigm: Private data members, static
 > > resolution of overloaded functions, protected members, and multiple
 > > inheritance. Correct me if I'm wrong.  Remember this is wrt the early
 > > '80's.
 > 
 > Recheck your facts.  Led/lead means "first" to me and certainly
 > carries that connotation around with it even if you want to pull a
 > Humpty Dumpty.

It is very important getting the fact straight on a topic like this where
many seem keen on confusing the question "is C++ innovative and if so
compared to what and in which ways?" with "is C++ my favorite programming
language?"  or or even "is C++ perfect?" (my opinion: it is in some ways,
it is for many things, it is not).

The origins of C++ and the reasoning behind the various design decisions
are well documented:

	Bjarne Stroustrup: A History of C++: 1979-1991.
	Proc ACM History of Programming Languages conference (HOPL-2).
	ACM Sigplan Notices. Vol 28 No 3, pp 271-298. March 1993.
	Also in History of Programming languages
	(editors T.J.Begin and R.G.Gibson)
	Addison-Wesley, ISBN 1-201-89502-1. 1996.

	Bjarne Stroustrup: The Design and Evolution of C++.
	Addison-Wesley. 1994. ISBN 0-201-54330-3.

Note that the paper went through HOPL2's strict peer review process so
that the likelyhood that what is claimed to be a fact really is a fact
is much higher than in a net posting, in an unrefereed paper, or in a
paper from a commercial journal.

To the best of my abilities, the D&E book agrees with the HOPL paper on
issues covered in both but provides much more information and context.

It would have been nice if comparable information existed on the origins
of most major languages. That would have made it easier to understand
the different languages in context and see how ideas moved through the
programming communities. The HOPL papers is a good start, but they differ
too much in what kind of information they supply and tend not to be
sufficiently detailed for my taste. Also, HOPL covers only a few languages.


 > Private data member stuff was in various languages
 > before "C with classes" was even conceived (e.g., CLU, Ada83).  It
 > certainly existed in Eiffel before C++ was christened.  Protected
 > capability was certainly in Eiffel-1 which predates C++.  Same with
 > overload resolution (e.g., Algol68 had this as did Ada 83 compilers
 > that were in the field before CWC or C++).  MI was in Eiffel from the
 > start and that predates its appearance in C++ for sure.

First of all, we must be careful about dates. C with classes had "private"
in 1979 and protected around 1981. Data abstraction language (such as Ada83)
tends to have private only (you need inheritance for the private/protected
distinction to be meaningful) whereas OO language (such as Smalltalk) tends
to have protected only (whatever it may be called).

I don't know if any language having both before C++ and I don't know of
any earlier language expressing the dinction between implementation
inheritance (private base) and interface inheritance (public base,
subtyping). This pre-dates Liskov's formulation of her substitution
principle by about 8 years. It is of course possible that some language
had equivalent facilities at the time I designed those features for
CwithClasses/C++ or that someone somewhere wrote a paper discussing
the issues, but I didn't know of one so the protection facilities
of C++ are independently developed. In addition to private, protected,
and public, C++ offers the mechanism for selectively including names
from a base in the interface of a derived class. That too may have been
an innovation, but I don't really know.

C++ introduced constructors with the possibility of having several as
well as destructors (around 1980). All languages that support information
hiding provides some form of initialization (and certainly Simula did),
but I think the C++ mechanism provides a degree of flexibility that was
novel.

It is hard to really pin down what is innovative and what is not. For
example, I credited Algol68 with C++'s ability to have declarations
in conditions so that you can declare, initialize, and test in one
place. However, I was (later) told by one of the people involved in the
Algol68 design that although Algol68 logically ought to have had that feature,
they didn't think of that in the right way at the right time, so Algol68
doesn't allow declarations in conditions. In other words. I had deduced
that feature from the structure of Algol68 and failed to verify.

There are literally hundreds of details that one could examine to try
to determine their exact antecedence and give credit where credit is
due. I do some of that in the history paper and in D&E, but here I'd
like to point to a couple of bigger issues.

C++ was designed to allow design and programming techniques from Simula
to be used in the context of systems programming and other applications
where run-time and space were critical. On way of looking at the task
I set myself was to make data abstraction and object-oriented techniques
affordable and accepted in a community that mostly didn't know of them
and to the extent it did couldn't afford to apply those techniques
given the languages available.

To the extent that C++ succeeded at that, C++ was ahead of the wave,
``a leader'' borrowing the phrase from the original posting. It has
always been my opinion that making something comprehensible and affordable
is a worthwhile, innovative, and socially useful activity. I think producing
14 million volkswagen's or Ford Ts is at least as innovative as building
a few thousands Rolls Royces or a few hundred formula-1 cars - even though
the vast majority of the individual features first appear in the luxury
and speciality cars. I think that the majority of areas where C++ has
contributed have to do with economy and scale.

C++ was designed to be useful rather than to be innovative. Wherever
possible, I tried to follow a well-tested precedence. Thus, you can
find ideas from Algol68, ML, Ada, Clu, and even BCPL in C++. The main
ideas came from C and Simula, of course. Only where I couldn't find a
solution that fitted in C++'s general framework and met my criteria for
run-time efficiency, ease of implementation, ease of teaching, etc.
(see D&E Chapter 4), did I feel compelled to try to invent something. 

Much of C++'s success has to do with fitting into existing environments
and being compact and fast (yes, I know that these are not the aspects
of C++ that are currently emphasized in the MS Windows world). The speed
and compactness of code generated from C++ depends on a few fundamental
design decisions that I think were novel at the time:

	The ability to easily link to existing languages and have C++
	code used from other languages. (This is done through the linkage
	model and it is directly supported in the C++ grammar).

	The ability to use user-defined types and built-in types in the
	same way. In Simula - as in most data abstraction and OO language -
	every object of a user-defined type must be on the heap; this
	leads to overheads compared to stack-allocated objects. Similarly,
	C++ pointers work uniformly for both user-defined and built-in
	types.

	C++ offers objects of user-defined types with zero space overhead
	compared to C structs.

	C++ offers calls of member functions with zero time overhead
	compared to C functions.

	C++ offers inline member and non-member functions with zero
	overhead compared to macros.

	C++ offers its form of dynamic (run-time) resolution, virtual
	functions, with low and fixed overhead compared to ordinary
	function calls (20% to 100% dependent of implementation).

	C++ can be used without a significant run-time-support system
	and without significant libraries.

These features were introduced in the 1979 to 1983 timeframe (virtual
functions last!) and described in journals and at conferences from
about 1981.

This combination of feature was - and to some extent still is - unique
and important to many. This efficiency is a large part of the reason
why C++ was able to blaze a trail into areas where data abstraction
and object-oriented languages had made essentially no headway.

By demonstrating applicability and efficiency in new application areas
and in new communities C++ opened opportunities to other languages
with a different balance of tradeoffs. Both where C++ was successfully
used and where problems were found, it opened a door to alternatives.

People who didn't try to use OO and abstraction languages in the early
days (say 1967 to 1989) typically seriously underestimate the obstacles
to getting these languages and programming techniques into non-research
use. Most would also be shocked at the state of their favorite language
- as compared to its current state - in its early years. When comparing
languages in a historical context we must consider not only if a language
has a feature, but also when it had it, when it was published, when it
was implemented, and whether those implementations were good enough for
production use.


 > Next I suppose you will be trying to tell me it was the first to have
 > generics (templates) or namespaces or assignment attempt or RTTI or...

Please refrain from making conjectures about what someone in a debate
might claim. It adds no facts and can fuel flamewars.


 > C++ was and is a _follower_.  That is not necessarily a bad thing, but
 > it is anything _but_ innovative.
 > 
 > /Jon
 > -- 
 > Jon Anthony
 > Organon Motives, Inc.
 > Belmont, MA 02178
 > 617.484.3383
 > jsa@organon.com

Over the years, C++ has evolved within a framework that was reasonably
well understood early on. During this evolution, C++ has borrowed from
several languages (always with acknowledgements), but it has never been
in the position of slavishly following fashion or systematically borrowing
from a perceived competitor. C++ evolved within its own framework to
meet the needs of its users. I don't think that can be fairly labelled
"being a follower."

As far as I know, Simula was the first language with structured RTTI
(INSPECT and QUA). Some studies I made of Simula programs convinced me
that the less RTTI was used the better the structure of an average program
(INSPECT was commonly used in ways that precluded modularity). The C++
RTTI (primarily dynamic_cast) was introduced to handle the few cases
where it is necessary and in a form that hopefully minimizes problems.

Multiple inheritance is sometimes mentioned as innovative in C++.
It existed in different - more powerful, but slower - forms in
several Lisp dialects. I considered it for C++ from about 1981 and
introduced it into C++ in a more static and type-safe form in 1987
after a couple of years of experimentation (a brief mention of C++ MI
can be found in my "What is Object-oriented programming?" paper from
1985). The form of multiple inheritance in C++ may be innovative, the
fundamental idea is quite old. I now consider MI essential for a
language relying on static type checking. You can do without it of
course (just like you can do without single inheritance and without
classes), but the resulting code is contorted.

In the area of exceptions, C++ may have added something important:
C++ exceptions can be of arbitrary type and inheritance is taken
into account when catching an exception. This provides important
possibilities for grouping exceptions that I don't know precedence
for (though the need for grouping has been known for decades).

Templates are an interesting case. Naturally, many languages have provided
macros, generics, type inference, etc. for decades. However, templates
grew out of the needs of C++ programmers and seem to have a combination
of features that provide a surprising expressive power. The (relatively
new) C++ standard library of containers and algorithms seems to me to
provide a unique combination of generality and efficiency. Naturally,
the algorithms are not new (most can be found in Knuth), most languages
provide containers which roughly correspond to what the STL offers,
and many of the programming techniques used are borrowed (with thanks
and acknowledgement) from the functional programming community.

Should something like this be considered innovative? Would it be fair
to say that it leads hundreds of thousands of programmers into areas
of programming where they haven't been and would have been unlikely
to reach for many more years? I think so.

	- Bjarne

Bjarne Stroustrup, AT&T Research, http://www.research.att.com/~bs/homepage.html




  parent reply	other threads:[~1997-01-04  0:00 UTC|newest]

Thread overview: 587+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-01-01  0:00 What is wrong with OO ? Ell
1997-01-01  0:00 ` Jon S Anthony
1997-01-02  0:00   ` Robert C. Martin
1997-01-03  0:00     ` Eirik Mangseth
1997-01-03  0:00       ` What is wrong with OO O X g Greg Comeau
1997-01-04  0:00         ` OO, C++, and something much better! John (Max) Skaller
1997-01-04  0:00           ` vlad
1997-01-05  0:00           ` Mike Anderson
1997-01-06  0:00           ` Chris Brand
1997-01-06  0:00           ` Stanley Allen
1997-01-09  0:00             ` Jon S Anthony
1997-01-08  0:00     ` Robert I. Eachus
1997-01-09  0:00     ` Bertrand Meyer
1997-01-27  0:00       ` Richard Riehle
1997-01-10  0:00     ` Robb Nebbe
1997-01-10  0:00     ` Robert I. Eachus
1997-01-03  0:00   ` What is wrong with OO ? Matt Austern
1997-01-03  0:00   ` Jon S Anthony
1997-01-04  0:00   ` Valerie Torres [this message]
1997-01-06  0:00     ` Bart Samwel
1997-01-08  0:00       ` Robert Dewar
1997-01-09  0:00         ` William Clodius
1997-01-09  0:00         ` Bertrand Meyer
1997-01-09  0:00           ` Robert Dewar
1997-01-10  0:00             ` Fergus Henderson
1997-01-10  0:00               ` Robert Dewar
1997-01-12  0:00                 ` Fergus Henderson
1997-01-09  0:00           ` Jay Martin
1997-01-09  0:00             ` Robert Dewar
1997-01-10  0:00               ` Jay Martin
1997-01-12  0:00                 ` Robert Dewar
1997-01-15  0:00                   ` Laurent Gasser
1997-01-15  0:00                     ` Jonas Nygren
1997-01-17  0:00                       ` Tom Bushell
1997-01-17  0:00                         ` Michael Malak
1997-01-17  0:00                           ` Kent Budge, sandia, 
1997-01-17  0:00                         ` Eirik Mangseth
1997-01-15  0:00                     ` Jay Martin
1997-01-10  0:00               ` Fergus Henderson
1997-01-10  0:00                 ` Robert Dewar
1997-01-12  0:00                   ` Fergus Henderson
1997-01-12  0:00                     ` Robert Dewar
1997-01-10  0:00                 ` Ken Garlington
1997-01-10  0:00               ` Jay Martin
1997-01-10  0:00                 ` Joe Buck
1997-01-11  0:00                   ` Jay Martin
1997-01-12  0:00             ` Slavik Zorin
1997-01-09  0:00           ` Ken Garlington
1997-01-11  0:00           ` Piercarlo Grandi
1997-01-12  0:00             ` Thierry Goubier
1997-01-14  0:00               ` Piercarlo Grandi
1997-01-14  0:00             ` Vos nom et pr�nom
1997-01-16  0:00               ` Mark Woodruff
1997-01-17  0:00               ` Piercarlo Grandi
1997-01-09  0:00         ` Fergus Henderson
1997-01-09  0:00           ` Robert Dewar
1997-01-10  0:00             ` Fergus Henderson
1997-01-10  0:00               ` Robert Dewar
1997-01-09  0:00           ` Richie Bielak
1997-01-10  0:00             ` Fergus Henderson
1997-01-09  0:00         ` Ken Garlington
1997-01-09  0:00         ` Simon Willcocks
1997-01-09  0:00           ` Robert Dewar
1997-01-10  0:00         ` Bart Samwel
1997-01-10  0:00           ` Michael Malak
1997-01-10  0:00             ` Bart Samwel
1997-01-12  0:00               ` Fergus Henderson
1997-01-10  0:00           ` Robert Dewar
1997-01-09  0:00       ` Bjarne Stroustrup
1997-01-11  0:00         ` Robert Dewar
1997-01-15  0:00           ` Bjarne Stroustrup
1997-01-19  0:00             ` Jay Martin
1997-01-27  0:00               ` Robert C. Martin
1997-01-30  0:00                 ` Damon Feldman
1997-01-20  0:00             ` Richard A. O'Keefe
1997-01-21  0:00               ` John W. Sarkela
1997-01-23  0:00               ` Piercarlo Grandi
1997-01-23  0:00             ` Bertrand Meyer
1997-01-24  0:00               ` language marketing question, was " Tom Moran
     [not found]                 ` <5cpdh8$mau@news.csus.edu>
     [not found]                   ` <5cs3un$14b4@uni.library.ucla.edu>
     [not found]                     ` <rmartin-3101971753460001@pool15-027.wwa.com>
     [not found]                       ` <5cu5ig$10fk@uni.library.ucla.edu>
     [not found]                         ` <5dao0p$gri@decius.ultra.net>
     [not found]                           ` <yf3n2th488t.fsf@sabi.demon.co.uk>
1997-02-11  0:00                             ` Worse is better, was: Language marketing question Bob Haugen
1997-02-11  0:00                               ` Donald M. MacQueen
1997-02-11  0:00                                 ` Lee Willis
     [not found]                         ` <yf3rait49b9.fsf@sabi.demon.co.uk>
     [not found]                           ` <01bc183b$fd091820$1544db03@gecmf-pc-eddjab.gecmf.capital.ge.com>
1997-02-13  0:00                             ` language marketing question, was Re: What is wrong with OO ? Robert Dewar
1997-01-25  0:00               ` Damon Feldman
1997-01-26  0:00             ` Sean Case
1997-01-26  0:00               ` William Grosso
1997-01-28  0:00                 ` Paul Keister
1997-01-28  0:00               ` Dann Corbit
1997-01-12  0:00         ` Fergus Henderson
1997-01-13  0:00           ` Bart Samwel
1997-01-12  0:00         ` Matt Telles
1997-01-15  0:00           ` Bjarne Stroustrup
1997-01-19  0:00             ` Matthew Heaney
1997-01-14  0:00         ` Vos nom et pr�nom
1997-01-16  0:00           ` Patrick Doyle
1997-01-16  0:00             ` Risto Lankinen
1997-01-16  0:00               ` Patrick Doyle
1997-01-16  0:00                 ` Risto Lankinen
1997-01-18  0:00                 ` Robert C. Martin
     [not found]           ` <01bc0269$3fd55b20$ca61e426@DCorbit.solutionsiq.com>
1997-02-10  0:00             ` richard
1997-02-10  0:00               ` Nick Leaton
     [not found]                 ` <3303A993.759E@pratique.fr>
1997-02-21  0:00                   ` Nick Leaton
1997-02-21  0:00                   ` Nick Leaton
1997-02-22  0:00                     ` Fergus Henderson
1997-02-10  0:00               ` Robert Dewar
1997-01-20  0:00         ` David Emery
     [not found]       ` <dewar.852772995@mer <dewar.852833957@merv>
1997-01-10  0:00         ` Simon Willcocks
1997-01-10  0:00           ` Robert Dewar
1997-01-10  0:00             ` Marky Mark
1997-01-10  0:00               ` Robert Dewar
1997-01-12  0:00                 ` Fergus Henderson
1997-01-12  0:00                   ` Josh Stern
1997-01-12  0:00             ` Martin ELLISON
1997-01-14  0:00               ` Piercarlo Grandi
1997-01-17  0:00     ` Lawrence G. Mayka
1997-01-19  0:00       ` Piercarlo Grandi
1997-01-19  0:00         ` Exceptions as objects (was Re: What is wrong with OO ?) Patrick Doyle
1997-01-25  0:00           ` Piercarlo Grandi
1997-01-25  0:00             ` Robert A Duff
1997-01-25  0:00               ` Robert A Duff
1997-01-28  0:00                 ` Piercarlo Grandi
1997-01-28  0:00                 ` Piercarlo Grandi
1997-01-25  0:00             ` Paul Kyzivat
1997-01-25  0:00             ` Ronald E Jeffries
1997-01-25  0:00               ` Bryan Dollery
1997-01-25  0:00               ` Robert A Duff
1997-01-28  0:00                 ` Piercarlo Grandi
1997-01-29  0:00                   ` Robert A Duff
1997-01-29  0:00                   ` John W. Sarkela
     [not found]                     ` <yf33evav882.fsf@sabi.demon.co.uk>
     [not found]                       ` <32FA58AD.2D96@enfish.com>
1997-02-12  0:00                         ` Piercarlo Grandi
1997-01-30  0:00                   ` Lawrence G. Mayka
1997-01-30  0:00                     ` Robert Dewar
1997-01-29  0:00                 ` John (Max) Skaller
1997-01-28  0:00               ` Piercarlo Grandi
     [not found]             ` <5cu43v$jkn@nntpa.cb.lucent.com>
     [not found]               ` <yf3ybd14qn4.fsf@sabi.demon.co.uk>
     [not found]                 ` <5de797$1ksa@uni.library.ucla.edu>
1997-02-07  0:00                   ` Piercarlo Grandi
1997-02-08  0:00                     ` Jay Martin
     [not found]               ` <5d93d3$nhs$1@goanna.cs.rmit.edu.au>
1997-02-07  0:00                 ` Robert A Duff
     [not found]                 ` <5dds5b$gcs@mulga.cs.mu.OZ.AU>
     [not found]                   ` <01bc14ab$3ce476e0$752d54c7@vbykov.hip.cam.org>
1997-02-07  0:00                     ` Robert A Duff
1997-02-10  0:00                       ` Vassili Bykov
     [not found]                     ` <5def36$rjd@mulga.cs.mu.OZ.AU>
1997-02-07  0:00                       ` Vassili Bykov
1997-02-07  0:00                         ` Bill Gooch
1997-02-07  0:00                           ` Vassili Bykov
1997-02-08  0:00                         ` Fergus Henderson
1997-02-08  0:00                           ` Piercarlo Grandi
1997-02-08  0:00                           ` Piercarlo Grandi
1997-02-11  0:00                           ` Vassili Bykov
1997-02-07  0:00                     ` Patrick Doyle
     [not found]                   ` <5de57h$dm3$1@goanna.cs.rmit.edu.au>
1997-02-09  0:00                     ` Fergus Henderson
1997-01-04  0:00   ` OO, C++, and something much better! Pieter Schoenmakers
1997-01-06  0:00   ` Ole-Hjalmar Kristensen FOU.TD/DELAB
1997-01-06  0:00     ` Michael F Brenner
1997-01-06  0:00       ` Tucker Taft
1997-01-07  0:00         ` Robert Dewar
1997-01-07  0:00       ` Ada Generics (was Re: OO, C++, and something much better!) Bob Gilbert
1997-01-07  0:00         ` Robert Dewar
1997-01-08  0:00       ` OO, C++, and something much better! Robert Dewar
1997-01-07  0:00     ` Jay Martin
1997-01-08  0:00       ` Ken Garlington
1997-01-08  0:00         ` Robert Dewar
1997-01-08  0:00           ` Robert Dewar
1997-01-09  0:00           ` Ted Dennison
1997-01-07  0:00     ` Andrew Koenig
1997-01-10  0:00       ` Norman H. Cohen
1997-01-12  0:00     ` Richard Riehle
1997-01-07  0:00   ` Stanley Allen
1997-01-07  0:00     ` Robert Dewar
1997-01-07  0:00       ` Bertrand Meyer
1997-01-08  0:00         ` Matthew Heaney
1997-01-08  0:00         ` Ken Garlington
1997-01-10  0:00       ` Keith Thompson
1997-01-10  0:00         ` Robert Dewar
1997-01-10  0:00           ` Robert Dewar
1997-01-15  0:00           ` Richard Kenner
1997-01-15  0:00             ` Fergus Henderson
1997-01-20  0:00             ` Andrew Koenig
1997-01-25  0:00             ` Robert Dewar
1997-01-15  0:00         ` Ole-Hjalmar Kristensen FOU.TD/DELAB
1997-01-07  0:00   ` What is wrong with OO ? Jon S Anthony
1997-01-07  0:00   ` Jon S Anthony
1997-01-11  0:00     ` Bjarne Stroustrup
1997-01-21  0:00       ` rharlos*cybercomm.net
1997-02-10  0:00       ` richard
1997-02-10  0:00         ` Charles A. Jolley
1997-02-11  0:00           ` Robert Dewar
1997-02-12  0:00             ` C++ Class Loc Minh Phan Van
1997-02-12  0:00               ` William Ying
1997-02-12  0:00               ` Ron Smith
1997-02-12  0:00               ` Kevin J. Hopps
1997-02-12  0:00               ` John Kapson [C]
1997-02-12  0:00               ` Aaron J Margosis
1997-02-12  0:00               ` Paul Kenneth Egell-Johnsen
1997-02-12  0:00               ` Jason Shankel
1997-02-12  0:00               ` Keith P. Boruff
1997-02-12  0:00                 ` Vlastimil Adamovsky
1997-03-03  0:00                 ` C++ Class [ not a good answer ] Luis Espinal
1997-03-06  0:00                   ` Tom Plunket
1997-02-12  0:00               ` C++ Class Kent Tong
1997-02-13  0:00               ` Lee, Shih Hao
1997-02-17  0:00             ` What is wrong with OO ? Sam Inala
1997-02-17  0:00               ` Robert Dewar
1997-02-15  0:00           ` Piercarlo Grandi
1997-02-11  0:00         ` Vlastimil Adamovsky
1997-01-08  0:00   ` OO, C++, and something much better! Jon S Anthony
1997-01-08  0:00     ` Mark A Biggar
1997-01-09  0:00       ` Don Harrison
1997-01-10  0:00         ` Roy Phillips
1997-01-27  0:00           ` Nick Leaton
1997-01-28  0:00             ` matthew mclellan
1997-01-09  0:00     ` Don Harrison
1997-01-09  0:00       ` Robert Dewar
1997-01-10  0:00         ` Norman H. Cohen
1997-01-10  0:00         ` Bart Samwel
1997-01-10  0:00           ` Robert Dewar
1997-01-10  0:00         ` Ken Garlington
1997-01-13  0:00         ` Don Harrison
1997-01-13  0:00           ` Ken Garlington
1997-01-13  0:00             ` Robert Dewar
1997-01-15  0:00               ` Ken Garlington
1997-01-17  0:00                 ` Keith Thompson
1997-01-16  0:00               ` Keith Thompson
1997-01-16  0:00                 ` Ken Garlington
1997-01-13  0:00             ` Norman H. Cohen
1997-01-14  0:00             ` Michael F Brenner
1997-01-14  0:00             ` Don Harrison
1997-01-13  0:00           ` Robert Dewar
1997-01-14  0:00             ` Don Harrison
1997-01-10  0:00       ` Jon S Anthony
1997-01-13  0:00         ` Don Harrison
1997-01-13  0:00           ` Robert I. Eachus
1997-01-15  0:00             ` Don Harrison
1997-01-13  0:00           ` Don Harrison
1997-01-14  0:00             ` Jeff Carter
1997-01-15  0:00               ` Don Harrison
1997-01-17  0:00                 ` Norman H. Cohen
1997-01-17  0:00                 ` Jon S Anthony
1997-01-18  0:00             ` Patrick Doyle
1997-01-20  0:00             ` Jon S Anthony
1997-01-08  0:00   ` David Emery
1997-01-09  0:00     ` Don Harrison
1997-01-10  0:00       ` Marky Mark
1997-01-14  0:00         ` Don Harrison
1997-01-08  0:00   ` Kohler Markus
1997-01-10  0:00   ` What is wrong with OO ? Pieter Schoenmakers
1997-01-12  0:00     ` Fergus Henderson
1997-01-10  0:00   ` OO, C++, and something much better! Matt Austern
1997-01-10  0:00   ` What is wrong with OO ? Robert I. Eachus
1997-01-12  0:00     ` Piercarlo Grandi
1997-01-10  0:00   ` OO, C++, and something much better! Jon S Anthony
1997-01-12  0:00   ` What is wrong with OO ? Chris Morgan
1997-01-11  0:00     ` Robert Dewar
1997-01-12  0:00   ` Chris Morgan
1997-01-13  0:00   ` Chris Morgan
1997-01-13  0:00   ` ak
1997-01-13  0:00   ` Pieter Schoenmakers
1997-01-13  0:00     ` Fergus Henderson
1997-01-23  0:00   ` Bertrand Meyer
1997-01-26  0:00     ` Piercarlo Grandi
1997-01-23  0:00   ` Chris Bitmead
1997-01-23  0:00   ` Ulrich Windl
1997-01-08  0:00 ` Richard A. O'Keefe
  -- strict thread matches above, loose matches on Subject: below --
1997-02-11  0:00 Ell
1997-02-11  0:00 ` John Brady
1997-02-11  0:00 ` Matt McClellan
1997-02-12  0:00 ` Bob Jarvis
1997-02-12  0:00 ` Jon S Anthony
1997-02-12  0:00   ` David B. Shapcott [C]
1997-02-12  0:00   ` Ketil Z Malde
1997-02-12  0:00   ` Kevin J. Hopps
     [not found]     ` <33049C7C.41C6@wi.leidenuniv.nl>
1997-02-17  0:00       ` Kevin J. Hopps
1997-02-17  0:00         ` phil
1997-02-18  0:00     ` Simon Willcocks
1997-02-12  0:00   ` Hamilton, Robert Bryan       
1997-02-13  0:00   ` Jon S Anthony
1997-02-13  0:00     ` Hamilton, Robert Bryan       
1997-02-13  0:00   ` Jon S Anthony
1997-02-15  0:00   ` Jon S Anthony
1997-02-16  0:00   ` Jon S Anthony
1997-02-12  0:00 ` Russ McClelland
1997-02-13  0:00 ` Ole-Hjalmar Kristensen FOU.TD/DELAB
1997-01-18  0:00 Ell
1997-01-15  0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-01-14  0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-01-12  0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-01-12  0:00 ` Robert Dewar
1997-01-10  0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-01-11  0:00 ` Robert Dewar
1997-01-06  0:00 John Walker
1997-01-03  0:00 Ell
1997-01-03  0:00 ` Jean-Marc Jezequel
1997-01-03  0:00   ` Eirik Mangseth
1997-01-06  0:00   ` Steven Perryman
1997-01-08  0:00     ` Russ McClelland
1997-01-06  0:00   ` Bill Gooch
1997-01-01  0:00 Ell
1997-01-01  0:00 ` Tim Ottinger
1997-01-08  0:00 ` Paul Eric Menchen
1997-01-01  0:00 Ell
1997-01-01  0:00 Ell
1997-01-01  0:00 Ell
1997-01-02  0:00 ` Mike Anderson
1997-01-02  0:00   ` Dale Pontius
1997-01-02  0:00     ` Bill Hunter
1996-12-31  0:00 Ell
1996-12-31  0:00 ` clovis
1996-12-31  0:00   ` Robert C. Martin
1997-01-01  0:00     ` Nick Thurn
1996-12-31  0:00 ` Jon S Anthony
1997-01-02  0:00   ` Robert C. Martin
1997-01-03  0:00   ` Jon S Anthony
1997-01-03  0:00     ` Robert C. Martin
1997-01-07  0:00   ` Jon S Anthony
1997-01-02  0:00 ` Ian Joyner
1997-01-02  0:00   ` David L. Shang
1996-12-31  0:00 Ell
1996-12-31  0:00 ` Ian Joyner
1996-12-31  0:00   ` Robert C. Martin
1997-01-01  0:00     ` Tom Bushell
1997-01-02  0:00     ` Thaddeus L. Olczyk
1997-01-07  0:00   ` drush
1996-12-31  0:00 ` Nigel Tzeng
1996-12-28  0:00 Tansel Ersavas
1996-12-28  0:00 ` Tansel Ersavas
1996-12-27  0:00 Ell
1996-12-24  0:00 Ell
1996-12-19  0:00 Ell
1996-12-18  0:00 Ell
1996-12-18  0:00 ` Patrick Ma
1996-12-16  0:00 Marin David Condic, 561.796.8997, M/S 731-93
1996-12-15  0:00 Ell
1996-12-15  0:00 ` Tansel Ersavas
1996-12-15  0:00 Tansel Ersavas
1996-12-14  0:00 Ell
1996-12-14  0:00 Tansel Ersavas
1996-12-16  0:00 ` Tom Bushell
1996-12-22  0:00 ` Willy
1996-12-24  0:00   ` Fraser Wilson
1996-12-13  0:00 Ell
1996-12-13  0:00 ` drush
1996-12-15  0:00   ` Tansel Ersavas
1996-12-16  0:00     ` Nick Leaton
1996-12-16  0:00       ` Tansel Ersavas
1996-12-16  0:00     ` Bill Gooch
1996-12-19  0:00     ` Samuel Mize
1996-12-11  0:00 Ell
1996-12-11  0:00 Ell
1996-12-13  0:00 ` Harry Protoolis
1996-12-13  0:00   ` Ronald Servant
1996-12-13  0:00     ` matt
1996-12-13  0:00       ` Dan Stubbs
1996-12-18  0:00     ` Harry Protoolis
1996-12-07  0:00 Ell
1996-12-07  0:00 ` Harry Protoolis
1996-12-10  0:00   ` Harry Protoolis
1996-12-14  0:00 ` Robert C. Martin
     [not found]   ` <01bbeb6f$e2220c40$371883cc@beast.advancedsw.com>
1996-12-16  0:00     ` Robert C. Martin
1996-12-17  0:00       ` Roger T.
1996-12-18  0:00         ` Matt Kennel
     [not found]           ` <01bbed37$23deaa80$371883cc@beast.advancedsw.com>
1996-12-19  0:00             ` Matt Kennel
1996-12-19  0:00         ` Robert C. Martin
1996-12-16  0:00   ` Nick Leaton
1996-12-16  0:00     ` Robert C. Martin
1996-12-18  0:00       ` Nick Leaton
1996-12-19  0:00         ` Robert C. Martin
1996-12-18  0:00 ` drush
1996-12-06  0:00 Ell
1996-12-06  0:00 ` Harry Protoolis
1996-12-06  0:00 ` Robert C. Martin
1996-12-07  0:00   ` Steve Heller
1996-12-06  0:00 ` Thomas Gagne
1996-12-06  0:00   ` Bob Crispen
1996-12-14  0:00     ` Robert C. Martin
1996-12-10  0:00   ` Art Schwarz
1996-12-06  0:00 Ell
1996-12-06  0:00 ` Nick Leaton
1996-12-06  0:00 ` H Brett Bolen
1996-12-06  0:00   ` Prashant Gupta
1996-12-14  0:00   ` Chris
1996-12-06  0:00 ` Harry Protoolis
1996-12-06  0:00   ` Robert C. Martin
1996-12-09  0:00     ` Harry Protoolis
1996-12-12  0:00     ` Frederick Sickert
1996-12-05  0:00 Ell
1996-12-06  0:00 ` Tom Bushell
1996-12-05  0:00 Ell
1996-12-05  0:00 ` Brian Gridley
1996-12-05  0:00   ` Bill Gooch
1996-12-05  0:00 ` Bill Gooch
1996-12-04  0:00 Ell
1996-12-04  0:00 Ell
1996-12-04  0:00 ` Bill Gooch
1996-12-03  0:00 Ahmed
1996-12-03  0:00 ` Bill Gooch
1996-12-03  0:00   ` Bill Gooch
1996-12-04  0:00   ` Ahmed
1996-12-04  0:00     ` Bill Gooch
1996-12-06  0:00       ` Ahmed
1996-12-06  0:00         ` Bill Gooch
1996-12-06  0:00       ` Jeff Miller
1996-12-06  0:00         ` Bill Gooch
1996-12-14  0:00         ` Chris
1996-12-03  0:00 ` Fred Parker
1996-12-04  0:00 ` Harry Protoolis
1996-12-04  0:00   ` Roger T.
1996-12-04  0:00   ` Ahmed
1996-12-06  0:00     ` Harry Protoolis
1996-12-06  0:00       ` Ralph Cook
1996-12-07  0:00         ` Harry Protoolis
1996-12-09  0:00           ` Nigel Tzeng
1996-12-12  0:00             ` David Bradley
1996-12-20  0:00               ` Nigel Tzeng
     [not found]         ` <1996Dec7.151850.877@prim.demon.co.uk>
1996-12-08  0:00           ` Tansel Ersavas
1996-12-14  0:00             ` Kazimir Majorinc
1996-12-14  0:00               ` Jeff Miller
1996-12-16  0:00                 ` David Bradley
1996-12-14  0:00               ` Tansel Ersavas
1996-12-15  0:00               ` Todd Hoff
1996-12-15  0:00                 ` Patrick Ma
1996-12-16  0:00                   ` Robert C. Martin
1996-12-16  0:00                   ` Bob Kettig
1996-12-15  0:00                 ` Tansel Ersavas
1996-12-04  0:00   ` Robert C. Martin
1996-12-04  0:00     ` Dr. Richard Botting
1996-12-05  0:00     ` Tom Bushell
1996-12-05  0:00       ` Marnix Klooster
1996-12-05  0:00       ` Piercarlo Grandi
1996-12-06  0:00         ` Tom Bushell
1996-12-06  0:00           ` David Bradley
1996-12-08  0:00           ` Piercarlo Grandi
1996-12-10  0:00             ` Piercarlo Grandi
1996-12-10  0:00             ` Todd Hoff
1996-12-11  0:00               ` Nick Leaton
1996-12-11  0:00                 ` Matt Kennel
1996-12-12  0:00                 ` Piercarlo Grandi
1996-12-11  0:00               ` Nick Leaton
1996-12-11  0:00             ` Tom Bushell
1996-12-06  0:00       ` David B. Shapcott [C]
1996-12-06  0:00       ` Mukesh Prasad
1996-12-10  0:00         ` Tom Bushell
1996-12-06  0:00       ` Carl Weidling
1996-12-06  0:00       ` Harry Protoolis
1996-12-10  0:00         ` Tom Bushell
1996-12-06  0:00       ` Roger Vossler
1996-12-10  0:00         ` Tom Bushell
1996-12-10  0:00           ` Roger Vossler
1996-12-12  0:00             ` Tom Bushell
1996-12-12  0:00             ` Don Harrison
1996-12-11  0:00           `  Todd Knarr 
1996-12-11  0:00             ` Alan Meyer
1996-12-12  0:00             ` Tom Bushell
1996-12-12  0:00             ` Ell
     [not found]             ` <58mubr$i <58p5ou$dkm@news3.digex.net>
1996-12-13  0:00               ` Nick Leaton
1996-12-25  0:00                 ` Weiqi Gao
1996-12-25  0:00                   ` Matthew S. Whiting
1996-12-26  0:00                   ` Bob Jarvis
1996-12-26  0:00                     ` Arthur Gold
1996-12-26  0:00                   ` Mike Rubenstein
     [not found]             ` <32aefdb0..406273038@news.nstn.ca>
1996-12-14  0:00               ` "Paul E. Bennett"
1996-12-05  0:00     ` Piercarlo Grandi
1996-12-04  0:00   ` Joe Winchester
1996-12-05  0:00     ` Russell Corfman
1996-12-04  0:00 ` Piercarlo Grandi
1996-12-04  0:00 ` Matthew Gream
1996-12-05  0:00   ` Tim Ottinger
1996-12-04  0:00 ` Robert C. Martin
1996-12-05  0:00 ` Nick Thurn
1996-12-05  0:00 ` Daniel Drasin
1996-12-06  0:00   ` Todd Hoff
1996-12-07  0:00     ` Steve Heller
1996-12-07  0:00       ` Tansel Ersavas
1996-12-09  0:00         ` Kenneth Mays
1996-12-14  0:00         ` Robert C. Martin
1996-12-14  0:00           ` Patrick Ma
1996-12-18  0:00             ` Harry Protoolis
1996-12-18  0:00               ` Patrick Ma
1996-12-18  0:00                 ` Caitlin
1996-12-15  0:00           ` Tansel Ersavas
1996-12-17  0:00             ` Adam Beneschan
1996-12-17  0:00               ` Tansel Ersavas
1996-12-18  0:00                 ` Adam Beneschan
1996-12-18  0:00                 ` Ralph Cook
1996-12-19  0:00                 ` Nick Leaton
1996-12-19  0:00                 ` Robert C. Martin
1996-12-20  0:00                   ` Tansel Ersavas
1996-12-21  0:00                     ` Michael Malak
1996-12-17  0:00             ` Robert Dewar
1996-12-18  0:00               ` Tansel Ersavas
1996-12-27  0:00                 ` clovis
1996-12-27  0:00                   ` Tore Lund
1996-12-28  0:00                     ` clovis
1996-12-28  0:00                       ` Tore Lund
1996-12-27  0:00                   ` Jacqueline U. Robertson
1996-12-27  0:00                     ` Tore Lund
1996-12-28  0:00                       ` Tansel Ersavas
1996-12-28  0:00                         ` Tore Lund
1996-12-31  0:00                         ` Adam Beneschan
1996-12-31  0:00                           ` Robert C. Martin
1996-12-31  0:00                           ` clovis
1996-12-31  0:00                             ` Neville Black
1996-12-31  0:00                             ` Tansel Ersavas
1997-01-01  0:00                             ` Tom Bushell
1997-01-10  0:00                             ` Bart Samwel
1997-01-10  0:00                               ` Robert Dewar
1997-01-15  0:00                                 ` Richard Kenner
1997-01-11  0:00                               ` Randy A. Ynchausti
1997-01-12  0:00                               ` Piercarlo Grandi
1996-12-29  0:00                       ` clovis
1996-12-31  0:00                         ` Tom Bushell
1996-12-31  0:00                           ` clovis
1997-01-10  0:00                           ` Bart Samwel
1996-12-31  0:00                       ` Jon S Anthony
1997-01-01  0:00                       ` Jon S Anthony
1997-01-12  0:00                       ` Corey Minyard
1997-01-14  0:00                         ` Vos nom et pr�nom
1997-01-13  0:00                       ` Nick Thurn
1996-12-28  0:00                     ` clovis
1996-12-30  0:00                       ` John (Max) Skaller
1996-12-29  0:00                         ` Rosimildo da Silva
1996-12-31  0:00                         ` Ian Joyner
1997-01-03  0:00                       ` markj
1997-01-03  0:00                         ` Natan
1996-12-28  0:00                   ` Stephen Pendleton
1996-12-31  0:00                     ` Edward de Jong
1996-12-31  0:00                       ` Nick Leaton
1996-12-31  0:00                       ` clovis
1997-01-01  0:00                       ` Tore Lund
1997-01-01  0:00                         ` Tore Lund
1996-12-19  0:00               ` Robert C. Martin
1996-12-17  0:00             ` Adam Beneschan
1996-12-17  0:00               ` Ralph Cook
1996-12-18  0:00               ` Tansel Ersavas
1996-12-24  0:00             ` Nigel Tzeng
1996-12-26  0:00               ` Tansel Ersavas
1996-12-26  0:00                 ` Bill Gooch
1996-12-16  0:00           ` Karen A. Morrissey
1996-12-16  0:00             ` Bob Kettig
1996-12-17  0:00               ` Robert Dewar
1996-12-17  0:00             ` David Bradley
1996-12-09  0:00       ` Todd Hoff
1996-12-10  0:00         ` Steve Heller
1996-12-10  0:00         ` Snowball queries
1996-12-12  0:00         ` Samuel S. Shuster
1996-12-12  0:00           ` Dr. Richard Botting
1996-12-13  0:00           ` Nick Leaton
1996-12-16  0:00             ` Samuel S. Shuster
1996-12-16  0:00               ` Bob Kettig
1996-12-16  0:00                 ` Robert Dewar
1996-12-17  0:00               ` Nick Leaton
1996-12-17  0:00               ` Tansel Ersavas
1996-12-18  0:00                 ` Tom Bushell
1996-12-18  0:00                   ` Matt Kennel
1996-12-18  0:00                     ` Tansel Ersavas
1996-12-19  0:00                     ` Jeffrey C. Dege
1996-12-20  0:00                       ` Tom Bushell
1996-12-19  0:00                     ` Tom Bushell
1996-12-23  0:00                       ` David Bradley
1996-12-23  0:00                         ` Jeffrey C. Dege
1996-12-19  0:00                     ` David Bradley
1996-12-20  0:00                       ` Chris Brand
     [not found]                       ` <01bbee11$dcae8460$ca61e426@DCorbit.solutionsiq.com>
1996-12-23  0:00                         ` David Bradley
1996-12-19  0:00                   ` Tansel Ersavas
1996-12-27  0:00                     ` clovis
1996-12-07  0:00     ` Nick Thurn
1996-12-14  0:00       ` Robert C. Martin
1996-12-15  0:00         ` Todd Hoff
1996-12-15  0:00           ` Joseph W. Seda
1996-12-16  0:00           ` David Bradley
1996-12-19  0:00           ` Robert I. Eachus
1996-12-15  0:00     ` Damon Feldman
1996-12-06  0:00   ` David Bradley
1996-12-06  0:00   ` Steve Heller
1996-12-13  0:00   ` drush
1996-12-18  0:00   ` Matt Austern
1996-12-19  0:00     ` Risto Lankinen
1996-12-20  0:00   ` Jon S Anthony
1996-12-20  0:00   ` Tansel Ersavas
1996-12-20  0:00   ` Tansel Ersavas
1996-12-20  0:00   ` Bill Gooch
1996-12-20  0:00   ` Jon S Anthony
1996-12-23  0:00   ` Jon S Anthony
1996-12-23  0:00   ` Jon S Anthony
1996-12-26  0:00   ` drush
1996-12-26  0:00   ` drush
1996-12-06  0:00 ` Myles Williams
1996-12-06  0:00 ` Ranjan Bagchi
1996-12-06  0:00   ` Myles Williams
1996-12-07  0:00 ` Kazimir Majorinc
1996-12-14  0:00   ` Chris
replies disabled

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