Hi,
One of object oriented programming's key features are how well one
can build higher-level abstractions and how well one can reuse code.
My fundamental question is what are modern day benchmarks
on quality object oriented programming ?
The Standard Template Library of the programming language C++
was a good way to educate people about a good approach to
programming in C++. Their implementors were good object oriented programmers.
Unfortunately, the quality of the STLs specifically in the context of
OOPs has the following attributes:
i) Data structures and OOPs is a very beginner's foray into discussing
OOPs. Why ? Everyone learns about data structures in their
day to day lives and implementing them in OOPs is no big deal.
DS are one of the oldest known subjects. And they are a System science.
Besides, the implementation of DS in C++ STL is not discussed
from a *designer's point of view*. So, if one were to seek
the horse's mouth version of the first small step in Industrial Strength
OOPs programming, there is none(header files are the only source).
ii) STLs are old by modern day standards. So, from a design point of
view, in 2015 there are no refreshes in OOPs design (in the context
of a 3GL) from the implementors of STL.
Why I mention STL is that because C++ (and C derived OOPLs) are
indeed taught in many books on object orientation. And so far
we only have these as introduction to abstractions, reuse etc.
Does this touch you ? Has there been a design evolution to more beautiful
application of object orientation considering that so many years
have been spent on object oriented programming ?
Additionally, what recourse does one take to learn the holy grail of object-orientation ?
Both in terms of design & implementation ?
Sincerely,
Seima Rao.