There is an interesting post today on Slashdot about native languages versus interpreted languages which run in virtual machines or use just-in-time compilers. The question posed was whether or not native code has a future when (while it allows for much more low level control) the interpreted languages provide an environment that is just as powerful while maintaining a level of cross platform and being easier to develop in.
I've thought about this issue a lot. Our machines are becoming so powerful and they will only get better. With that power, it seems silly to be developing Rich Internet Applications that are taking all of that power and simply serving a glorified web application. Microsoft's answer to this is WPF. It's a very hardware intensive environment, but the effects are stunning and the UI possibilities are very intriguing. It seems to combine the processing power of your computer with the ubiquity of the internet.
However another way to think of the $2,500 that it gives you the ability to run applications written in a variety of languages. Programming something in Java or Flash used to mean a significant performance hit, but as the machines have gotten more powerful, that performance hit is getting smaller and smaller. Because you have a powerful computer, the operating system you run becomes less important. Developers can bank on the fact that when they build something using the interpreted languages, it will run on your powerful machine.
The web has provided a layer of abstraction over the operating system, but it remains trapped in a browser. Rich Internet Applications can come along and take the browser out of the equation and directly connect the web with the PC. When that happens, it won't matter what operating system you have, only that you have an internet connection. And when you don't, taking an RIA offline will be easy because you can harness the power of your $2,500 smart client to run cross-platform applications offline.
In the end, developers are going to realize that they can take advantage of the people who have built native code to run compilers and virtual machines. In a world where processing power is cheap, but development time is expensive, it makes economic sense to build applications quickly using cross-platform interpreted languages. Economics wins out every time.
Flickr photo courtesy of Aphrodite