On 21/10/2017 7:41 AM, Steve Smith wrote:
Bjorne Stroustrup (the inventor of C++, and incidentally the chair of
computer science at my alma mater for 12 years) said something like,
"You can shoot yourself in the foot with any language, but with C++
it's liable to blow your leg clean off."

Stroustrup said that in 1986 when the language was in it's infancy. If you look at modern C++, C++11, C++14 and C++17 it's not just a face lift it's an entirely new language. Unfortunately, the z/OS C++ compiler only supports a limited subset of C++11. It's the only platform I work on that doesn't have a modern C++ compiler, which is ironic considering it's the only platform where a compiler doesn't come for free.

Object-oriented design is not easy to do well.  It's quite often done
badly.  When it's good, it's very good, but... (you know the rest).

I totally agree it's easy to do badly. But then again it's easy to do well. All the lessons were learned back in the 90s. Prefer composition over inheritance, in fact never use inheritance unless using abstract base classes. Program to an interface not an implementation, use design patterns etc, etc.

sas

On Fri, Oct 20, 2017 at 4:06 PM, David W Noon
<0000013a910fd252-dmarc-requ...@listserv.ua.edu> wrote:
On Fri, 20 Oct 2017 18:30:25 +0000, Allan Staller
(allan.stal...@hcl.com) wrote about "Re: too true: Vulture Central on
"the next big thing"." (in
<sg2pr04mb0959a12157a5c714e7bf8e47e3...@sg2pr04mb0959.apcprd04.prod.outlook.com>):

My understanding (albeit limited) is that O-O is modular programming with the
concept of "inheritance" added.
There is considerably more than that.

As a moron's guide to Object Oriented Programming (OOP) here is a
simple, layered approach:

The first part is encapsulation. This consists of laying out a data
structure, called a class, that will be instantiated whenever it is
needed. This data structure then has methods (an up-market term for
subroutines and functions) associated with it, but most of these methods
can only be invoked using an instance of the class. Thus, the methods
are encapsulated by the class.

The second part is polymorphism. This allows a single method name to be
used with different semantics, based on the class through which it is
invoked and its argument signature. This is identical to the PL/I
GENERIC declaration, except the rules for monomorphic selection on a
polymorphic name have to be coded explicitly in PL/I but are inferred by
the compiler in more modern languages.

The third part is inheritance. This permits new classes to be declared
based on existing classes, with the new classes inheriting the data
items in the structure and the methods encapsulated in the earlier
classes. These are called subclasses. The methods can be overridden in
the subclasses if necessary. Additional data items can be added to the
structure too.

Actually laying out a class requires a great deal of analysis. This is
why people who can b.s. their way into senior analyst positions rattle
on about Object Oriented Design (OOD) as if it were some kind of magic.
There is no moron's guide to OOD, as it can be exceedingly complex.

I am not sure if SP caused modular or vice-versa.
Modular programming came in with FORTRAN II in the late 1950s, when it
started allowing FUNCTION and SUBROUTINE definitions. This is long
before Structured Programming.
--
Regards,

Dave  [RLU #314465]
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
david.w.n...@googlemail.com (David W Noon)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN



----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to