Saturday, November 15, 2008

Languages in Reasonably Smart

What I love about JavaScript isn't just that it is the programming language of the web, or it's most elegant object system, or even the functional capabilities that are in SpiderMonkey.  With my platform-provider hat on what I love the most is that it's a hardened language.

JavaScript (or, more properly, ECMAScript)  just doesn't have that many capabilities built in, beyond the basic language mechanisms you find in any other programming language.  Sure, you can allocate memory, or put it into a tight loop, but all of those things are detectable from our perspective - again, that of the platform provider.   The big thing you don't get out of the box of course, is IO.

IO is our job.  Reasonably Smart provides carefully wrapped capabilities to read from disk, write to the datastore, and a whole bunch more.  More importantly, we can do it in a secure, considered manner.  This lets us run many different applications on a machine, or a cloud of machines at the same time, without having to carefully vet each codebase to make sure it's not going to do anything bad.

However, some people react strongly to the idea of Server Side JavaScript, and we realize people do like other languages too, which is why we multiple-language support is on our roadmap.  To shine a little more light on our plans -  it's why we're so keen on seeing Mozilla's IronMonkey project get going, and why we are going to support it in any way that we can.

IronMonkey is a planned development to get IronPython and IronRuby compiling to the Tamarin Virtual Machine (the JITting ECMAScript VM that Adobe open-sourced with Mozilla a couple of years ago).   When the IronMonkey project is complete Reasonably Smart will be able to support any language that compiles to the Tamarin virtual machine. 

Having multiple languages is important to us, but not more important than having a safe, secure environment for our customer's applications to run in.  Thanks to open-source, and Mozilla, IronMonkey will help us get there.  In the meantime, we think JavaScript is great - if you've not programmed JavaScript without all that tedious mucking about in the DOM, try it - you'll be pleasantly surprised!

No comments: