Revision of IRC from Sun, 09/23/2007 - 04:00

There are two regular channels for GNU Smalltalk users: ##smalltalk and #gnu-smalltalk on Freenode (irc.freenode.net).

I have written this guide for ##smalltalk in the spirit of #lisp's. Following the advice here is the easiest way to get help from ##smalltalk or #gnu-smalltalk.

First, are you in the right place?


What's this about a programming language? I'm just looking for casual conversation.

Join #defocus instead.

I want to talk about Squeak

We can talk about the language, but you may want to join #squeak too.

or VisualWorks/Cincom

Join #smalltalk on irc.squeakfoundation.org.

Picking a Smalltalk implementation

Most of us use GNU Smalltalk, or "GST" to regulars. GNU Smalltalk has been quite active for the last several months, so your implementation's package is probably out-of-date. It runs on GNU/Linux, OS X (both PPC and X86), Windows with Cygwin, and maybe *BSD. You can get the JIT by passing --enable-jit to configure. Check the topic of #gnu-smalltalk for a direct source code download link.

Little Smalltalk is a great way to learn how Smalltalk itself works. If you have Java, you can look at a Java applet and play right in your browser without installing anything.

We'll be more interested in Strongtalk one day, but aren't now, because it only worked on Windows last anyone checked.

As far as I know, we don't play with proprietary Smalltalks.

There's a longer list on Smalltalk.org.

Getting a tutorial

GST comes with a tutorial; it's in doc/gst.info in the distribution. Just run info -f on it or C-u C-h i in Emacs.

Stef's Free Online Smalltalk Books is the perennial source of useful books on Smalltalk. You can also buy a modern descendant of the Blue Book, Smalltalk 80: The Language.

Other Things to Remember

GST's high-quality documentation (base class documentation found in doc/gst-base.info) and source (kernel/ contains all the base classes themselves) is a great way to learn just about everything you might want to know about Smalltalk. When in doubt, see how GST does things. Here are some hard-won lessons:

  • Don't, don't, don't check types of arguments. If you want a method to branch on a type, split it into different methods. It's the responsibility of the sender of a message to give an argument that the receiver can understand.
  • Just because an object x answers x respondsTo: #foo: with false doesn't mean that x won't understand x foo: 1. It only means that there is no method installed in the class to deal with the message.
Syndicate content

User login