Native code with a lean and mean runtime system has a lot of advantages over bytecode based virtual machines and slow interpreters.
I've been working off and on porting the go runtime to a microcontroller, but still finicking with segmented stack support.
Well, yes and no. Yes, there are JavaScript environments ported to different platforms, including microcontrollers. But no, JavaScript is not compiled to native code ahead of time nor does it run without a big runtime system.
While there is some technical trickery involved in getting JavaScript running on different platforms, I find the new LLVM-based languages that run on bare metal much more interesting.
Due to its nature, even the best of JavaScript implementations waste quite a lot of resources compared to native code. While computers are fast enough and have enough memory not to notice the difference, it's still consuming more battery power and producing more heat than executing native code. And it's power and thermals that have been the limiting factor of computational power for the past decade.
That said, it's important to note that this is not Rust on an AVR Arduino -- it's the Due, which sports an Arm Cortex M3. Targeting AVR which probably be much more difficult (at least that's what I've read). So you won't be able to get this running on your Uno.
With awesome boards like the Teensy 3.0 (Cortex M4, http://www.pjrc.com/store/teensy3.html) available on the cheap, not being on AVR isn't the huge disadvantage it once was. At least if you don't count the hardware people already have.
There are companies selling development kits with GC enabled system programming languages, like Oberon, for embedded development.
http://www.astrobe.com/default.htm
Granted, ARM Cortex-M3 and NXP LPC2000 microcontrollers are more powerful than typical Arduino hardware, but one does not need to target all possible hardware out there.
However I did look Golang because it makes concurrency (quite important in embedded programming) easy. Now with Rust...
I wrote it during an after work hackathon, so I didn't really have time to make it both working and nice unfortunately.
https://github.com/pcwalton/zero.rs
Garbage collection, tasks, and failure will not work. All
the other language features, including unique pointers,
references, and closures do work, so programs such as
sprocketnes that do not use garbage collection should be
fine.
The Rust standard library cannot be used in this mode,
but splitting out the Rust standard library into a
portion that can be used in freestanding mode would be an
interesting and valuable project (IMO).