[Fwd: Re: [Types-sig] Apologies and proposal]

Paul Prescod paul@prescod.net
Tue, 29 Feb 2000 06:16:33 -0800

Guido van Rossum wrote:
> OUt of context perhaps, but I would think that C++ qualifies.  It
> started with C's type system, lock stock and barrel, and added:
> classes; inheritance; virtual functions; private, protected and
> public; multiple inheritance; templates.  (Not in that order.)  I
> believe classes and single inheritance were in place before templates
> were even considered.  C's type system is probably less than 20% of
> C++'s type system; and even "old C++" with only single inheritance is
> probably less than 20% of what's now available.

That's an example I was thinking of. One could argue that the resulting
language is sub-optimal but I think that that has a lot more to do with
bad design principles than bad design process. Another example is Visual
Basic which has accreted a more and more sophisticated type system as
the years have gone by. Or Pascal to Object Pascal.

Anyhow, neither of these is really an appropriate analogy because when
Visual Basic 1 or K&R C were developed, nobody was thinking about
extending them to OOP in 5 or 25 years. I do not propose that we design
the system with NO forethought. Rather, I think that we need not work
out every detail of where we are going in order to start the journey. 

If my proposed process is inherently doomed to failure than our entire
project is doomed to failure because Python 1.0's type system did not
make specific allowance for the later addition of a static type checking
system. I believe that good (incremental) design back then will meld
with good (incremental) design now to make a good result.

 Paul Prescod  - ISOGEN Consulting Engineer speaking for himself
"The calculus and the rich body of mathematical analysis to which it
gave rise made modern science possible, but it was the algorithm that
made possible the modern world." 
        - from "Advent of the Algorithm" David Berlinski