Invited Speakers

Dan Ingalls

Dan Ingalls has been the principal architect of five generations of Smalltalk environments. He designed the byte-coded virtual machine that made Smalltalk practical in 1976. He also invented BitBlt, the general-purpose graphical operation that underlies most bitmap graphics systems today, as well as pop-up menus. He has received the ACM Grace Hopper Award for Outstanding Young Scientist, and the ACM Software Systems Award. Dan's major contributions to the Squeak system include the original conception of a Smalltalk written in itself and made portable and efficient by a Smalltalk-to-C translator. He also designed the generalizations of BitBlt to arbitrary color depth, with built-in scaling, rotation, and anti-aliasing.

Dan leads the external Squeak community through active participation in e-mail discussions, and attention to regular releases and reasonable support. From this investment we have reaped many benefits including implementations across all major computing platforms, a new portable JIT engine for Squeak, and the recently released Squeak Wiki server.

Dan Received his B.A. in Physics from Harvard University, and his M.S. in Electrical Engineering from Stanford University. While working toward a PhD at Stanford, he started a company to sell a software measurement invention that he perfected. As the challenges and rewards of industry have continued to hold his interest, he never returned to academia.

Avi Bryant

Winning the Application Server Arms Race: Using Smalltalk to Redefine Web Development

Abstract: It would be hard to imagine a worse model for user interface development than HTTP. Would you use a GUI framework where every event from every widget in your application was handed to you at once, periodically, as a large hashtable full of strings? Where every time a single piece of data changed you had to regenerate a textual description of the entire interface? Where the event-based architecture was so strict that you couldn't ever, under any circumstances, open a modal dialog box and wait for it to return an answer?

Those are the costs of using the web browser as a client platform, and, by and large, we accept them. The dominant paradigms of web development CGI, Servlets, Server Pages do very little to hide or circumvent the low level realities of HTTP, and as a result, web applications are fragile, verbose, and ill-suited to reuse.

Smalltalk can do better. More than that Smalltalk is uniquely suited to do better. To date, we've followed conventional wisdom and built Smalltalk implementations of the same old paradigms, providing familiarity and compatibility. But by throwing these away, Smalltalk can instead provide an overwhelming competitive advantage. By leveraging Smalltalk's particular strengths, we can abstract away the ugliness of browser/server interaction in ways that simply aren't possible in other environments, and profit greatly by it. For all its limitations, the web is fast becoming the most important deployment platform for many classes of application. The Java, Perl, PHP, and .NET worlds, to name a few, are pursuing it agressively. Many of us are going to have to play their game but we don't have to play by their rules.

Bio: Avi Bryant is an independent consultant based in Vancouver, Canada. Much of his work centers around the use of Squeak Smalltalk as a platform for commercial software development. As an actively contributing member of the Squeak community, he maintains its standard version control system, as well as packages for web development and relational and object database access. As a consultant, he has helped companies develop Squeak-based products for the travel and theatre industries, higher education, and mobile devices. Avi previously worked as a developer and research assistant for the University of British Columbia.

Tuesday Presentations

Object-Relational Persistence in Smalltalk by Alan Knight

Abstract: Even after all these years relational databases remain the dominant data storage technology, and a great many Smalltalk applications need to be able to access them efficiently. Even after all these years, this is harder than you would think, especially if we have to deal with a database schema that was never built with objects in mind. This talk will outline some of the problems and the different design strategies for addressing them. It will also describe GLORP, an open-source object-relational persistence library, the approaches it takes, and its current status and future plans.

Bio: Alan Knight works for Cincom Systems of Canada on web and database infrastructure. He is the lead on the open source GLORP project, and has worked in relational persistence for many years. He was previously the chief architect for the TOPLink family of products, and was a member of the Sun expert groups on EJB 2.0 and JDO. He is co-author of Mastering ENVY/Developer (Cambridge, 2001) and has written and spoken extensively on a variety of topics. He was recently program chair of Smalltalk Solutions 2004.

Smalltalk Web frameworks: a comparison of Aida/Web and Seaside by Janko Mivsek

Web frameworks is a field where Smalltalk can really show it's strengths. Recently, the Smalltalk web arena is becoming hot. Although as the author of one of them I would probably be a bit biased, I will still try to honesty compare two very interesting frameworks for development of complex web applications. After a brief introduction of the both frameworks and few examples, the comparison will be done from many aspects like philosophy and architecture, main concepts, accordance with web standards and ease of use.

Both, Aida and Seaside are primary trying to explore a Smalltalk way of thinking and developing for the Web and both are also getting away from just plain imitating other approaches like ASP, JSP and PHP and therefore make a quality step ahead. Because of the importance of such frameworks for Smalltalk, their strengths and deficiencies are worth comparing and discussing about.

Bio: Janko Mivsek is an IT consultant from Slovenia, fully devoted to exploring internet and web in a Smalltalk way. As an author of a web application server Aida/Web, he is since 1996 developing commercial web applications in pure web way in fields like Gas industry, Logistics and recently in Document and Business Process Management systems. He is a Camp Smalltalker by contributing to and maintaining Swazoo, a dialect neutral Smalltalk web server. He was a also local organizer of ESUG'2003 Conference in Bled.

Smalltalk on a Windows CE system by Marten Feldtmann

We had the chance to start a project using one of these little Windows CE machines and we started this project with VisualWorks 7.2 and the ports from Georg Heeg.

This talks shows the positive and the negative points we have found so far - considering the fact, that we had no Windows CE knowledge before this and therefore started from scratch. Knowing the presence of the developers of Heeg we hope to get into a discussion with them and the audience about what one can expect from VW under CE, how the hardware market situation looks like and other points.

LSW Vision-Smalltalk by Frank Lesser

Abstract: LSWVST is a Smalltalk which is developed under the Windows Operating-System. It differs in many aspects from other Smalltalk dialects: In this session I will discuss this differences and show the highlights of LSWVST:

  • Basic Architecture Differences - Frameworks makes no use of Events
  • FFI for Windows and .NET
  • ORTHOGONALITY - a new GUI Framework
  • Targeted to be faster than plain C - JIT, Adaptive Compilation to Native Code
  • Development Infrastructure ( Refactoring, Debugging, Testing, Team/St, Deployment

Smalltalk/x by Claus Gittinger

No information provided yet.

Smalltalk-based Speech User Interfaces by Thomas Brey

Speech-based User Interfaces (SUIs) are no longer fiction, they begin to establish in disciplines as human factors and emerge in everyday life. Therefore, software frameworks for creating SUIs become more and more important. This contribution describes a framework for Design and Implementation of user friendly SUIs, fully implemented in Smalltalk. This framework called SpexKit was developed at University of Regensburg and Speech Experts company ( - where the latter implemented the most remarkable prototype ever built using this framework: Hermine, a speech controlled washing machine which became one of CeBit 2003 highlights.

Abstract Interpretation for Dummies: Program Analysis without Tears by Andrew Black

Have you ever needed to do some analysis of the code in some Smalltalk methods, and spent a lot of time and effort parsing the source and extracting all the information that you needed, only to find that your analysis was still really slow, because you had to grab the source from the changes file?

Abstract interpretation is a technique that in many cases can allow you to collect the same information by extracting it from a CompiledMethod. Although Abstract interpretation sounds scary, in Squeak it is really quite straightforward, because the basic framework is already in the image. Moreover, it can also be very fast, because bytecodes are designed to be interpreted quickly.

In this talk we will illustrated what can be done with abstract interpretation, explain the framework provided in Squeak, and show what can be done to dramatically improve performance if this turns out to matter for your application.

Microlingua: A Tiny Real-Time Smalltalk by Maurice Rabb

Abstract: Microlingua is a Smalltalk derived language initially designed for use in consumer electronic products, and other tiny systems. Dynamic object-oriented programming languages are rarely used in small or real-time embedded systems. Microlingua goes against the conventional wisdom, and enables the full expressive power of Smalltalk in a space that typically has used more brittle software development techniques.

Microlingua introduces a fast and consistent conceptual model for handling numerics, im|mutability, hashing and equality, execution context, multi-dispatch, and concurrency. The new frameworks are critical for tiny embedded systems. They improve the safety and power in expressing these fundamental concepts in Smalltalk in general.

Microlingua extends the numerics framework to include operations for fixing the size and precision of numerics, and their operations. It provides extended notations to assist the developer in the proper use of exact and inexact numbers.

While most Smalltalks have both immutable and mutable objects, in general mutability is only implicitly defined. Microlingua introduces new explicit and consistent notation and use of im/mutability.

Concurrency is one of the most tricky aspects in almost every programming language. Programmers frequently avoid using concurrency, or use it incorrectly. Microlingua addresses this persistent challenge by introducing a new, easy and consistent concurrency model.

Microlingua's conceptual model is somewhat different from Smalltalk's. In Smalltalk one thinks of sending an object a message with zero or more parameter objects. However in Microlingua, one thinks of a group of one or more reader-writer objects, cooperating together, in performing an action.

After a pause in development, I have revived Microlingua and am working to fold it back into Squeak. In particular, I am porting the Microlingua language extensions, and frameworks to Squat. Squat is an excellent opportunity for the Smalltalk community to expand into the development of smaller devices such as cellphones and PDAs.

Bio: Maurice Rabb is co-founder of Stono Technologies LLC, in Chicago. Stono is dedicated to the development of new technologies for the consumer electronics industry. Mr. Rabb specializes in new product development, conceptual blockbusting, and the creative application of technology -- in short, acting as a human catalyst. Mr. Rabb earned his BS and MS in engineering from Stanford University.

Cryptography for Smalltalkers by Martin Kobetic

Abstract: Cryptography is just a small part of the arsenal of security professionals today, nevertheless a fundamental one. Thorough understanding and proper use is absolutely critical for any cryptographic solution. Security's unique challenge is that it doesn't matter that 99% of a solution is perfect, what matters is that there is 1% that is flawed.

Complexity and misunderstanding is often the culprit behind all too frequent failures to deliver secure software solutions. Smalltalk is a great weapon for attacking complexity. Along with its inherent suitability for agile development methods provides us with unique opportunity to succeed where others are failing.

This presentation is meant to spark interest, motivate addition of cryptography to one's arsenal and hopefully profit from this opportunity. It is primarily a practical introduction to cryptography using the Visual Works Security library, but the concepts covered apply to any cryptographic library regardless of the environment or even programming language.

Bio:Martin Kobetic is a member of Cincom Smalltalk development team working primarily on various networking frameworks (Opentalk, DST, Web Services) and the security library. Prior to that he worked on TOPLink for Smalltalk at The Object People, Canada and on various internal frameworks at ArtInAppleS, Slovakia. He presented at Smalltalk Solutions several times on various topics, notably TOPLink, Opentalk and CVST.

Wednesday Presentations

Migration from VSE to VW with Pollock by Christian Haider

Since VisualSmalltalk has been dormant, there has been no real alternative Smalltalk for projects using VSE, partly due to the GUI frameworks. Pollock, the new GUI framework for VisualWork, is conceptually very close to the GUI framework of VSE, so that a port seems easy.

Pollock being still in beta, a bank project decided to migrate their system to VW with Pollock. The talk will be about the steps of the migration (source baseline, code baseline, tests, runtime), the differences between VSE and VW with Pollock and the tools used.

GemStone by Georg Gollmann

Over the past 10 years we have built a (small) GemStone system for various administrative purposes (, This talk will detail the experience gathered while using GemStone for building these systems.

A Smalltalk-based system for dynamic multi-context information processing by Adriaan van Os and Tim Verwaart

In spite of the dynamic character of information need, software systems should preferably be stable. Software changes are expensive and are a risk to system stability. This is why we want to separate the software engineering process from the information systems development activities. For this purpose LEI developed a Smalltalk-based system for model-based system specification and workflow management. System behaviour is dynamically generated from data specifications, constraints, computation models and workflow specifications. In our presentation we will explain the construction of the system and the main principles it is based on. We will demonstrate how context-independence of the data model has been achieved and how the workload is scheduled by the workflow engine.

Smalltalk Garbage Collectors by John McIntosh

Abstract: Although Garbage Collection is hidden and sometimes taken for granted, it can have a major effect on the performance of your Smalltalk application. Before exploring the state of Garbage Collection in Smalltalk we must first understand the theories behind the implementations. Most Smalltalk systems use only a small subset of the available GC algorithms, but you will find other languages like C#, Java, and Perl use all of the available theories in order to collect garbaged objects. In the first part of the tutorial we will cover the major algorithms: Reference Counting, Mark/Sweep, Copying, and Generation, with some coverage of the Train Algorithm, then before the break a quick discussion of Weak Objects and Finalization to clarify how these theories work.

Once we have covered theory we can explore implementation by looking at how VisualWorks has implemented its Garbage Collector. This is a very complex machine and provides many knobs to turn to tune the Collector to solve problems when object creation does not fit the normally expected patterns. In many cases, we can improve performance of a loaded system by tuning the collector. Real examples from clients will be presented to demonstrate the actual benefits achievable by implement the suggestions presented in the tuning part of the tutorial. In these cases we for example improved the performance of a large interactive production system by 42% by studying the existing system and then altering the behavior of the stock Garbage Collector to better fit the application's object creation patterns.

There will be some coverage of the VisualAge implementation, and how the collector in Squeak works. These will not be covered in the same detail as VisualWorks, but sufficient information will be given for the attendee to later explore how these VMs behave once they return to their places of work.

Bio: Mr. McIntosh comes from British Columbia, Canada. His diverse work experience includes an impressive portfolio of multinational corporations extending from Canada and Europe, to the United States, and from as far away as South America. He has spoken at past Smalltalk Solutions, ParcPlace Conferences, BOF events at OOPSLA, and at ESUG in Europe. Currently he is the maintainer of the macintosh port of the Squeak Virtual Machine.

Moose: a Collaborative and Extensible Reengineering Environment by Stephane Ducasse, Tudor Girba and Michele Lanza

Software systems are complex and difficult to analyze. Reverse engineering is a complex analysis that usually involves combining different techniques and tools. Moreover, oftentimes the existing tools are not perfectly suitable for the task, and customization of existing tools, or development of new tools is required. Moose is an extensible reengineering environment designed to provide the necessary infrastructure for tool integration. Moose centers on a language independent meta-model, and offers services like grouping, querying, navigation, and advanced tool integration mechanism.

TypeWise - a text-based Internet client-server solution for simple office

applications by Ernest Micklei

A large group of business applications require intensive user interaction. For a long period of time, programmers addressed this requirement by providing characterbased terminals using technology such as CICS transactional screens (3270).

With the introduction of graphical user-interfaces, the amount of information and its means of access, has greatly been improved. Many metaphors have been introduced to support the user in his daily work, e.g. windows, icons and buttons.

Today, more and more business applications are becoming accessible by providing a Web-based presentation. These web applications provide the user with a new and fancy looking interface. Using the hyperlink concept, a user can click through the functionality of an application requesting business information and performing mutations.

However, there is a classification of business applications that could benefit from easy accessible and simplyfied user interfaces. Examples are the Airport Incheck- and Railway Reservation Systems. Clearly, it is not of practical use to build these systems using rich HTML pages accessed through an Internet Browser. The amount of information required for the user is limited, the interaction with the application requires high response times and therefore its access could be based on keyboard input.

The design of TypeWise combines the simplicity of character-oriented interfaces with the full potential of Object Technology for implementing business logic in an Internet environment. Current implementation of the client is done using SmalltalkMT ; server implementations are available for VisualAge Smalltalk and Java. The beta release will soon be available on **.

Thursday Presentations - Business Track

Marketing Smalltalk - Business and Community Marketing Combined by Monika Laurent.

OfficeTalk by Josef Springer

OfficeTalk, ein generisches BPM/Workflowsystem (in VisualWorks erstellt)

Bio: JOOPS Informationstechnik GmbH ist Hersteller beider Systeme. Damit Sie sich einen Eindruck ®?ber beide Systeme machen konnen, habe ich fur SmallCOM/X und OfficeTalk (Flugblatt.pdf) Kurzinformationen beigelegt.

Smalltalk Modernization Technology by Michael Voesgen

The Smalltalk application scenery is shaped by a variety of large systems that are critical to enterprises. These systems have a profound professional characteristic and have gone through several years of intensive development. From a management perspective the high capital expenditure for these systems should be protected. Often the functional extent of the applications seems to be still adequate however the technical requirements regarding communication interfaces, system integration or multi-channel approaches cannot always be implemented due to the restrictions of the chosen Smalltalk Integrated Development Environment (IDE). Therefore these applications are exposed to heavy criticism and there are considerations to redevelop them in modern IDE's. Everybody however is aware of the fact that redevelopment, using conventional procedures, is very cost- intensive. Due to the general cost reduction trend this alternative is not being chosen often at the present time. This might possibly cause a standstill in the application°Øs development.

This lecture should describe how a changeover using Smalltalk modernization strategies can be accomplished reasonable and in consideration of all economical aspects.

The issue, in how far it is possible to conduct a machine based migration of code from out-dated Smalltalk environments to future-proof Environments such as Visual Age or Visual Works, will be addressed. On the basis of a roadmap it will be shown how these applications can be modernized in order to meet the new technical requirements. For example the migration of a Fat-Client to a multi channel architecture.

The lecture will go into the technical as well as into the economical details of a modernization.

The Value of Smalltalk: valuing and risk management in VisualWorks and GemStone by Niall Ross (Niall Ross, eXtremeMetaProgrammers, Colin Lewis, JPMorgan Chase)

Smalltalk is key to the success of the award-winning Kapital system: **. It is by exploiting specific features of Smalltalk that Kapital gives its users serious business advantage. This talk will overview the Kapital system and present examples of how the distinctive technical features of Smalltalk that we are so familiar with translate into solving a hard problem, and into rapid delivery, scalability and reengineering advantages of great commercial value. - Unique Selling Propositions with Innovative Smalltalk Technologies by Adrian Lienhard and Lukas Renggli is a startup company located in Bern, Switzerland, specialized in web application development. As a steadily growing company, was seeking for outstanding technologies to do things better than the average. With the power of Smalltalk and frameworks like Seaside, goes unconventional ways which open unique opportunities and real competitive advantages.

Lessons learned from opening a company with a Smalltalk product by Christian Haider

The company 'Smalltalked Visuals GmbH' was founded to market and improve smallCharts, a tool written in VisualWorks, for publishing stock market charts. smallCharts was originally developed for a magazin as a specific solution. The next order of a newspaper triggered the foundation of the company with the goal to create a successful product from that first project.

The talk is about the history of the company and the experiences gained:founding with a partner, price finding, marketing, product development, support and other business related issues.

Supporting Teachers in Computer Aided Education and IT-Administration by Carsten Haerle (Straightec).

More and More Computers are used in education at general schools. Teachers increasingly face two problems: How to control and support children in computer class rooms and the computer administration problem. We created a solution to these problems with a Dolphin Smalltalk application called beno. It is a shrink wrapped product intended for the mass market, so that in contrast to custom software for an individual customers or project solutions, different aspects were important in the developlent of this software like very good Microsoft Windows integration, use of ActiveX controls, be able to run as a Windows service, installation and deinstallation program, online help and documentation, Microsoft Windows Logo Certification to name a few. The presentation will show the product and the discuss the challenges and the solutions we found during the developement .

straightec is a German consulting and software development company specialized on object oriented systems founded by Carsten Haerle, who has been actively using various Smalltalk dialects for over 15 years now.

RUT-K: Fast large-scale train scheduling with Smalltalk by Marion Jurisch and Joachim Geidel

RUT-K is an interactive computer aided program for the detailed construction and investigation of timetables for large scale railway networks. The calculation of running times and section occupation are integrated with a graphical user interface, which facilitates the design of conflict free schedules with a high level of operating quality.

Friday Presentations

GemStone vs. Relational Databases by Petr Stepanek

We'd talk about what you can do with GS that you cannot do with RDB, and we have a really good example for it (a model for CRM database, model changes over time, is complex): In a CRM project, data need to be kept not only in relation to other data, but also in relation to changes over time. We'll present a simple but powerful and general framework for keeping history in data changes, via attributed links among objects. The design we have in effect is easy to implement in Gemstone, but hard to implement efficiently in relational databases. The talk presents stregnth of object model (and Gemstone database) for such a complex data structures as today's real CRM systems require.

AOSTA by Marcus Denker

AOStA is an "Adaptively Optimizing Smalltalk Architecture" that is being worked on by a small community guided by Eliot Miranda. This talk will give an update on the state of the AOStA bytecode-to-bytecode translator focussing on the backend part of the compiler: Translation out of static single assignment form and bytecode generation.

Blogs and RSS - worth your time? by James Robertson

Blogs are getting a lot of attention - are they something you need to worry about?

Abstract: This session will discuss blogs, blogging, and some of the associated technology (RSS in particular). The focus of the talk will be whether blogs are something of relevance - for project managers, marketing staff, or developers. I expect an interactive session with many questions, as well as an interactive introduction to what a blog is. I'll be taking the tack that blogs are, in fact, useful and worth investigating. I have my own blog - - and I also sponsor other blogs on our site -

A quick check of the InfoWorld site or the O'Reilly site will demonstrate that many of the industry analysts have started blogging - what this talk will explore is whether the anyone in the audience should be.

Bio: I started my career as a teacher, spending almost three years at that. I moved on to software development with the US government, and shorthly thereafter moved into consulting work with Booz-Allen and Hamilton. After three years of various sorts of work there, I discovered Smalltalk. I soon joined ParcPlace??, first as a trainer/consultant, and then as a sales engineer. I stayed with the Smalltalk team through various convulsions of the company and ended up at Cincom when VisualWorks?? was acquired in 1999. I have since become the Product Manager for Cincom Smalltalk, which consists of VisualWorks?? and ObjectStudio?? (another Smalltalk dialect).

Two Small Presentations by Niall Ross, eXtremeMetaProgrammers

Prevention or Cure: approaches to configuration management

Abstract: Smalltalkers (and most other programmers) typically organise their systems into large-grained build-oriented code components. When several people work on the same components, code comparison and merge tools resolve multiple streams of work into a new base. An alternative approach is to provide a system in which users capture their changes in fine-grained task-oriented code components, reducing the chance of clashes. Niall will discuss his experience of both approaches and invite discussion.

Meta-programming: integration issues

Abstract: systems whose domains change rapidly benefit from using meta-data to describe the dynamic part of the domain. Integrating these meta-data-using classes with Smalltalk's base classes can raise issues. Niall will use the collection classes to show the problem and invite discussion on solutions.