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

This is not a new realization. Some enlightened people never allow themselves to be deluded.) Brian Harvey is one of them.

OOP is just a set of conventions which could be implemented efficiently even in Scheme. CLOS is another canonical example which people prefer not to notice to maintain their comfortable reality distortion.

Everything was solved long ago by much brighter minds that now populating Java/Javascript world. Just imagine (but almost no one could) how much more clean, efficient and natural it will be to implement something like Hadoop in Common Lisp or Erlang - passing data and functions as first-class S-Expressions or even packed Erlang binaries. Instead they re-implemented a few concepts form FP in Java way.

Here is a heretic video about what OOP really is: http://www.youtube.com/watch?v=qbUJXsKAtU0&feature=edu&#... ;)



> Just imagine (but almost no one could) how much more clean, efficient and natural it will be to implement something like Hadoop in Common Lisp or Erlang

Hell, let's go one step further and implement it in datalog:

http://boom.cs.berkeley.edu/ (scroll down to Boom Analytics)


I think you are on to something, but I don't think the root of the issue is OOP but rather a "C-like" syntax and all the baggage that seems to come along with that.

C is great (I absolutely adore it) but despite the numerous reasons that C++ did it I think we would be in a better position today if the fad of making new languages "C-like", even if just superficially, never took off. At each step, it is hard to point the finger at any one person (even in retrospect, it is hard to really fault Stroustrup), but I feel nevertheless too many prior advances were ignored along the way to modern Java for far too long.

A terribly superficial but I think potent example of how "C-like" has done harm is that languages have keep using it's abusive declaration syntax for so long. It is so clearly absurd and unnecessary that it is a wonder that people haven't started dropping it sooner. Instead, such as in the case of Java, it seems they have just redefined what is idiomatic in order to avoid the harsher cases seen in idiomatic C. At least Go strays from the example set by C, though it still falls a bit short I think.

Basically I see the primary driving force of many trends in programming, including to some limited degree OOP, to be pain inherited from C.


Agree. That is something I dislike about go. A lot of rigth things, ugly as hell c syntax. For people that love C-like is hard to understand how taste that bad for people that love something else. Is like OO vs FUNC, C-like VS anything else.


Yeah. Go strayed far enough (compared to say, Java. It is absurd how close they toe the line...) that I can enjoy it, but further still would be nice. Rehashed declaration syntax and multiple return values are welcome changes. The rest? Eh, I would still prefer s-exps. Oh well.


Funny how I end-up arguing for or against OOP in the same thread.

Guy Steele, one of the big proponents of OOP and one of the creators of Scheme, does not agree that tacked-on OOP is practical: http://www.dreamsongs.com/ObjectsHaveNotFailedNarr.html


Actually, he says quite a bit more than that. That article is a very effective rebuttable of OP's position.




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

Search: