I actually had a fairly long talk with Bjarne Stroustrup while
building an UI Toolkit out of (would you believe) PostScript for the
NeWS (Network Extensible Window System). We had realized that PS
really was, like Javascript, a very lisp-like language and so
prototyped (pun intended for you JS'ers) a 1-page of code classing
system, with multiple inheritance and mix-ins if needed.
This was in the mid-80s.
Bjarne was *really* clear that C++ was *not* supposed to be an OO
version of C. But a *better* C.
The PS-JS link is quite strong, historically, BTW. Both are attached
to a widely distributed visual programming system (Printers,
Browsers). Both are dynamic, scripting, and ubiquitous. Both are
standardized. Etc.
-- Owen
On May 25, 2009, at 8:01 AM, Prof David West wrote:
Doug,
Some short answers, we can discuss further some time if interested.
First: the "technical" reasons C++ was not considered OO = strong
typing, friend declarations, multiple inheritance, explicit
constructors, and an over-dependence on function overrides.
Second: subtler, but in my opinion more important, the philosophy of
the language - C++ was never intended to be an OO language.
Marketing saw some superficial similarities and jumped on the OO
bandwagon and represented the language as something it was not
intended to be. (They also worked very hard to redefine OO to be
closer to what C++ offered - their own version of Newspeak.)
C++ was intended to be a means to impose structured programming
discipline on C programmers without, in any way, interfering with
the hyper-efficient performance characteristics that arose from
being as faithful a representation of the hardware as possible.
In contrast - the OO tradition that began with Simula (not Simula I
which was already moving away from the philosophical ideal) and was
embodied in Self and Smalltalk, did not care about the machine, did
not care about efficiency, it was all about the domain - faithful
representation of same - and about human-machine "natural"
communication about that shared domain (both humans and objects
"lived" in the same "world").
C++ versus Smalltalk was an expression of an even deeper
philosophical divide between formalists and aformalists that traces
back to the ascendency of the former during the Age of Reason.
dave
On Sun, 24 May 2009 18:35 -0600, "Douglas Roberts" <[email protected]
> wrote:
Not to digress, but Dave kind of lost me one day at a FRIAM when he
said "C++ is not object oriented." I didn't really know what he
meant, because I've been using C++ for about 20 years now to
accomplish polymorphism via object inheritance, containment, and
method specialization (with and without templates) -- which use
pretty much meets most definitions of OO programming that I've
encountered.
Dave, I'd be interested in knowing what you meant...
--Doug
On Sun, May 24, 2009 at 6:20 PM, Stephen Guerin <[email protected]
> wrote:
On Sun, May 24, 2009 at 5:47 PM, Douglas Roberts <[email protected]
> wrote:
> Interesting. Other issues that will come to play with an ABM of
the
> intended scales you describe are synchronization of the various
asynchronous
> distributed components, message passing latency, and message
passing
> bandwidth. Hopefully a course-grained sync & message passing
design can be
> developed, because http is not good for either latency or
bandwidth (using
> Myrinet or Infiniband for comparison).
Yeah, I'm not thinking this would be used for a single large-scale
ABM
for exactly the synch issues you describe.
This would be more for authoring and deploying many smaller-scale
applications written with an agent-oriented perspective. What Dave
West talks about when he refers to how object-orientation was
originally conceived not how current object-oriented programming is
done. This is close to what Smalltalk/Seaside looks like but probably
implemented within Javascript.
-S
--
--- -. . ..-. .. ... .... - .-- --- ..-. .. ... ....
[email protected]
(m) 505.577.5828 (o) 505.995.0206
redfish.com _ simtable.com _ sfcomplex.org _ lava3d.com
============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org
--
Doug Roberts
[email protected]
[email protected]
505-455-7333 - Office
505-670-8195 - Cell
============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org
============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org