Traits approaching mainstream Squeak
John Pfersich
jp1660 at att.net
Mon Aug 29 06:51:33 UTC 2005
This would be NICE as a blog entry. :^)
At 02:18 AM 8/26/2005 -0700, Daniel Vainsencher wrote:
>Hi everyone.
>
>Traits are one of the things we hope to have in Squeak 3.9. They are a
>significant change to the language. On the bright side, it makes some
>things that were impossible to write without duplication possible, and
>many things that were hard to factor, easy.
>
>On the other hand, its a change to Smalltalk the language, and thus has
>significant effects on the tools and the core (Kernel) libraries. Quite a
>few people have worked on Traits at some point or the other, and I'm happy
>to say its nearing being ready for mainstream use, and we'd like to start
>getting some concrete "think of this as your near term future squeak" feedback.
>
>About the demo image - in its most recent incarnation, Traits is managed
>using packages, and its integration plan goes through the new process like
>any other change, as a set of package version loads. However since after
>loading, classes are implemented using Traits, the loading includes some
>self administered brain surgery, and thus is somewhat tricky. We haven't
>quite made it ready for clean loading yet, so what we provide at the
>moment is a demo image based on the final 3.8, which is at:
>http://www.cs.pdx.edu/~danielv/TraitsBeta3.02.tgz
>
>There's quite a bit of conceptual & design documentation on Traits in the
>form of research papers. For that see
>http://www.iam.unibe.ch/~scg/Research/Traits/
>
>Assuming you know what traits are, what the image contains is:
>1. An implementation of Traits.
>2. Traits are quite a bit like classes, so this duplication is removed
>using, you guessed it, Traits. So this is one huge example.
>3. A few smaller simple examples.
>4. Tests for lots of aspects.
>5. A recent OB, with a couple of Browsers demonstrating support for
>Traits, in the direction that the papers mention.
>
>Basically, the main conceptual "gotcha" you need to remember whenever
>working in a Traits image, is that if you're modifying code in a class,
>this code might actually come from a Trait, and thus you might actually
>want to change it there instead. If you don't know this (for example
>because the tool hasn't been updated yet, and doesn't show you the method
>comes from a trait, and you don't check yourself), then you'll duplicate
>the code when you modify it.
>
>Note that we're extending the OB to support these things (we're not done
>yet), but there are many tools that need to be updated to be Traits aware
>- the debugger, the RB (this is an interesting job, since it would need to
>be aware of them!), alternative browsers and so forth. You're welcome to
>help in specifying and implementing the changes needed...
>
>So, have fun, and try to give any significant feedbacks as early as possible.
>
>Daniel Vainsencher
More information about the Squeak-dev
mailing list
|