So the real insight for object oriented languages is that they can
be universal, because you can add types, that you can add efficiently.
And so you no longer have to invent a special language
much like in the early days of programming languages where you went.
And you invented Fortran for science, and
Cobol for business, and Lisp for artificial intelligence.
Now within a language like a Java, or like a, a C++, or a Python, where
you allow natural type extensibility, and you allow it efficiently, you get to.
Have the experts in a particular domain do the type extension
so that people now can conveniently and naturally program in that domain.
And that domain could be anything. Chemists can invent
the language and the setup types they need.
Their chemical molecules, DNA people, bio-informatics people can.
Do everything they need in relation to the genome.
And so what we really want is to understand how for your
particular widget, for your particular domain, how we can create a widget type.
What are the rules?
What should be the natural way to build widgets?
C.
Which you're coming from has a form,
but it's a primitive form of type extensibility.
So you should already have a bit of experience here, and the
experience will inform you, in terms of, and let you compare to.
The more powerful aids that C++
gives you when you're doing type extension.