The Android avalanche today at IO included an announcement that Android L will use a new default runtime called ART. This is really a pretty big deal, that is if you’re an application-runtime geek.
Since Android’s launch in 2008, the app runtime has been Dalvik, which is a story that never got the attention it deserved. It’s a novel register-based VM, not like Java’s at all, but whose bytecodes could be generated from Java’s with reasonable efficiency. A fully garbage-collected and (starting in 2011 or so) JITted VM, pretty power-efficient, and pretty fast. But never quite as power-efficient or fast as iOS apps, compiled from ObjC to ARM-native code; perhaps no classic VM ever could be.
So a native-code runtime was in order; and it’s a tribute to Dalvik and the people who built it that it took Google this long to make one that’s actually better.
Dalvik’ chief author is Dan Bornstein who, obviously, is an ace engineer; and also a nice guy. I saw his departure from Google as a significant management failure, and it troubled me. Anyhow, Dalvik is now a historical artifact, but I still see it as a remarkable piece of software, in production on a billion or so devices, that changed the world in nontrivial ways. Anyone who has their fingerprints on it should feel proud.
ART? A lot of runtimes have been built over the years, and this one reflects many of the important lessons learned. I’m sure that in certain benchmarks certain code sequences run twice as fast or even better. That doesn’t mean that your phone will feel twice as fast, but I expect that many things will feel faster and drain your battery slower; which is good.