Python was designed (was Re: Multi-threading in Python vs Java)

rusi rustompmody at gmail.com
Wed Oct 16 21:30:23 EDT 2013


On Thursday, October 17, 2013 6:17:57 AM UTC+5:30, Ned Batchelder wrote:
> On 10/16/13 8:13 PM, Mark Janssen wrote:
> 
> >>>>> Who uses "object abstraction" in C?  No one.  That's why C++ was invented.

Examples from 
1. Linux Kernel
2. Python
3. OS/2

> > But, here it is significant that the user /consumer (i.e. *at the
> > workstation* mind you) is *making* the "object" because thier visual
> > system turns it into one.  Otherwise, at the C-level, I'm guessing
> > it's normal C code without objects, only struct-ured data.  That is,
> > you don't get all the OOP benefits like inheritance, polymorphism and
> > encapsulation.  C can do 2 of those, albeit kludgingly, but not all
> > three.  And without all three, it's not at all well-established that
> > you're doing real OOP.
> >
> 
> 
> Mark, it's clear you're passionate about computer science, but with all 
> due respect, you need to learn more about it.  "Real OOP" is a misnomer: 
> every language brings its own style of OOP, none more legitimate than 
> any other.

> And your earlier idea that punched cards didn't have tokens 
> is wildly ignorant of the state of software and languages 50 years ago.

Yes this is sounding like some slapstick comedy…

However… to speak a little for Mark's perspective (from a hopefully more educated background):
There's a fine line between laboriously simulating a feature and properly supporting it:
- C has arbitrary precision arithmetic -- use gmp library
- C is a functional language -- use function pointers and/or hand-generated macros with macro operators # and ##
Conversely:
- Haskell is an imperative language: Just make a parameter for machine state and pass it around.
etc etc ad libitum

Its called the Turing tarpit or more colloquially Greenspun's tenth law.

No the real problem is not primarily that Mark is CS-illiterate, but rather that being philosophy-illiterate he lectures, philosophizes and is generally logically completely inconsistent.

For me the real objectionable statement is: 

> And without all three, it's not at all well-established that you're doing real OOP. 

when combined with all his previous grandiloquence about how the object model is confused, wrong and needs to be redone from first principles.

In short its 'well-established' when it suits and not 'well-established' when it suits.

But then in all fairness this is the tendency of most OOP aficionados --
to jump between the 3 levels of discourse:
1. philosophy
2. science
3. technicality/technology

just to dodge the substantive, hard issues.

Ive written about this OOP-fan tendency prevaricate and bullshit:
http://blog.languager.org/2012/07/we-dont-need-no-ooooo-orientation-2.html

and more generally http://blog.languager.org/search/label/OOP

And I need to thank Mark for giving me much needed material for documenting the state of art of bullshitting.



More information about the Python-list mailing list