2 Comments

  • <p>Roy<br/>
    I added a comment on my blog that points to what I've done. In terms of how a plugin is loaded - it's a parcel (VisualWorks Smalltalk-speak). A parcel is kind of like a Java JAR file, except that:</p>

    * The code can be for arbitrary classes
    * The code can change arbitrary methods in any object in the system

    <p>As to reflection - well, Smalltalk (and Lisp, of course) pretty much invented reflection. The capabilities go well beyond what's possible in C# or Java (or any CLR/JVM based language, for that matter). A good example of what's possible is to consider what you can accomplish with #doesNotUnderstand:</p>

    <p>In Smalltalk, a message that is not understood ends up generating a MessageNotUnderstood exception. However, any object can implement a #doesNotUnderstand: method, and then handle that situation locally. It's not something you do every day - but it does make proxies trivial to implement. We don't need a vendor framework for proxy operations; they are effectively free....</p>

  • Thanks for the input!

Comments have been disabled for this content.