Code, music, and other stuff.

Amber - Smalltalk Brought to the Web

So it’s no secret that I love Smalltalk. I recently found the Amber project and saw the awesome potential it has to help expose more people to the joy of Smalltalk. Here is an abstract and bio for the Amber presentation I’m working on.


Amber is an implementation of the Smalltalk-80 language that runs on top of the JavaScript runtime. With Amber, client-side web development finally gets the power and productivity that has existed for decades in other Smalltalk dialects.

This presentation will:

  • Demo a real world example of how Amber has been introduced into existing web applications written in Ruby
  • Show how to access and quickly wrap existing JavaScript libraries (e.g. Google Analytics, Google Maps, Ace editor)
  • Show how to edit, inspect, test, debug and save client-side code live, all from within a web browser
  • Discuss how Amber can be easily incorporated into existing web applications - regardless of the back-end (Ruby/Rails, PHP, Seaside, etc) and how it can co-exist with existing client-side JavaScript

When Avi Bryant created Clamato - on which Amber is based - he said “the main objective is to have a more pleasant environment in which to write the client-side of web applications.” Amber brings this Smalltalk environment, not just the language, to client-side web development. Amber is a way to expose more people to the joy of development in a Smalltalk environment without the commitment of changing existing back-end technologies.


JohnnyT (a.k.a. John Thornton) has been developing web applications for 15 years, the last 7 of which have been in Ruby. He was converted to Smalltalk in 2010 after looking into MagLev and discovering the magical world of GemStone powering it all. He started a local Utah Smalltalk Users Group (USMUG) to help him in his quest to share the joy of Smalltalk with everyone he can. He works on Amber and SubWars (an open-source GPS browser based submarine game) to scratch his Smalltalk itch and earns his living working for Alliance Health Networks in Salt Lake City, Utah.