The Rise of Tiny Things

When I first started playing around with LuaJIT, one of the earliest thoughts I had was “I think this runtime specifies a new base machine”. I truly believe that we’re now at a point in the CPU performance curve that the core “CPU” can be totally done in software. Cases in point:

Tessel – A new tiny device in development which is meant to run node.js code, on something the size of a microcontroller.  The basic specs:

  • 180mhz ARM Cortex-M3 LPC1830
  • 32mb SDRAM
  • 32mb Flash
  • TI CC3000 WiFi radio

Why is this interesting?  Because at its very core, they translate the javascript to Lua for faster execution on the tiny little machine.  In this way, they don’t really care that they’re running on a Cortex-M3, they are really running on a Lua VM.

Then, there’s this interesting bit about [pdf] Lua becoming available in the NetBSD kernel.  That’s not quite the same thing as the Tessel, but again, this tiny little bit of runtime is like putting a small machine in place.  Now, various device drivers and other stuff might actually be implemented using Lua, and in a kernel space no less!

But, it’s not all about Lua.  Javascript, another relatively tiny thing, is starting to emulate larger things.  An x86 emulator written in Javascript!  This parrots the previous effort of the same, which was jslinux.

I mean come on, seriously!  Yes, things have reached the level of rediculocity such that a lowly scripting language can be used to emulate an entire CPU!  How cools is that.  And, yet again, representative of the rise of tiny things.

When we get to the point when you can front end a FPGA with Lua or Javascript, then we’ll reach truly ridiculous levels of ease and proliferation.

I think this is cools because for one, it raises the level of performance for small things.  By ‘performance’, I mean the number of people who have access to fairly low level hardware is increasing because the tools used are very simple.  the average javascript developer being able to play with microcontroller/processor based systems?  Simply amazing.

I am glad to see this happening.  If a guy can create an x86 emulator, then he can design his own more specific CPU emulator.  The next guy can write the FPGA interface, and suddenly, the strangle hold on processor evolution is broken!!

Or at the very least the world of programming is just becoming curiouser and curioser.



Leave a Reply

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

You are commenting using your 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 )

Google+ photo

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

Connecting to %s