Recommended Reading
From SlateWiki
While some material is provided on the website as a guide and *Reference* to the language, libraries, and frameworks, there is no book yet on Slate or copious sources of introductory material. So, here's a list of things that should help the novice on their way to full mastery:
- A tutorial in progress
- Lots of good stuff on http://www.readscheme.org/, in particular the implementation techniques (http://library.readscheme.org/page8.html) page.
- A good paper (ftp://ftp.cs.indiana.edu/pub/scheme-repository/doc/pubs/typeinfo.ps.gz) on the representation of type information in dynamically typed languages.
!Insights that drive Slate design
Lee Salzman's presentation (http://tunes.org/~eihrul/talk.pdf) and thesis (http://tunes.org/~eihrul/pmd.pdf) on "PMD": prototypes with multiple dispatch. These were followed by a more mature paper (http://tunes.org/~eihrul/ecoop.pdf) he gave at ECOOP 2005. The former is great for laymen, and the latter for anyone interested in the formal underpinnings and more technical details.
The Early History of Smalltalk (http://gagne.homedns.org/%7etgagne/contrib/EarlyHistoryST.html) (cleaned-up version, without figures (http://accesscom.com/~darius/EarlyHistoryST.html)) by Alan Kay.
The Design Principles Behind Smalltalk (http://users.ipa.net/~dwighth/smalltalk/byte_aug81/design_principles_behind_smalltalk.html) by Dan Ingalls, from Byte Magazine, Aug. 1981.
Jecel Assumpcao Jr.'s NeoSmalltalk ideas (http://www.merlintec.com:8080/software) (previously Merlin (http://www.merlintec.com) or Self/R).
Various papers by Brian Foote (http://www.laputan.org/foote/papers.html):
- Attack of the Clones (PDF) (http://crpit.com/confpapers/CRPITV13Noble.pdf), describing design pattern implementation simplifications using Self's semantics.
- The Selfish Class (http://www.laputan.org/selfish/selfish.html), describing good rules of thumb in program and framework design.
- Lifecycle and Refactoring Patterns that Support Evolution and Reuse (http://www.laputan.org/lifecycle/Lifecycle.html)
- Evolution, Architecture, and Metamorphosis (http://www.laputan.org/metamorphosis/metamorphosis.html)
- Designing to Facilitate Change with Object-Oriented Frameworks (http://www.laputan.org/dfc/discussion.html)
- Designing Reusable Classes (http://www.laputan.org/drc/drc.html)
