Last updated at 9:47 am UTC on 22 September 2006
Smalltalk is a general purpose, high-level programming language. It was the first original "pure" object oriented language, but not the first to use the object oriented concept, which is credited to Simula 67.
The explosive growth of Object Oriented Programming (OOP) technologies began in the early 1980ís, with Smalltalk's introduction. Behind it was the idea that the individual human user should be the most important component of any computing system, and that programming should be a natural extension of thinking, and also a dynamic and evolutionary process consistent with the model of human learning activity.
In Smalltalk, these ideas are embodied in a framework for human-computer communication. In a sense, Smalltalk is yet another language like C and Pascal, and programs can be written in Smalltalk that have the look and feel of such conventional languages. The difference lies in the amount of code that can be reduced, less cryptic syntax, and code that is easier to handle for application maintenance and enhancement. But Smalltalk's most powerful feature is easy code reuse. Smalltalk makes reuse of programs, routines, and subroutines (methods) far easier. Though procedural languages allow reuse too, it is harder to do, and much easier to cheat.
It is no surprise that Smalltalk is relatively easy to learn, mainly due to its simple syntax and semantics, as well as few concepts. Objects, classes, messages, and methods form the basis of programming in Smalltalk. In general, the methodology to use Smalltalk consists of four steps:
The notion of human-computer interface also results in Smalltalk promoting the development of safer systems. Errors in Smalltalk may be viewed as objects telling users that confusion exists as to how to perform a desired function.
- Identify objects that appear in the problem and in its solution.
- Classify these objects based on their differences and similarities.
- Design the messages that will constitute the language of interaction between the objects.
- Implement the methods by means of algorithms that carry out the interaction among objects.