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


_______________________________________________
IAEP -- It's An Education Project (not a laptop project!)
IAEP@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/iaep

Reply via email to