A conversation with Allen Wirfs-Brock about the history of Smalltalk and the future of dynamic langu

Sign in to queue


More than 25 years ago, Allen Wirfs-Brock created one of the early implementations of Smalltalk. He was working at Tektronix at the time, as was Ward Cunningham who became the first user of Tektronix Smalltalk. Allen later served as chief scientist of Digitalk-ParcPlace and CTO of Instantiations, then joined Microsoft four years ago. His original charter was to work on future strategies for Visual Studio, but recently -- in light of growing interest in dynamic languages at Microsot -- he's returning to his roots.

In this conversation we review the history of Smalltalk, and trace the evolution of the techniques that it (and Lisp) pioneered, from the early implementations to such modern descendants as Python and Ruby.

I'm always looking for ways to explain why dynamic programming techniques are so important, and a great explanation emerged from this conversation. A Smalltalk system is, among other things, a population of continously evolving objects that communicate by passing messages. That same description applies to another kind of system: the Internet. I suggested -- and Allen agreed -- that this congruence is driving renewed appreciation for dynamic languages.



Download this episode

The Discussion

  • User profile image
    This was the first podcast I listened to on C9, and I liked it. I usually don't listen to podcasts because there's nothing to watch and I get distracted easily (my mind just wanders off), but this one was worth my time. I like Smalltalk and have experimented with it a bit (using the free version of Dolphin Smalltalk). It's so much ahead of its time. The concept of live objects starts to get mind-numbing if you consider what Allen said, about the objects from the seventies that are still "alive" in current builds. At the same time I realize some of the problems with manageability.
  • User profile image

    i find it interesting that he seems to worry about the clr slowing down the dlr (as optimizations can "only" be made down to the clr level), when the newest version of iron python is almost twice as fast as the latest version of cpython..

    he also says that the goal of smalltalk has always been to be as fast as c.. well thats all good but it is NOT as fasst as c.. not by a loooong shot.. i dont know any dynamic language that is nearly as fast as any static language..

    and i dont buy this claim that "I have seen it work, you Can build reliable apps" either.. sure you CAN probobly build reliable large complete apps in dynamic languages.. but clearly most of the industry did not manage to to that and so switched over to more static languages.. or perhaps it was all a conspiracy?

    also i find it amazing how someone that has worked so long in the industry can just fob of the issue of versioning.. i highly doubt that, including test time, development of a large scale app is any faster in a dynamic language than in a static one.. but if one went dynamic, one whould have a slower, less debuggable and unversioned version of the program..

    the internet analogy is also irrelevant.. so what if the internet is somewhat similar to smalltalk.. the internet is mostly build on programs made in static languages and they work fine, the send and recive messages like a breeze. the argument seems to be that just because both pass messages, one fits right into the other.. but sience the messages passed over the internet and the messages passed between smalltalk objects are not compatible, they cant be interchangeble

    i dont mind dynamic languages for small apps and scripts(that perhaps talk to apps written in static languages).. but the indusrty has already tried dynamic languages for industral programming and rejected it.. and as he says, since very little has changes from the seventies, i dont that the industry is going to change now..


  • User profile image
    The C# team has the right idea: mix functional constructs into imperative languages. Take the best of both worlds and create new semantics that hold true to the number one and two (arguably) criteria of a good language: Productivity and Power.

  • User profile image
    This is a great interview! Thanks a lot. Smiley I played around with Smalltalk back in highschool, so it was particularly interesting.

    I do have a question, though it's rather peripheral to the conversation: How will the DLR be delivered to .Net outside of Silverlight--i.e., the main redistributable of the framework? Will that be 3.5 or a separate download like the Entity Framework?
  • User profile image
    Charles wrote:
    The C# team has the right idea: mix functional constructs into imperative languages. Take the best of both worlds and create new semantics that hold true to the number one and two (arguably) criteria of a good language: Productivity and Power.


    I totally agree with that Charles.  You can't really express how sweet it is in words.  You have to use it.

Add Your 2 Cents