Sysop: | Amessyroom |
---|---|
Location: | Fayetteville, NC |
Users: | 43 |
Nodes: | 6 (0 / 6) |
Uptime: | 94:19:24 |
Calls: | 290 |
Calls today: | 1 |
Files: | 904 |
Messages: | 76,378 |
On 21.11.2024 00:53, Lawrence D'Oliveiro wrote:
On Wed, 20 Nov 2024 17:34:34 +0100, Janis Papanagnou wrote:
[*] A friend of mine just recently implemented the code frame for a
roguelike and followed the suggestion of an event based object-oriented
implementation; it worked well, he told me.
The next step would be to use coroutines so the logic of a longer-running
task, which has to wait for other events at multiple points, can be
written in a single linear stream without having to be fragmented into
multiple callbacks.
Yes, indeed.
Actually, if you know Simula, coroutines are inherent part of that
language, and they based their yet more advanced process-oriented
model on these. I find it amazing what Simula provided (in 1967!)
to support such things. Object orientation[*], coroutines, etc.,
all fit together, powerful, and in a neat syntactical form. - But
"no one" is using Simula, and my friend was using C++; don't know
what C++ supports in that respect today. I know that he implemented
the "simulation" parts (queuing, time-model, etc.) in C++ himself.
[*] It was the language who invented Object Orientation [...]
On Fri, 22 Nov 2024 00:04:32 -0000 (UTC)
Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
Yes, Simula pioneered OO. But the concept has gone in different
directions since then. For example, multiple inheritance, metaclasses
and classes as objects -- all things that Python supports.
What I read seems to suggest that Smalltalk had bigger influence on
modern twists of OOP. But then, may be Simula influenced Smalltalk?
Anyway, I don't like OOP very much, esp. so the version of it that was
pushed down our throats in late 80s and early 90s.
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
Actually, if you know Simula, coroutines are inherent part of that
language, and they based their yet more advanced process-oriented
model on these. I find it amazing what Simula provided (in 1967!)
to support such things. Object orientation[*], coroutines, etc.,
all fit together, powerful, and in a neat syntactical form. - But
"no one" is using Simula, and my friend was using C++; don't know
what C++ supports in that respect today. I know that he implemented
the "simulation" parts (queuing, time-model, etc.) in C++ himself.
[*] It was the language who invented Object Orientation [...]
No, it wasn't. First, programming in a language with classes and
objects does not imply object-oriented programming.
Second, the
underlying ideas of object-oriented programming pre-date Simula 67
by five years or more.
That history has been pointed out by
Alan Kay, who is the originator of the term and is responsible
for pioneering the concept.
Almost everyone who took Simula and C++ as the archetype for OOP
never understood it.
On 05.12.2024 04:53, Tim Rentsch wrote:
Almost everyone who took Simula and C++ as the archetype for OOP
never understood it.
LOL.
(Funny [dogmatic] statement, without any substance again.)
On 05.12.2024 04:53, Tim Rentsch wrote:
Almost everyone who took Simula and C++ as the archetype for OOP
never understood it.
If you take the position that Alan Key, as the person who is credited
with inventing the term "object oriented programming", gets to make the definition of what OOP is, then Tim's statement is accurate. Originally
OOP meant something very different from how it is interpreted in C++. (I don't know Simula except by reputation, so I can't comment on that.)
The original idea of OOP was to have self-contained "objects" that communicated only by passing messages. If object A wanted object B to
do "foo", it would not call "B.foo()" in its own context, as is done in
C++. Instead, it would pass a message "foo" to B. What B does with it,
and when, is up to B. If a return value is expected, then B will send a message with the answer back to A.
This is, I think, akin to the modern "actor" programming paradigm, [...]
Of course, all this has significant overheads - it is not suitable for a low-level high efficiency language. The rather different idea of OOP represented by languages like C++ can be very much more efficient, which
is why it caught on.
Perhaps the language that is most true to the original idea is Erlang,
with its "write once, run forever" motto.
On 05.12.2024 02:07, Tim Rentsch wrote:
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
Actually, if you know Simula, coroutines are inherent part of that
language, and they based their yet more advanced process-oriented
model on these. I find it amazing what Simula provided (in 1967!)
to support such things. Object orientation[*], coroutines, etc.,
all fit together, powerful, and in a neat syntactical form. - But
"no one" is using Simula, and my friend was using C++; don't know
what C++ supports in that respect today. I know that he implemented
the "simulation" parts (queuing, time-model, etc.) in C++ himself.
[*] It was the language who invented Object Orientation [...]
No, it wasn't. First, programming in a language with classes and
objects does not imply object-oriented programming.
It does not necessarily imply it. But if you'd know some more about
it you might understand that it's the natural way of thinking when
simulating systems' objects, and modeling object structures. Simula
in a natural way provided the platform to program object oriented.
(As said, without coining the term or speaking about "OO".)
Second, the
underlying ideas of object-oriented programming pre-date Simula 67
by five years or more.
Of course the ideas were there before Simula was released in 1967;
the inventors (also publicly) presented their ideas five years ago.
That history has been pointed out by
Alan Kay, who is the originator of the term and is responsible
for pioneering the concept.
Yes, the Simula "OO" pioneers didn't invent the *term* "OO", but they
were (amongst) the first who spread the ideas and the first inventing
a language to model OO and work with the OO concepts that are still
used and implemented in many other OO languages nowadays.
(All the rest is [IMO] no more than dogmatic or marketing.)
If you have some substance on the topic I'm always interested to hear.
Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
[...]
People who think programming in C++
or Simula encourages object-oriented programming don't understand
the term.
Or they use the term differently than you do. Language is not static.