Smalltalk

From TunesWiki

Smalltalk is a class-based OO programming language with reflective capabilities.

Smalltalk can be viewed as an OS of sorts, more so if it is not running on another OS. It is fine grained, having 30,000-60,000 objects, rooted in some 200 classes; some big Smalltalk systems have over 1 million objects. No differentiation-separation is made between System and Application software: it's all one big sea of objects. It has no-kernel properties; but the VM serves a similar purpose. It has extensive, relentless boundary checking.

It is the most consistent OO language. Everything is an object, no exception: every number, letter. No object can directly affect the state of another object, only indirectly, by messages. No pointer arithmetic can occur.

Smalltalk was inspired by Simula. Smalltalk was developed under Alan Kay's team, at Xerox PARC in the 1970s and early 1980s. Xerox famously sat on some amazing technologies, throwing away many great opportunities, later developed instead by other companies: Ethernetworking (3com), Postscript (Adobe), laser printers (Apple), windowing graphic user interfaces (Apple, Microsoft), and Smalltalk (ParcPlace-Digitalk may have invited trouble by overpricing Smalltalk). Visual Smalltalk was absorbed by Cincom who now support VisualWorks and ObjectStudio (former Enfin).

Then Apple Computer's Steve Jobs got Kay and many of the PARC team to move to Apple. Some of the Smalltalk team moved to Digitalk. Then some Digitalkers moved to Apple. Sometime during all this, Apple licensed Smalltalk-80.

As corporate America often did and does, Apple sat on advanced stuff it had, and did nothing with it. In the meantime, IBM developed Visual Age, and at one time had 20,000-30,000 Smalltalk programmers. VA Smalltalk is now supported by Instantiations.

New Smalltalk implementations have emerged as Dolphin, Squeak, Smalltalk/MT, GNU and Ambrai Mac Smalltalk. Other recent important developments are Smalltalk on the web, such as Seaside and Vista Smalltalk. Smalltalk has further evolved as Strongtalk and now as Slate and Croquet. A web browser plugin for Squeak Smalltalk is also available.

Other developments of interest include SmallInterfaces and SOUL.

Major contributions to programming practice which arose in the context of Smalltalk development include the Integrated Development Environment (IDE), programming frameworks (exemplified by HotDraw) the SUnit testing framework (widely used as JUnit), refactoring browsers, peer-programming (pair programming) and XP (eXtreme programming). Recent languages such as Ruby appear to be inspired by Smalltalk. Wiki's such as this were invented by Smalltalker Ward Cunningham as a wiki-wiki.

Sheer programmer productivity has often been demonstrated by Smalltalk developers in coding contests, most recently using Seaside for web applications.

The prototype-based programming Self language has been credited with inspiring Javascript which is playing an important role in the AJAX movement in web development.