Last updated at 2:24 pm UTC on 11 September 2006
IRC: chat.freenode.org aka: bit`, kutsuya
- Testing (Test Driven Development)
- Modular development (Envy)
Smalltalk goals: (copied from Byte 1981 article)
- Personal Mastery: If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual.
- Good Design: A system should be built with a minimum set of unchangeable parts; those parts should be as general as possible; and all parts of the system should be held in a uniform framework.
- Purpose of Computer Language: To provide a framework for human communication.
- Scope: The design of a language for using computers must deal with internal models, external media, and the interaction between these in both the human and the computer.
- Objects: A computer language should support the concept of "object" and provide a uniform means for referring to the objects in its universe.
- Storage Management: To be truly "object-oriented", a computer system must provide automatic storage management.
- Messages: Computing should be viewed as an intrinsic capability of objects that can be uniformly invoked by sending messages.
- Uniform Metaphor: A language should be designed around a powerful metaphor that can be uniformly applied in all areas.
- Modularity: No component in a complex system should depend on the internal details of any other component.
- Classification: A language must provide a means for classifying similar objects, and for adding new classes of objects on equal footing with the kernel classes of the system.
- Polymorphism: A program should specify only the behavior of objects, not their representation.
- Factoring: Each independent component in a system would appear in only one place. (Envy?)
- Leverage: When a system is well factored, great leverage is available to users and implementers alike.
- Virtual Machine: A virtual machine specification establishes a framework for the application of technology
- Reactive Principle: Every component accessible to the user should be able to present itself in a meaningful way for observation and manipulation.
- Operating System: An operating system is a collection of things that don't fit into a language. There shouldn't be one.
- Natural Selection: Languages and systems that are of sound design will persist, to be supplanted only by better ones. (Might take a million years though. ;)