QuickSilver Compiler Observations – 2011-Feb-24

February 24, 2011

QuickSilver is an open source (MIT license) Smalltalk-to-JavaScript compiler that is entirely implemented in JavaScript.

It is designed to be deployed in client applications (any browser with JavaScript enabled) or on a Java server supporting the Rhino JavaScript environment.

I have now been working with QuickSilver for several weeks and these are my observations:

Major Bugs
There are two major bugs that I am aware of:

1) “self” within blocks does not work correctly.
There is an untested compiler fix for the problem.

2) there seems sometimes to be a problem associated with “super”.
I need to develop some test cases to clarify the circumstances.

Other Bugs

Smalltalk indexing is implemented as 0-based; should be changed to 1-based

Useful Syntax

The design decision to allow native JavaScript code within braces {} has proved extremely flexible and easy to use. It enables several shortcuts missing from standard Smalltalk syntax such as the ability to easily initialize arrays and dictionaries.

Programming Smalltalk versus JavaScript

My personal experience of the two languages is that programming in Smalltalk is much more intuitive and productive than programming in JavaScript.

JavaScript has the advantage of being almost universally deployed on client devices.

Smalltalk has the advantage of more closely reflecting the way that humans model the world.

QuickSilver was designed to enable programming in Smalltalk while developing in a JavaScript environment. And, it seems to be well on its way to fulfilling that promise – but, since I am the creator of QuickSilver, perhaps I am slightly biased 🙂


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: