> ​First of all, let me state that I'm a complete Clojure noob. 
> Still, I thought that Clojure's multimethods were a completely 
> valid OOP approach.
> 
​
Q
​uoting Alan Kay:

When I have made that point (about Alan Kay's vision) to certain OOP 
evangelists, I have been told that Alan Kay's vision of OOP is no longer 
relevant, or that I have misunderstood it. I do not mean to drag you into a 
long debate, nor do I wish to waste your time, but if you are very patient, 
and you have a lot of free time on your hands, you can read what I wrote 
(very long and badly edited) here: 

http://www.smashcompany.com/technology/object-oriented-programming-is-an-expensive-disaster-which-must-end

and then check out the various ways people responded on Hackers News (I 
feel that I was misunderstood, though I take the blame, as my essay was not 
as clear as it should have been): 

https://news.ycombinator.com/item?id=8420060

A dozen people wrote me private emails after I posted that blog post, and 
several of them asked me how to get inheritance of functionality in 
something like Clojure. 

I am writing a follow-up post (which I promise will be shorter and better 
edited than the original post) and one thing I am doing is writing examples 
of how you could imitate the OOP style using Haskell or Clojure (which 
apparently I should have done in the first post). 

--- lawrence 





On Monday, October 27, 2014 2:11:54 PM UTC-4, Rogerio Senna wrote:
>
> On Mon, Oct 27, 2014 at 2:21 PM, larry google groups <lawrenc...@gmail.com 
> <javascript:>> wrote:
> ​
>
>> The differences between OOP and multimethods should be stressed. 
>>
>> I just wrote about this on my blog, and those who mostly worked with OOP 
>> kept wondering, how do you get inheritance of functionality? 
>>
>
> ​
> ​First of all, let me state that I'm a complete Clojure noob. Still, I 
> thought that Clojure's multimethods were a completely valid OOP approach.
>
> ​
> Q
> ​uoting Alan Kay:
>
> OOP to me means only messaging, local retention and protection and hiding 
>> of state-process, and extreme late-binding of all things. It can be done in 
>> Smalltalk and in LISP. There are possibly other systems in which this is 
>> possible, but I'm not aware of them.​
>
>
> ​Notice that he intentionally left "inheritance" out from that definition.
>
> That means that the class based, C++ style that we usually call "OOP" is 
> actually just one particular kind of OOP - so the way that JavaScript, 
> Common-Lisp CLOS and, as I see it, Clojure multimethods do it are also 
> valid "OOP" as well, I believe.
>
> Am I right? Or am I missing something here?
>
>
> Thanks in advance,
>
> Rogerio.
>
>
> ​​
>
 

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to