Re: Bob's 'Self-aggrandizing ignorant' Count: Was: What databases have taught me
Date: 28 Jun 2006 21:43:34 -0700
Message-ID: <1151556214.471945.78740_at_d56g2000cwd.googlegroups.com>
Bob Badour wrote:
> Keith H Duggar wrote:
> > Ok. At the moment I have to agree that "just an
> > arbitrary and ad hoc" is this far unjustified. I don't
> > know anything about the origins of Simula nor of those
> > early days of OO. So maybe Bob is right; but, yes he
> > hasn't demonstrated the "arbitrary and ad hoc" yet.
>
> It is a falsifiable statement. I leave it to the reader to
> verify for himself or to contradict for himself. If the
> creation was not arbitrary, what principles drove the
> design of language features? If the creation was not ad
> hoc, what drove the need for the computational model?
> > Furthermore, in the case of C++ and it's particular OO
> > concepts, I don't think "arbitrary and ad hoc" is
> > justified. Stroustrup put a great deal of thought and
> > design into the C++ version of OO concepts. As did many
> > other people during it's evolution.
>
> Can you enumerate the principles used and the impetuses
> for inclusion of new features? Did a concern for
> correctness ever drive the addition of a feature? Did any
> theory or branch of mathematics drive the addition or
> removal of any feature?
Stroustrup's D&E book covers this quite well. As the title suggests he covers the design and evolution of a number of C++ features. Generally he enumerates the principles (lack of overhead, compatibility with C, ease of implementation, correctness, etc) and the impetuses (efficiency, type safety, expressivity, etc) behind features. And yes (if I understand you correctly) the concern for correctness did drive the addition of some features. For example, the new C++ style cast operators were meant to improve type safety over C style casts, to discourage casting, and to make their use more conspicuous. And no it doesn't seem (at least from D&E) that any theory or mathematics drove the addition or removal of features. But that's just my reading, perhaps I missed something?
> OO is just an arbitrary and ad hoc collection of
> features. Those features are useful for creating large
> unpredictable state machines out of small predictable
> state machines.
> That they are ad hoc is supported by the origin of OO in
> Simula, which was not created as a general programming
> language. It was an ad hoc simulation language that was
> later used for other things too.
> That the features are arbitrary is supported by the
> prevalence of OO languages omitting one or another feature
> from the computational model or adding one or another
> feature to the computational model.
> That the features are useful for creating large
> unpredictable state machines is supported by too much
> evidence to enumerate so I will merely point to the ad hoc
> need that drove the creation of Simula in the first place.
- Keith -- Fraud 6