From: Avi Bryant Date: 2001-11-02T02:41:31+09:00 Subject: [ruby-talk:24102] Re: where would you position Ruby in that plot? OO against Dynamic On Fri, 2 Nov 2001, Armin Roehrl wrote: > I came across the attached plot. > x-axis: "Dynamic" > y-axis: "Object-oriented" > and then the authors classified several languages: > From Smalltalk to Fortran. > Where would you place Ruby? I'd wedge it into the triangle between CLOS, Dylan, and Smalltalk - a little less OO than smalltalk, a little more OO than CLOS, a little less dynamic than CLOS and smalltalk. Compared to Ruby: - Smalltalk gets extra OO points for implementing all control structures as message sends. - Smalltalk gets extra dynamism points for being image based rather than source based. - CLOS loses some OO points for relying on the functional/procedural Lisp substrate. - CLOS gets extra dynamism points for the MOP. - Dylan loses a number of dynamism points for lacking "eval" and having limited reflection. - Dylan should really be at the same level of OO as Ruby (everything's an object, including classes, but not everything's a method call), and should get bonus points somewhere for multimethods, but I can't help docking it ever so slightly for using generic functions instead of message sends. The other axis I'm interested in is ease of metaprogramming - here, the ranking might be Smalltalk < Ruby < Dylan < Common Lisp Although Ruby and Dylan is a bit of a tossup (macros vs. eval). Smalltalk loses big here for its source code model (although it would win it back in spades if we introduced a tool support axis...) Cheers, avi