Re: What is OOP? --- The most important aspect of OOP

Liste des GroupesRevenir à cl c++ 
Sujet : Re: What is OOP? --- The most important aspect of OOP
De : ross.a.finlayson (at) *nospam* gmail.com (Ross Finlayson)
Groupes : comp.lang.c++
Date : 10. Dec 2024, 02:43:52
Autres entêtes
Message-ID : <qducnViRZ6h_Acr6nZ2dnZfqn_SdnZ2d@giganews.com>
References : 1 2 3 4 5
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0
On 12/09/2024 09:51 AM, Tim Rentsch wrote:
Richard Damon <richard@damon-family.org> writes:
>
On 12/6/24 9:40 PM, olcott wrote:
>
On 12/1/2024 10:34 PM, Tim Rentsch wrote:
>
wij <wyniijj5@gmail.com> writes:
>
In response to the question of the subject line...
>
Just because a program is being written in a language that has
functions doesn't mean that what is being done is functional
programming.
>
Just because a program is being written in a language that has
classes and objects doesn't mean that what is being done is
object-oriented programming.
>
More than anything else object-oriented programming is a mindset
or a programming methodology.  It helps if the language being
used supports classes, etc, but the methodology can be used even
in languages that don't have them.
>
A quote:
>
  My guess is that object-oriented programming will be in the
  1980s what structured programming was in the 1970s.
  Everyone will be in favor of it.  Every manufacturer will
  promote his products as supporting it.  Every manager will
  pay lip service to it.  Every programmer will practice it
  (differently).  And no one will know just what it is.
>
That paragraph is taken from a paper written more than 40 years
ago.  The prediction came true with a vengeance, even more than
the author expected.  Most of what has been written about object
oriented programming was done by people who didn't understand it.
>
Two more quotes, these from Alan Kay:
>
  I invented the term "Object Oriented Programming," and C++
  is not what I had in mind.
>
  Though Smalltalk's structure allows the technique now known
  as data abstraction to be easily (and more generally)
  employed, the entire thrust of its design has been to
  supersede the concept of data and procedures entirely;  to
  replace these with the more generally useful notions of
  activity, communication, and inheritance.
>
The most important aspect of OOP is the ability to decompose
a problem into independent component parts.  This can eliminate
the side effects in the structured programming model that
result from global data.
>
Excpet that normally OOP is fully based on the operation resulting in
"side effects" as they mutate the state of the object the methods are
part of.
>
What this does is not ELIMINATE the side effects, but limits their
scope.  A given object type will tend to keep its own state "private"
and interact only with other object via "public" interfaces, allowing
us to limit the scope we need to think of when looking at
interactions.
>
This makes it very different from the "functional" model, where we do
not allow for side-effects.
>
I agree with the first paragraph, because of the word "normally".  I
think it's important to add that there is no inherent incompatibility
between object-oriented programming and functional programming.  There
are ways to work with classes and objects in a fully functional mode,
in much the same way that one can write code for data structures such
as AVL trees or B-trees that is fully functional (so there are no side
effects to existing trees when adding or deleting elements, for
example).
>
One might call this "idempotent" or "monadic",
vis-a-vis "pure", in the functional programming.
The idea of "no side effects" then also has for
usually that "idempotent" includes "repeatable,
with no side effects", i.e. usually "repeatable
to attempt until success, transactional", or
"repeatable to attempt, idempotent", then with
regards to the monadic that the entire body of
co-routines is all collected and a thing, while
"pure" functions usually mean idempotent, side-effect
free and also returning the same result for the
same inputs.
Not to be confused with "pure virtual" or abstract
methods, say.
Often goals these days include "idempotent routine"
since thusly when "Murphy's law arbitrarily fails
any routine", then thusly what's often "retry-logic"
or "error mode", or "failure mode", makes for what's
usually in "distributed systems" the "eventually
consistent" and "self-healing".
I don't see these so much in classic pattern lit-rature
though it's very widely held knowledge.
Because Murphy's law in distributed systems, ....
Functional programming doesn't exclude "side-effects",
per se.

Date Sujet#  Auteur
1 Dec 24 * What is OOP?45wij
1 Dec 24 +* Re: What is OOP?2Ross Finlayson
1 Dec 24 i`- Re: What is OOP?1Ross Finlayson
1 Dec 24 +* Re: What is OOP?3Lynn McGuire
1 Dec 24 i+- Re: What is OOP?1Ross Finlayson
2 Dec 24 i`- Re: What is OOP?1Bonita Montero
1 Dec 24 +* Re: What is OOP?2Michael S
2 Dec 24 i`- Re: What is OOP?1wij
2 Dec 24 +* Re: What is OOP?6Richard Damon
2 Dec 24 i`* Re: What is OOP?5wij
2 Dec 24 i +- Re: What is OOP?1Richard Damon
8 Dec 24 i `* Re: What is OOP?3Isaac Ganoung
9 Dec 24 i  `* Re: What is OOP?2wij
9 Dec 24 i   `- Re: What is OOP?1wij
2 Dec 24 +* Re: What is OOP?3Chris M. Thomasson
2 Dec 24 i`* Re: What is OOP?2wij
3 Dec 24 i `- Re: What is OOP?1wij
2 Dec 24 +* Re: What is OOP?24Tim Rentsch
2 Dec 24 i+* Re: What is OOP?4Michael S
15 Dec 24 ii`* Re: What is OOP?3Tim Rentsch
15 Dec 24 ii `* Re: What is OOP?2Michael S
17 Dec 24 ii  `- Re: What is OOP?1Tim Rentsch
2 Dec 24 i+* Re: What is OOP?13wij
3 Dec 24 ii`* Re: What is OOP?12Chris M. Thomasson
3 Dec 24 ii +- Re: What is OOP?1wij
3 Dec 24 ii `* Re: What is OOP?10wij
3 Dec 24 ii  `* Re: What is OOP?9Chris M. Thomasson
4 Dec 24 ii   `* Re: What is OOP?8wij
7 Dec 24 ii    +* Re: What is OOP?3Chris M. Thomasson
7 Dec 24 ii    i`* Re: What is OOP?2wij
7 Dec 24 ii    i `- Re: What is OOP?1Ross Finlayson
20 Dec 24 ii    `* Re: What is OOP?4Chris M. Thomasson
20 Dec 24 ii     `* Re: What is OOP?3Chris M. Thomasson
20 Dec 24 ii      `* Re: What is OOP?2Chris M. Thomasson
24 Dec 24 ii       `- Re: What is OOP?1Chris M. Thomasson
7 Dec 24 i`* Re: What is OOP? --- The most important aspect of OOP6olcott
7 Dec 24 i +* Re: What is OOP? --- The most important aspect of OOP4Richard Damon
7 Dec 24 i i+- Re: What is OOP? --- The most important aspect of OOP1olcott
9 Dec 24 i i`* Re: What is OOP? --- The most important aspect of OOP2Tim Rentsch
10 Dec 24 i i `- Re: What is OOP? --- The most important aspect of OOP1Ross Finlayson
7 Dec 24 i `- Re: What is OOP? --- The most important aspect of OOP1wij
4 Dec 24 `* Re: What is OOP?4Rosario19
4 Dec 24  +- Re: What is OOP?1wij
18 Dec 24  `* Re: What is OOP?2Stefan Ram
19 Dec 24   `- Re: What is OOP?1wij

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal