3 ms·
I'd say CLOS (http://en.wikipedia.org/wiki/Common_Lisp_Object_System http://en.wikipedia.org/wiki/Common_Lisp_Object_System) & Moose (http://moose.perl.org http
by draegtun 15y ago
I'd say CLOS (http://en.wikipedia.org/wiki/Common_Lisp_Object_System http://en.wikipedia.org/wiki/Common_Lisp_Object_System) & Moose (http://moose.perl.org http://moose.perl.org) myself.
However I do like Prototype based OO (http://en.wikipedia.org/wiki/Prototype-oriented_programming http://en.wikipedia.org/wiki/Prototype-oriented_programming) and especially its implementation in Io (http://www.iolanguage.com http://www.iolanguage.com)
- billitch 15y agoWell, CLOS may be state of the art in very fine designed,exhaustively redefinable, roll-your-own aspect oriented programming, and the most exhaustive object oriented paradigm for the most fluid pragmatic language ever. But I doubt you'll find useful sources for programming style searching for it. If you are implementing an object-oriented paradigm for your programming language, it's a very recommendable source to discover what can possibly be done with OOP.
- draegtun 15y agoBut I doubt you'll find useful sources for programming style searching for it. How about AOP? (http://en.wikipedia.org/wiki/Aspect-oriented_programming http://en.wikipedia.org/wiki/Aspect-oriented_programming). I think both CLOS & Moose push you more towards this programming style.
- GVRV 15y agoAs someone working with Moose recently (and not really loving the experience), can you elaborate why it made your cut?
- draegtun 15y agoFor my Perl reasons: * Nicer to write than standard Perl OOP, ie. less boiler plate, quicker prototyping, covers bizarre corner cases, etc * Moose is pretty much de-factor OO framework for Perl now, ie. big community drives its development and usage. * Perl6 synergy, ie. Moose heavily inspired by Perl6. Makes it easier when I switch between writing perl5 & perl6 code. For reasons why I think Moose makes the cut: * Roles - ala Smalltalk traits. see http://search.cpan.org/dist/Moose/lib/Moose/Manual/Roles.pod http://search.cpan.org/dist/Moose/lib/Moose/Manual/Roles.pod * Types - See http://news.ycombinator.com/item?id=1558882 http://news.ycombinator.com/item?id=1558882 (and also follow links back from it). * Method modifiers - See my AOP comment elsewhere