JS Christ! I’m Using JS!

Why I chose Amber


Well, okay, so I’m not really using JavaScript (or JS); only indirectly. It’s no secret that I’m not a fan of the language. It would be a cold day in Hell before I used JS to write a complete application (I use JS to add jQuery effects). But JS is the lingua franca of the web, so there’s no escaping it on the client side. Consequently, there have been many attempts to create client-side development tools in other languages that compile to JS, effectively using JS as a kind of ‘assembler’ language. The most notable attempts have been Google Web Toolkit (or GWT), CoffeeScript, and Dart.

But I don’t particularly want to code in Java (for GWT), a language that is somewhat complicated to use [1]. And I don’t want to code in CoffeeScript because its syntax handling is a bit too weird for my taste [2]. As for Dart, it’s a possibility, but I yearn for something much simpler and easier.

Enter Smalltalk. This is probably my favourite programming language. It is unbelievably simple (the entire language can be summarized on a postcard) and elegant. It is also very readable; the code resembles a kind of pidgin English.

The best thing about Smalltalk, however, is not the language itself, but the “live” development environment. You’re always working with “live” objects that you can examine and change. You can even modify code in the executing program and watch the result! The built-in debugger is also very powerful.

Amber is a simplified dialect of Smalltalk designed for web programming. It compiles into pure JavaScript, and it interfaces with JavaScript libraries very easily. The Amber project is still quite nascent, but it looks promising. I will devote my time and energy to utilizing this tool.

The creator of Amber gives an introduction to Amber.

[1] Here’s my view of programming languages: http://goo.gl/fJ04YF

[2] As Ruoyu Sun points out here: http://goo.gl/WQtBmm