Clamato

Clamato

Clamato is a Smalltalk dialect that is designed to operate within the JavaScript runtime. (For non-Canadians: “clamato” is what you get when you add clams to tomato juice. Some consider this an unholy mixture; others, a tasty treat.)

Clamato is still experimental and changing rapidly. The following things are true for now, but might not be tomorrow:

  • Clamato is self-hosting, in that it can compile itself to efficient JavaScript, entirely within the web browser. It uses a parser library based on Lukas Renggli’s PetitParser. Smalltalk constructs (eg: temps, instance variables, message sends, blocks) generally map one-to-one to their JavaScript equivalents (respectively: local variables, object properties, method calls, functions).
  • There are several departures from Smalltalk’s syntax and semantics. The most notable of these are: no explicit returns, 0-based indexing, no metaclass hierarchy, special syntax for instance variables.
  • Clamato includes an (incomplete) interface to the JQuery JavaScript library, along with a Seaside-like HTML builder.
  • Cæsar is a system browser built on all of the above. Like Clamato, it departs in a few notable ways from traditional Smalltalk browsers, but retains their spirit.

There’s a mini-tutorial here to get you started.

iherb affiliate program iherb coupon