Joe's Smalltalk Information
This page is put together as a set of good pointers and references
to Smalltalk; especially since Joe is strongly biased by the beauty
and elegance of the language and development environment. I have
been "Smalltalking" almost exclusively since 1992 and it has made
a huge difference in my excitement about programming. Smalltalk also extended
my understanding of objects tremendously even though I had previously
developed in C++, CLOS and other OO languages. I can't say enough about the
language and I am glad that JAVA has attempted to include some of its
I feel very fortunate to be at the University of Illinois where I
belong to a research group
that has many members dedicated to Smalltalk. I am dedicated to help
people be successful in Smalltalk and hope to assist with the
continued success of Smalltalk as a language.
This section is dedicated to highlight some of the projects that I have
had the privilege to work on by writing Smalltalk code. Most of these
projects have detailed web pages associated with them and some have
code available online.
- Extending Classic Blend - Classic Blend
supports mapping Smalltalk objects to JAVA objects for
creating WEB based applications. Custom widgets extensions
in Classic Blend can be difficult to extend and this class project
describes what needs to be done to extend widgets and includes
source code for an extension to the model-view-controller
part of Smalltalk. This project was over seen and spear headed
by myself and the work was done by some graduate students
participating in Ralph Johnson's
Programming and Design class.
- Tractor Information System
- The project was originally conceived as design and
implementation of an information system for managing a
number of tractor specifications stored in a relational
database. The system operates in a distributed
environment and is based on client-server architecture. It
provides a collaborative environment where engineers can
interactively share in the design of new specifications of
the tractors. This project was developed as an extension
to the Wheel Loader Information environment and
incorporated object-oriented design and implementation,
specifically Smalltalk to provide for the needed dynamic
- Scenario Planning Tool -
Scenario Planning is being researched as a potential tool to assist
decision makers in being prepared for upcoming events. A
scenario is a story of what might happen; possible elements
are world trade, oil/commodity prices, political/economic
stability, productivity. This project was developed using
ParcPlace VisualWorks and GemStone.
Modeling Framework - I've been working on a fairly
large financial modeling project with Caterpillar.
Our main result (from the point of view
of Object-Oriented Solutions) is a framework for financial
modeling. It lets you quickly build applications that
examine financial data stored in a relational database and
produces profit and loss statements, balance sheets,
detailed analysis of departments, sales regions, and
business lines, with the ability to drill down until you hit
individual transactions. MetaData is used extensively for
storing your business rules in a database.
- Innoverse -
Innoverse is a black-box framework for telecommunications
billing developed by ClearSystems. Innoverse makes it
possible to quickly produce billing systems for all kinds of
telecom service including cellular, PCS, local number
portability, conventional local and long distance, and
Immarsat satellite services. It is developed under
ParcPlace Smalltalk and is integrated with Versant. It was
developed using the ENVY environment. MetaData was used
extensively for storing the rules in such a manner that a
new application could be built with much less effort than
The Packaging Tool is a VisualWorks Smalltalk class library
that provides structures for constructing and configuring
software packages as basic components of applications.
When building an image for either a run-time application or
a development environment, patches, extra utilities,
commercial add-ons, and modules for the application need to
be filed in. These code segments often make use of classes
and methods not in the base VisualWorks image. To ensure
that all the code is filed in the right order, dependencies
between the code pieces need to be established. This can be
accomplished by grouping the code segments into packages and
setting up dependencies between the packages. Building a
customized image then just requires specifying which
packages are desired. The Packaging Tool provides a simple
interface for specifying which packages are needed with any
dependencies (on other packages) they may have.
- IDPH Reuse projects - This is a project by the Illinois Department
of Public Health to provide a computerized system to help
support some of the legal reporting and medical needs for
the state. These are object-oriented systems that
are being developed in VisualAge Smalltalk. Work is being
done for developing Enterprise objects that can be used as
the building blocks for quite a few other projects.
- Object-Oriented mappings - Work has been done in VisualAge
Smalltalk to make it so that objects can be persisted in
a relational database. There is a nice generic framework
where code is provided in VA Smalltalk along with the
patterns that one takes when mapping objects to a non-object
- Code Printer - The CodePrinter is used
for printing out a pretty version of your code
with comments where you can selectively pick any classes,
methods, and class definitions and print to either a Latex
or RTF file. Extra support is provided on the UNIX
environment for creating dvi and postscript files along with
the ability to print directly to a printer.
The following are a list of areas that I know where Smalltalk has proven
success. I will try to get some good concrete links but most
companies don't provide these. The Smalltalk Industry Council also
has lots of good pointers. I am looking for more so that we can
start to have some concrete pointers around of the different types
of applications that Smalltalk has proven to be successful.
- Banking, Financial, and Insurance applications are the biggest of
- Telephone Billing also has lots of proven success with Smalltalk.
- Medical Software - Illinois Department of Public Health.
- Manufacturing - Factory Works, VLSI, Mitsubishi for running their
Robotics, Caterpillar for a Demand Planner Workbench ...
- Command and Control - JWARS by the DoD.
- Oscilliscope (Tetronix).
- Transportation scheduling.
- CAD Tools.