I've come to the conclusion that code is temporary, and is meant to be discarded after a while. Hardware change, requirements change, people change. The things that are permanent are data and methods.<p>That's why I think as long as you have documented and defined your methods (i.e. business logic) well, and your data is portable, you shouldn't worry much about vendor lock-in in the long run.