On Saturday, October 19, 2013 2:02:24 AM UTC+5:30, Peter Cacioppi wrote:
> 
> I still say that object-based is a distinct and meaningful subset of
> object-oriented programming.

Yes that is what is asserted by
http://www-public.int-evry.fr/~gibson/Teaching/CSC7322/ReadingMaterial/Wegner87.pdf
 
-- a classic though old reference

> The former can be implemented elegantly in a wide range of languages without 
> much in the way of specific language support, the latter needs to designed 
> into the language to allow a modicum of polymorhpic readability.

3 examples were given (1) python's C implementation (2) OS/2 (3) Linux kernel
About 2 I dont know anything though I believe gdk and gobject are more 
contemporary examples.

About 1 I have reservations -- see below

IMO the linux kernel is the closest approx to what you are asking:
The details are here http://lwn.net/Articles/444910/
The top level summary is in the opening paras of
http://lwn.net/Articles/446317/
 
> It's an important distinction, because a project that is constrained to C 
> should (IMHO) target an object-based design pattern but not an 
> object-oriented one. That said, I'm open to disputation-by-example on this 
> point, provided the example is reasonably small and pretty. (If the only 
> polymorphic C code is ugly and non-small, it sort of proves my point).

Yes this is an important point though hard to argue in a definitive way -- I 
call such arguments philosophical rather than scientific; ie it is important 
but it cant really be settled once and for all.

To see this one can start with two extremes:
Extreme 1: Computability (aka Turing) theory. From this pov every 
language/system/computer is equivalent to every other and people designing 
'newer' and 'better' ones are wasting their's and other's time just like 
fashion designers who keep alternating pant-hems from Elvis Presley to narrow.

Extreme 2: Semicolon as separator differs from semicolon as terminator;
P4 processor is different from P2 etc etc -- essentially treating any 
difference as a substantive difference.

Clearly both extremes are unsatisfactory: the first lands us into the 
Turing-tarpit. The second makes a discussion of close-but-different impossible.

Just as the study of algorithms arose out of a desire to study program 
efficiency but with the nitty-gritty details of machines abstracted away, in 
the same way programming language semantics arose in order to study broad 
classes of languages with details hidden away.

Unfortunately, even after 50 years of trying, semantics has been a dismal 
failure in defining the what and where and whither of OOP.
In a sane world this would have signified that perhaps OOP as a concept(s) 
needs to be questioned.
Considering that the opposite has happened -- programming language semantics as 
an area has become distinctly 'old-fashioned' and not-so-respectable-- I can 
only conclude that the world is not sane.

Well the tide is slowly turning -- here's a growing bunch of people questioning 
the validity of OOP:
http://en.wikipedia.org/wiki/Object-oriented_programming#Criticism

Of these I find two noteworthy:
1. Stepanov who is next to Stroustrup in C++ circles, calls OOP a hoax.
2. Carnegie Mellon university has eliminated OOP as "unsuitable for a modern CS 
curriculum"

And which is why I sympathize with Mark Janssen's passion to clean up the OOP 
act.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to