No. OOP is overhyped anyway... It only helps for namespacing, and primitive values where encapsulation works. Since children will not make reusable libraries mostly I think there is no point making things more complex as they already are. BTW I did not find the second version more readable but it can be only me.
On 2011.05.24. 19:11, C. Scott Ananian wrote: > On Fri, May 20, 2011 at 11:09 AM, Alan Kay<alan.n...@yahoo.com> wrote: >> Smalltalk actually got started by thinking about a way to make a child's >> Logo-like language with objects and pattern matching that could express its >> own operating system and environment. >> >> It is very tricky to retain/maintain readability (so the first Smalltalk was >> also an extensible language not just semantically but syntactically). >> >> With a tile language, this is really worth thinking about, since using tiles >> suggests ways to extend both the form and the meaning of the tiles. > I've written a follow-up post, musing on the "readability" aspect Alan > mentioned above: > http://cananian.livejournal.com/64330.html > > Is it worth trading a very simple and direct syntax like: > var Point = {}; > Point.x = 0; > Point.y = 0; > var Point3D = Object.create(Point); > Point3D.z = 0; > > for the more readable: > > Class("Point", { > has: { > x: {is: "ro"}, > y: {is: "rw"}, > }, > }) > > Class("Point.ThreeD", { > isa: Point, > has: { > z: {} > }, > }) > > at the cost of introducing additional complexity into the object > creation process. The complexity is in a library, so the base > language is kept small -- but it's still more turtles thrown onto the > stack that you have to understand. > > Returning to Alan's point about tiles -- the nice thing is that you > could define a custom tile for the Class(....) syntax above, with > pretty selectors to help you select parent class, slot attributes, > etc. But perhaps it's better just to keep the conceptual model small > -- then you don't need fancy GUI widgets to help you out. > > For a more concrete example, you might want to read through: > > https://github.com/cscott/TurtleScript/blob/beeba5c138d88af40297f93689ecbe7721724819/crender.js#L333 > > starting at line 333 or so. That's a widget library written in > Simplified JavaScript/TurtleScript which uses prototype inheritance > extensively. You can do clever things like swipe the implementation > of a function from a totally different class; see how we do "multiple > inheritance" around line 661. Is the Joose syntax an improvement? > --scott > _______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel