Yogi Berra once said of a famous restaurant, "No one goes there anymore, it's too crowded." The same is becoming true of JavaScript. The language may be the most commonly executed code on the planet, thanks to its position as the foundation for Web pages. If that's not enough, its dominance may grow stronger if server-based tools like Node.js gain traction.
Yet for all of JavaScript's success, everyone is moving on to the next thing. Some want to build entirely new languages that fix all of the troubles with JavaScript, and others are just finding ways to translate their code into JavaScript so that they can pretend they don't use it.
Translated code is all the rage. Google's Web Toolkit cross-compiles Java into JavaScript, so the developer types only properly typed Java code. It continues to get better, and Google has integrated it directly with its App Engine cloud so that you can deploy to it with one button.
Some of the translations are purely cosmetic. Programmers who write their instructions in CoffeeScript don't need to worry about much of the punctuation that makes JavaScript look a bit too old school. The cross-compiler kindly inserts it before it runs.
Other translations are more ambitious. Google's recently announced Dart, a language that will apparently fix many of the limitations that the development team thinks make JavaScript a pain. There are classes, interfaces, and other useful mechanisms for putting up walls between the code, an essential feature for large software projects. Spelling out the type of data held in a variable is now possible, but it's only optional. The Dart lovers say they eventually want to replace JavaScript, but for the time being they want to get their foothold by providing a way to translate Dart into JavaScript. In other words, they want to replace JavaScript by making JavaScript the core of their plan. --Peter Wayner
5. Distributed storage tiering
NAND flash memory -- the stuff of which solid-state drives are made -- is up to 1,000 times faster than disk storage and many times cheaper than DRAM. Flash memory is the hottest commodity in storage, and it will be even hotter when storage management software catches up with the potential of flash in the data center.
Flash memory's special combination of high speed and low cost makes it an excellent choice for server-side cache, where it replaces pricier DRAM, and the natural choice for tier-one storage in SANs, where it replaces slower disks. With the cost of flash steadily dropping and the capacities of SSDs steadily on the rise, the days of disk drives in servers and SANs appear to be numbered.
The best part: Having flash storage in servers introduces a possibility that simply wasn't practical with disk -- namely, managing server-side storage as an extension of the SAN. In essence, server-side flash becomes the top tier in the SAN storage pool, drawing on intelligence within the SAN to store the most frequently accessed or most I/O-intensive data closest to the application. It's like caching, but smarter and more cost-effective.
The huge performance advantages of flash have made automated tiering within the SAN more compelling than ever. All of the leading SAN vendors now offer storage systems that combine solid-state drives, hard disk drives, and software that will dynamically migrate the "hottest" data to the fastest drives in the box. The next step will be to overcome the latency introduced by the distance between SAN and servers. The speed of flash and block-level autotiering software -- which operates in chunks as fine as kilobytes or megabytes -- will combine to close this last mile.