|
This was true even though Microsoft and other vendors tried to push their "platforms". Microsoft, for a time, shipped versions of Windows for multiple hardware platforms. You could by Windows NT to run on the DEC Alpha hardware. Good luck finding off-the-shelf sotware that wan on the Alpha version of NT, though.
Java popularized this technique to the point where Microsoft felt threatened. The licensing agreements broke down in several well-publicized court cases. Left without a license for recent versions of Java, Microsoft faithfully reproduced Java, renaming the Java Virtual Machine the Common Language Runtime.
So now the two main software environments both use bytecode and interpreters. Applications written in Java can run anywhere where there is a JVM, and applications written to the CLR can run anywhere the CLR is ported (Windows and Linux/x86 only, for now).
With the majority of applications expected to be targeted to one of these two runtime environments, the importance of hardware platforms will diminish. There are some efforts to allow bytecode from either runtime environment to execute on the other. Will we finally get write once, run anywhere?
Thus we'll soon see a division of programmer effort along new platform lines. Even though applications can run on different hardware, they'll require certain libraries to be present. The library becomes the new platform.
Copyright © 2024 Andrew Oliver