Phillipe Mougin attended the O'Reilly OSX conference last fall, and just forwarded me his notes. With his permission, here they are:
O'Reilly Mac OS X conference Notes
Last October, I went to the O'Reilly Mac OS X conference to give a Smalltalk presentation. This conference gathers Mac OS X users, system administrators and developers for a week of great technical sessions, discussions and informal events (want to spend an evenings eating Korean food with Apple engineers developing the new generation of object-oriented frameworks for Mac OS X? This is the place to be!)
Introducing Smalltalk to Mac OS X programmers is ridiculously easy. Why? Because of Objective-C, the "native" programming language of OS X. It is used by Apple to implement the object-oriented frameworks of OS X and is, consequently, a programming language of choice for development on Mac. And it just happens that Objective-C is a lightweight object-oriented extension of the C language modeled after Smalltalk. As the Objective-C creators explain, "Objective-C was formed by grafting the Smalltalk-80 style of object-oriented programming onto a C language rootstock". Objective-C allows developers to access the newest and greatest innovations Apple regularly introduces in its operating system and, with its flexibility and dynamic nature inherited from Smalltalk, it contributes for a significant part to this "special fun" people have when developing for Mac OS X.
The similarities between the two languages (Objective-C even uses our beloved message sending syntax!) make it easy to introduce Smalltalk to Objective-C programmers and to concentrate on the cool things Smalltalk has to offer like a pure and unified object syntax/model and an interactive environment. Objective-C developers are well aware of the Smalltalk roots of the language and Smalltalk is often present in the Objective-C community discussions about implementation techniques, object-oriented design patterns or evolution of the language.
The presentation itself was intermixed with live demonstrations. In particular, I used Ambrai Smalltalk to show the basic features of a Smalltalk environment. Ambrai is of particular interest to Mac developers because it has been built from the ground up for Mac OS X. It provides a native Aqua look and feel and access to native Mac OS X libraries. In particular, Ambrai is developing a Smalltalk/Objective-C bridge, which will let developers to make use, from Ambrai Smalltalk, of the huge and quickly evolving set of object-oriented frameworks provided by Mac OS X. I used Squeak to show some fun development tools for Smalltalk beginners, like the method finder, and to illustrate the concept of interactive object-oriented environment. For that, nothing beats the Squeak Alice world and its pink rabbit you can message interactively. Of course, I also said a few words about Croquet and its model for a scalable planet-wide synchronized distributed object system.
Finally I showed F-Script, my own project, an open source scripting and interactive environment. F-Script applies the Smalltalk syntax and concepts to the Objective-C object model, giving Mac OS X developers a rich interpreted environment they use to visualize, script and manipulate Objective-C objects. The killer F-Script demo consists in showing the graphical F-Script object browser. This is not your daddy's class browser! It's an instance browser that let you find, explore and manipulate (i.e. invoke method on) your objects, without writing code.
Giving this presentation was great, as the assistance looked quite interested. In the future I hope to see more interactions between the Smalltalk and the Objective-C communities.
You can download the presentation materials here (PDF)