Contents
Description
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" since 1992 and it has shaped a great deal about how I program and code today. 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 good qualities. 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.
Projects
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 Object-Oriented 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 behavior.
- 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.
- Financial 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 normally.
- Packaging Tool - 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 environment.
- 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.
Successes
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 course.
- 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.
- PDA's
- Oscilliscope (Tetronix).
- Transportation scheduling.
- CAD Tools.
- Bettlemania
Links
- Smalltalk Archive Base Page
- Smalltalk FTP Archive
- Central Illinois Smalltalk User's Group
- Smalltalk Developer's Site
- WysiTeX in Smalltalk
- Smalltalk ObjectHelp
- Hyperliterate Programming In Smalltalk
- The Smalltalk Store
- Joseph Pelrine's ENVY Page
- Free Software for Smalltalk
- European Smalltalk Users Group
- Extreme Programming
- Smalltalk Industry Council
- Bettlemania: Built with Smalltalk