Smalltalk Programming Language
History of Smalltalk
In the 1970's researchers at Xerox PARC were exploring ways to make programming accessible to anyone interested in using a computer to solve their problems. This led to the invention of Smalltalk, the first true object-oriented programming language with tools that could assist the user in developing applications with graphical user interfaces. This technology became the model for the Macintosh and Windows user interfaces.
The Lure of Smalltalk
Computer researchers have always wanted to create a language that lets programmers model applications closely to the real-world problems they try to solve. Smalltalk is the result of those efforts.
Smalltalk is a dynamic language whose special benefits derive from three unique characteristics: pure objects, exploratory programming, and malleable models. Pure objects is the idea that objects communicate only via messages; there are no cross-object memory references as there are in most other languages. Pure objects are inherently more reusable than hybrid approaches because they completely decouple object usage (the external interface) from object implementation (the internal code and data). This allows an object to be used continually, even though its internal implementation may change.
Smalltalk fosters exploratory programming by providing a forgiving environment. This is characterized by incremental development in which a change can be implemented and then tested immediately. Errors can simply be backed out or modified. The Smalltalk environment rewards (rather than penalizes) trying out ideas, thus enhancing both creativity and productivity. With a less dynamic language, many ideas are not tried because the price of making a programming mistake is too high.
Smalltalk is well suited to building malleable models of business processes. Due to Smalltalk's dynamic nature, the model can be kept running in the face of incremental change where the cumulative effect is quite extraordinary. Because the business environment is undergoing constant and accelerating change, business process models are continually changing and in many respects the problem faced by the enterprise is how to evolve these models incrementally while continuing to use them.
Smalltalk - the Natural Successor to COBOL Smalltalk is finding its greatest success in the enterprise development organization that is moving to client/server architecture, and where COBOL has been used previously. There are several reasons why Smalltalk appeals to COBOL users. First, both languages share the characteristic of approachability. They read like natural language rather than technical symbology. This makes them practical for business logic, which needs to be understood by business people who are not necessarily technologists.
Next, they are viable because they are standard languages. There is a de facto standard in place for Smalltalk, which is documented and implemented by several vendors. A Smalltalk ANSI standards committee has been formed to further develop the standard.
Finally, unlike COBOL or even Object COBOL, Smalltalk is a pure object language. This makes it ideally suited to modeling business processes. Smalltalk can be used to define new concepts, making it scaleable for the enterprise.
Objects in Smalltalk can represent real-world objects, and their methods can model the behaviors of those real-world objects. For example, the objects "automobile" and "truck" inherit data (like "has wheels" and "has an engine") and methods (like "accelerate to maximum speed") from the class "Vehicle". These objects, however, may differ on their specific values for the "wheels" and "engine" properties, and on their "accelerate" method. Within a Smalltalk program, messages are sent to objects instructing them to invoke their methods. In a program that simulates the movement of vehicles, an "accelerate" message might be sent to "car" and "truck". Each object would then active its particular "accelerate" method. (Reference: LANGUAGES OF AI by Joseph Schmuller, September/October 1991, page 21)
Glossary Link - Smalltalk Programming Language
|CMU AI Smalltalk Repository||Contains shareware implementations, FAQ, newsgroup archives, and other information.|
|Different Smalltalk Implementations and Dialects||A archive of Smalltalk implementations and information.|
|Free Smalltalk Compilers and Interpreters||Free compiler site containing many languages including Smalltalk.|
|Smalltalk Archive||Washington University in St. Louis data archive.|
|Smalltalk Archive - SunSite||GNU Smalltalk|
|Smalltalk in the News||News releases, articles, and customer experience reports.|
|Smalltalk FAQ||Contains the Smalltalk FAQ which includes Meta issues, archives, projects, references, programming issues, and vendor information.|
|Smalltalk FAQ||Contains links to several FAQs as well as links to tutorials|
|Smalltalk Programming Language||Learn about what the smalltalk programming language is.|
|Why Smalltalk||Informative sight on Smalltalk and similar languages such as Dylan.|
|Yahoo - Smalltalk Programming Language||Computer Languages Focused on Smalltalk -- Links at these sites include the Smalltalk archive, Smalltalk for the Macintosh, an index of sources of Smalltalk information, Usenet, and FAQ.|
|Formerly VMark. ENFIN Smalltalk and numerous other object-oriented development products.|
|VisualAge for Smalltalk is a product set of object-oriented, application-development power tools with support for graphical user interface (GUI) and client/server workstation applications. There are separate products for OS/2, Windows+, and AIX, and one server product that supports for all three platforms.|
|Company profile, products, press releases, ENVY distributors, and more.|
|Contains information about their products, services,
support, as well as their latest press information.
|Two Object-Oriented Languages: Actor And Smalltalk/V||Stant, V. (1987) PC AI, 1(4), 54.|
|A Wealth of Languages: Smalltalk, LISP, Prolog||Keyes, J. (1992), PC AI, 6(5), 20-44.|
|An Earful of Smalltalk: Objects and Methods||Williams, J. (1992), PC AI, 6(5), 48-53.|
|Object Oratory: C++ vs Smalltalk||Williams, J. (1993), PC AI, 7(3), 22-29.|
|Source Code Control In A Smalltalk Environment||Pitts, D. and Miller, B. (1995) PC AI, 9(5), 34.|
|Smalltalk-80: The Language and Its Implementation||Goldberg, A. and Robson, D. (1983) Reading MA: Addison-Wesley||
|A Taste of Smalltalk||Kaehler, T. and Patterson, D. (1986) New York: W. W. Norton|
|A Little Smalltalk||Budd, T. (1989) Reading, MA: Addison-Wesley|
|Object Oriented Programming With Wmalltalk/V||Savic, D. (1990) Chichester, West Sussex: Ellis Horwood Limited pps 340, ISBN 0-13-040692-9|
|The Art and Science of Smalltalk - An Introduction to Object-Oriented Programming Using Visualworks||Lewis, S. (1995) Prentice Hall / Hewlett-Packard Professional Books 212pp, ISBN 0-13-371345-8|
|The Distributed Smalltalk Survival Guide (Advances in Object Technology , No 19)||Montlick, T. (1999) SIGS Books and Multimedia, pps. 240. ISBN 0521645522|
|Smalltalk, Objects, and Design||Liu, C. (2000) Iuniverse.com, pps. 289. ISBN 1583484906|
Other AI Info Categories
|AI Languages ------------------------------------------------------>||C++|
|Creative Thinking||Data Warehouse/Mining||Forth|
|Distributed Computing||Expert Systems||Lisp|
|Fuzzy Logic||General AI Sites||Logo|
|Genetic Algorithms||Help Desk||OPS|
|Intelligent Agents||Intelligent Applications||Prolog|
|Machine Learning||Modeling and Simulation|
|Multimedia||Natural Language Processing|
|Neural Networks||Object Oriented Development|
|Optical Character Recognition||Robotics|
|Speech Recognition||Virtual Reality|