Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The author claims that Clojure tries to do OO. While Clojure does allow interaction with Java's object model, I think it's quite a stretch to say that it tries to do OO. Use of Java interop features for purposes other than interacting with a Java library or framework is generally discouraged.


The article is a year and a half old. Clojure doesn't "try" to do OO- multimethods always worked pretty well, and with 1.2.0 it does OO very well.

Clojure design philosophy is essentially "OOP: The Good Parts".


For there to be "Good Parts" of OOP, there would have to be a single kind of OOP.

P.S. Smalltalk.


That doesn't follow. If we define "OOP" to encompasses everything that anyone calls OOP then it's very possible for there to be "good parts" and "bad parts" in that set.

P.S. Smalltalk is a beautiful language with a great deal to offer anyone, but multimethods are superior. The fact that multimethods don't require multiple dispatch patterns demonstrates this.


i always miss interfaces in smalltalk. sometimes i really want a guarantee that the receiver will actually listen when i send a particular message. Even if you don't agree with that part, interfaces are really nice because the system will tell you, "hey, you forgot to add a method to respond to X. you got the other four, but spaced out this one. you should do something about that."


As someone new to clojure I gotta say that multimethods are pretty nice.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: