In article <53ded02e$0$29980$c3e8da3$54964...@news.astraweb.com>,
 Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> wrote:

> Marko Rauhamaa wrote:
> 
> > I've reached a point where I think classes are a superfluous OO concept.
> > You only need objects.
> 
> I don't know whether "superfluous" is correct, but they certainly are
> *optional*. There are at least two types of object oriented programming:
> class-bases, and prototype-based. Java, Python, Ruby, etc. are all
> class-based. The only example of a prototype-based OOP language I know of
> is Javascript, and even that has recently gained the ability to define
> classes.
> 
> I don't know enough about prototyped OOP to really give a definitive answer,
> but I believe that the popularity of class-based OOP is because there is a
> huge body of theory on types, which makes it easier for compiler designers
> to reason about classes than prototypes. For example, if Haskell introduces
> OOP (and it may already have, I don't know) I would expect it to be
> class-based. Also, the first OOP languages (Simula and, especially,
> Smalltalk) are class-based, and people tend to copy what's been done before
> and what they're familiar with.

The first code I ever saw which had any OO concepts was the Unix kernel 
I/O drivers.  The whole thing was written in C.  It essentially 
implemented something we would recognize today as static class 
inheritance with polymorphic method dispatch.

Each driver was required to implement a number of functions (read, 
write, open, etc), with specified signatures and contracts.  
Effectively, the all subclassed a (mythical) BaseIODriver.  There was a 
big table where the rows were the different drivers (indexed by major 
device number), and the columns were the different methods.  That was in 
the early 70s.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to