I generally agree unequivocally with Bruce Schneier, but his recent column on vendor lock-in has me wanting to take issue with some of his points.
Vendor lock-in is real, but the example he gives of the iPhone is not a very good one. Why? Because it's easy to switch: you call up the carrier (AT&T in this case) and say "I don't like my iPhone, it's too sleek and good looking and it's user interface is too elegant. Instead I'd like to subject myself to some nonsense from the traditional handset vendors." To which the AT&T person says "sure, we'll charge you $X and ship out a new handset. When it arrives, just activate and transfer your contacts." Bingo, you're off the iPhone.
[Update: Andrew points out in comments that the 24-month contract may impede switching in this manner. I don't know the details, but I'd be surprised if it was impossible to switch away from the iPhone, merely expensive. This is, to my mind anyway, not sufficient to justify the term "vendor lock-in", but I suppose that depends on your definition. My definition is below.]
In Australia we have number portability which means that I can generally switch handset or carrier without too much fuss. I'm not sure about the situation in the US, but as illustrated above you are still free to switch handsets while keeping the same carrier. So if there's lock-in at play here, it's lock-in to AT&T, not the iPhone.
So what is vendor lock-in anyway? I would define it as the presence of constraints on a given product or service that are imposed by the vendor and which prevent you from switching to a different product. These constraints may take the form of missing features which would enable a switch, or of usage constraints imposed by licensing, or both. Either way there has been an explicit decision — technical or policy — by the vendor which prevents switching to a competitive product. Hence the term is a mild pejorative.
It's a slightly confusing term because it applies to a product or service, and not to the vendor. So it's quite possible for product X to exhibit vendor lock-in, but not product Y from the same vendor. "Vendor-imposed lock-in" might be a better term.
Note that there is an implicit assumption that the features and capabilities of the product in question are available elsewhere in the marketplace. In other words, there exists an equivalent product to switch to. This assumption does not always hold, and sometimes you may find yourself unable to switch to a different product, simply because there are no other products on the market with a given capability or feature. This does not, by my definition anyway, constitute vendor lock-in, because the inability to switch does not arise as a result of a decision from the vendor.
Does the lack of an SDK constitute vendor lock-in for the iPhone, as claimed by Schneier? Well, does the lack of this feature prevent switching to a different product? No, of course it doesn't, as illustrated above.
In fact, it is the presence of an SDK which constitutes vendor lock-in, of a sort. Third-party applications written to the iPhone cannot, by definition, be easily be ported to other mobile platforms. If you suddenly decide you don't like your iPhone any more, but have hundreds of third-party applications installed, you have a problem.
This problem is common to all computing platforms; vendor lock-in is a necessary consequence of all vendor-controlled SDKs and APIs.
Incidentally the delay in making an iPhone SDK available can quite easily be explained by the technical challenges involved, and does not neccesarily imply any policy decision by Apple to deliberately lock out third-party developers. Producing an SDK of any quality is a hard task, and the instant it is released it has to be supported for the life of the product. As Charles Miller puts it, "third party apps are for life, not just for Christmas". It is quite understandable that Apple would make sure their SDK is just right before committing to it.
But where does the "no SDK == lock-in" idea come from anyway? I suspect that it arises from the expectation that we are able to install third-party applications on the iPhone. Where does the expectation come from? It comes from the disclosed fact that the iPhone runs OS X. If Apple had not divulged this fact, or if the iPhone ran some un-named OS — as is the case for all classic iPods, for example — there would be no expectation of third-party applications. It is for this reason no one is claiming that the lack of an iPod SDK exhibits vendor lock-in.
However, Schneier claims that there is vendor lock-in on the iPod, due to the fact that "music purchased from Apple for your iPod won't work on other brands of music players". This is misleading; it is quite possible to purchase DRM-free music from Apple for the iPod and other players. Again, he's incorrectly identified the source of the vendor lock-in, which in this case is certain music from the iTunes Store and not the iPod.
To reiterate, vendor lock-in is real and is important. It is contrary to the idea of Free Data and deserves to be more widely discussed. However, let's first understand what we are talking about, so that we can think critically.