Self – Fun Through Simplicity
selflanguage.org
selflanguage.org
The most influential thing about Self turned out to be the optimization technique called "code splitting", where you identify a "happy path" and hoist out all the expensive lookups along that path, with maybe just checks for whether you are still on it. So, for example, you emit code for one loop that just does fixed-size integers, and another one for all the other numeric types. Then at runtime, the code first checks for an int32, and then (in practice) always ends up in the fast one.
Another way to say this is that if you need a reliable system made of a dynamic-type language, it has to be composed of smallish, independently testable and very thoroughly tested components. Smalltalk systems tend naturally toward the big-ball-of-mud anti-pattern. The tendency can be limited only by the self-discipline of a master craftsman in charge.
Previously: https://hn.algolia.com/?q=selflanguage.org
https://news.ycombinator.com/item?id=23301722
https://news.ycombinator.com/item?id=23402199
although not with the success of today's posting (based on comment count.)