Incompatible implementations across browser make development painful as well. Libraries like jQuery and many others offer convenient abstractions and allow to program to one API and even out the incompatibilities.
The tutorial page for Clamato allows to open a Clamato (Smalltalk) class browser in the web browser and inspect and edit the Clamato source code. To look for classes, use the text field in the left upper corner of the browser. Interesting bits are the selfhosting PEG-based Clamato parser (enter "PP" in the textfield to see the classes for the parser and the various combinators).
A certain Seaside influence is visible in the Seaside-style HTML builder (the
HTMLCanvas class in the Clamato browser). Visual components can use it to build their GUIs, for instance, the counter component from the tutorial:
renderOn: html html h3 with: @counter. html button with: '+'; onClick: [@counter := @counter + 1. self reload]. html button with: '-'; onClick: [@counter := @counter - 1. self reload].
renderOn: html line defines a new method and the rest of the sample is the method body, which builds the HTML with a header and two buttons, which are set up with event handlers.
GWT Smalltalk is in an early stage right now but progresses quickly. It has support for using XMPP, which puts it in a good place to interact with with Google Wave (XMPP is an essential part of Google Wave). More details are available in the Industry Misinterpretations podcast interview with Peter Fisk and on the GWT Smalltalk blog.
The best place to start is the online pyjamas book.
GWT Scala anyone?!
And aside: cappuccino.org/ certainly belongs in this list: It uses ObjectiveJ, which is a variant of ObjectiveC. It takes some time to get used to it, but the language is a rather good fit for gui-work and it also comes with a complete framework to build browser-based apps. They built 280 Slides with it, on of the best looking browser-based app around...