The Cost of Switching Away from the System
The most important—and overlooked—cost is the final one. At some point, your shiny new system will be obsolete. There are many possible reasons for this. The company making it may stop supporting it, or simply go bust. The developers may decide to stop working on it. It may lack features you find you now need.
When you reach this turning point, you need to look for an alternative. How dependent are you on the system? Have you used it to build critical infrastructure?
Now is the time when open standards become important. If your system adheres to standards, then it is relatively easy to replace it with something else—a fact that makes standards somewhat unpopular with vendors.
In the absence of standards, dependency chains can be quite long. If you use software that is written using non-standard APIs, then you can’t replace your operating system easily. If this software stores its data in non-standard formats, then you can’t replace it easily.
If you pick an operating system that supports standards like POSIX and X11, then it is relatively easy to port existing source code to a new platform with support for these standards. If you don’t have the source code available, then binary translation layers are available which work well on isomorphic systems.
Similarly, if your data is stored in open formats, then it is easy to migrate it between applications. If you are using OpenOffice to create OpenDocument files, then you can switch to AbiWord (for example) without having to translate all of your documents into a new format.
Standards exist in most arenas of software development, from the lowest level software interfaces to the highest level data representations. If the software supports them (and isn’t unique in doing so), then it is relatively free from vendor lock-in.