"Although the .NET vs. Java war is basically over for control of the Windows desktop, where .NET is sure to become the managed language of choice for new Windows desktop applications, there is a new battle brewing. That battle is for the Linux desktop. Now that Java has been open sourced under the GPL, even the most strict of the 'free software only' distributions can start bundling it and integrating it into their Linux distributions out of the box."

Even now, the tools and languages we have available for creating desktop applications are extremely poor. Adobe and Microsoft are on the right track with Flex and WPF respectively, but where are the equivalents in open source? I've been waiting for an open and scriptable SVG browser for years now, and Firefox still hasn't delivered.

While these tools are great for telling a computer what to do when all the variables are known, they still for the most part fail to address HOW a user interacts with a computer. For Linux to win on the desktop in any way at all it needs to be more like the Wii, and less like the Playstation 3.

And to take the desktop now, Linux also needs to be able to handle interaction beyond the mouse, such as ink, touch, and voice, which are becoming increasingly important and patent encumbered. Yet without a unified API in some form (say part of the Java standard), Linux will not be able to compete with commercial solutions (or at least not as an open source product).