Join us on:

T9. Back to the Future: Programming in Smalltalk

James Foster, GemStone Systems, Inc.

As a junior-high student in 1971, James discovered the local university's computer lab and learned Basic, Fortran, and assembly. After trying other careers (commercial aviation and law), he returned to computer programming and was introduced to OOP on the Macintosh in the 1980s. Since then James has worked on large system (primarily in healthcare) and introduced agile practices to the teams he has lead. James is a veteran OOPSLA attendee and has presented at OOPSLA and other conferences. James Foster is on the Smalltalk Engineering Team at GemStone Systems, Inc. and is an evangelist for the Seaside web framework.

If you've been hanging around OOPSLA for a while you've probably heard some curmudgeon respond to a "new" idea with, "we had that in Lisp 50 years ago" or "we had that in Smalltalk 30 years ago." Truth be told, there are a number of elegant ideas that were generally regarded as impractical when they were introduced decades ago, but have become popular over time. These include a GUI, automatic garbage collection, dynamic ("duck") typing, and (especially) Object Oriented Programming.

Alan Kay coined the term "object-oriented" and gave us a language (Smalltalk) that is still extremely influential on subsequent languages (for example, Ruby has been described as "Smalltalk with a Perl syntax"). Yet, Smalltalk is "different" in a number of respects:

  • All values are objects, even integers, booleans, and characters (no boxing/unboxing);
  • Classes and methods are objects (supporting reflection);
  • The language has only five reserved words;
  • All control flow (looping and conditional branching) is done through message sends;
  • Programming is done by sending messages to existing objects; and
  • The base class library can be modified.

Come learn more! The tutorial exercises can be done on a variety of Smalltalks, including free open source ones.


Practical exposure to Smalltalk that can be applied in other situations or provide a foundation for further exploration of this powerful, elegant, pure OO language.


Primarily hands-on exercises with some lecture.

Audience: Researchers, Practitioners, Educators
Please email any questions to . This e-mail address is being protected from spambots. You need JavaScript enabled to view it