Virtual Machine Programming
One of the most significant trends in data centers across the world today is the migration of physical servers into virtual ones. A rainbow of reasons exists for this, from more effective provisioning of hardware to higher availability, durability and business process isolation.
These and other factors combine to drive operating costs down while keeping complexity at bay. With the rapid ascent of VM's, the need to spontaneously generate and spool new, highly customized and targeted VM's for operations in a standardized way is the next step in the virtualization march.
Eventually, VM's will be abstracted to the level that applications living within an operating system are today. As such, a new way of thinking about full VM usage from server to desktop to edge devices are already impacting and readjusting the way operating systems and the applications they host are written. Three of the most prevalent and programmable VM host environments are Xen for Red Hat Linux Enterprise and other Linux distributions, Microsoft's Virtual Server / Hyper-V for Microsoft-homogeneous environments and VMware for mixed environments.
While each of these allow a certain degree of API access to the VM processes, each does not yet offer quite the depth of standardized programmatic interfaces that a highly sophisticated manipulation of hosted VM's that developers might expect from such dynamic environments. The reason for this is obvious - there are no standards when it comes to VM programming. Yet, with the ongoing increases in processor cores and speeds, host RAM and storage capacity, on-the-fly VM processing will be a frontier that could be as frequently employed as Java and .NET application virtual machines are used today. While the competitive success of virtual machine technologies will antagonize the formulation of cooperative interfaces for the near-term, I believe the market will demand a standard that will deliver the portability between VM host providers much the way the C language unified application development across disparate computing platforms in the last quarter of the 20th century.