Greetings -
We just put out release 0.8 on our main web site: http://research.sun.com/projects/lively/ Here is a summary of major (and some minor) changes... 1. The entire Morphic architecture has been converted to wrap host SVG objects instead of extending them. This was done in such a way as to change almost nothing@the level of most applications. The major benefit afforded by this change is compatibility, since many JavaScript implementations do not support the ability to extend host objects. 2. We have adopted a class system derived from prototype.js ver 1.60 and extended with built-in support for serialization and copy constructors. These conventions make it much more natural to use classes and class inheritance in JavaScript (the .subclass() method and $super optional parameter). 3. Some principles of layout have been introduced: setBounds() has been split into setPosition() and setExtent() in anticipation of layout managers that will want to move submorphs around without having to recompose them internally. Recomposition is triggered by setExtent() via the message adjustForNewBounds(). This is summarized in the comment to Morph.setBounds(). 4. An optional menu button has been added to ScrollPanes. See the SimpleBrowser for an example of how to use this feature. 5. Paned windows and their titleBars are now able to resize themselves proportionally (using the rectangle resize handles) independent of their ability to grow and shrink using the handles to change scale. 6. We have the beginnings of a reflective model for execution state. If one sets Config.debugExtras = true, most methods are wrapped with a function that keeps track of the stack with method names *and* even the arguments. This can be tested by, eg, typing Function.showStack() in any textMorph, selecting it and evaluating it with alt-d. This should result in the stack being printed to the console with method names and argument values. 7. This same approach makes it possible to trace code. This capability can be tested by invoking the 'test tracing' option of the Morph menu. Note that this will generate a lot of output if used on a complex object. Best to try it on a simple rectangle or ellipse. This would appear to be evidence that we only make releases every 3 months or so. However this is *not* our intention. We are planning, first of all, to make the more frequent updates on our beta site available for anonymous download. Also we are planning soon to open up our working repository, but this will be the topic of another message. Have fun; report bugs - Dan, for the LK team |
On Feb 1, 2008,@3:59 PM, Dan Ingalls wrote:
> 2. We have adopted a class system derived from prototype.js ver 1.60 > and extended with built-in support for serialization and copy > constructors. These conventions make it much more natural to use > classes and class inheritance in JavaScript (the .subclass() method > and $super optional parameter). In case you haven't seen it, the qooxdoo JavaScript library has an interesting class system, described here: http://qooxdoo.org/documentation/0.7/class_declaration While I don't have any practical experience with it, it certainly seems 'cleaner' than some of the ad-hoc class-y-ness I've seen in other JS frameworks. @least parts of it; 'super' stuff is still awkward. Patrick Mueller http://muellerware.org/ |
Free forum by Nabble | Edit this page |