This is a question is occasionally asked by students and here is the answer.
We are not religious. This choice is not dogmatic. We do both research in programming languages and tool support for software evolution. In both cases Smalltalk is handy:
- Programming language — Smalltalk is extermely uniform. Experimenting with a language change is faster in Smalltak, than say, Java or Ruby. Their syntax and sets of rules are bigger, which implies more work.
- Tool Support — If you want to extend the environment with more browsers/views/features, you can do it easily. Also, tool support and meta-programming go well together. You don’t have a separation between application code and environment code. This makes the whole system very malleable to experiement with.
There exist other research platforms out there to ease experimentations in either category. They don’t match however with the versatility of Smalltalk, which remains thus a very competitive choice to consider. Usually, we mature our project to Java or Eclipse only after initial success in Smalltalk.
- Smalltalk 80: the Language and its Implementation, by Adele Goldberg
- Smalltalk-80: Bits of History, Words of Advice, by Glenn Krasner
- Design Principles Behind Smalltalk, by Daniel H. Ingalls
- The early history of Smalltalk, by Alan Kay
- Smalltalk Best Practice Patterns, by Kent Beck
- Smalltalk: a Reflective Language, by F. Rivard
- Back to the future: the story of Squeak, a practical Smalltalk written in itself, by Daniel H. Ingalls et al.
- Special issue on Smalltalk, BYTE magazine 1981