Smalltalk is a single paradigm language with very simple semantics and syntax for specifying elements of a system and for describing system dynamics [1]. When the language is used to describe an application system, the developer extends Smalltalk, creating a domain-specific language by adding a new vocabulary of language elements while maintaining the same semantics and syntax. Using most Smalltalk systems, it is easy to invent one's own development environment through inclusion of new system parts in the library and extension of the development tools. Moreover, it is possible to make changes to the environment, and to applications written using the environment, while the system is executing. These system characteristics create a flexible and enjoyable software development experience.
['Adele Goldberg']
Why Smalltalk