Power Plays: The Phenomenon of Vendor Lock-in

Fans of just about anything alternative all seem to suffer from a similar affliction: a naïve underestimation of the pains of switching. This goes for U.S. fans of the metric system, alternative fuel proponents, vegetarians, and yes, OS fanatics. Now, personally I’m all for a lot of those things I just mentioned, but as a lapsed vegetarian, I know full well how, despite the advantages of the alternative, sometimes it’s hard to switch and easy to go back.

Rather than try to mention all the reasons why it’s hard for an alternative OS to make it in the marketplace, I’d like to focus on one of the main obstacles to embracing an emerging platform: vendor lock-in. in essence, in the software world, vendor lock-in is when a customer is dependent on a particular vendor’s product, and the costs of switching from that product are prohibitively high. Cost of switching may be kept high by various means, but most of them focus on a lack of compatibility or interoperability, often intentional.

Data Formats

One of the classic tricks in the software industry is to keep a lid on data formats to promote lock-in. Customers will happily input and import data into a system, but find that exporting the data back out is very difficult, if not impossible.

In desktop applications, companies do this with document file formats. Users create a library of files that are only readable by the vendor’s application, resulting in platform lock-in. There’s another twist on file formats too: if you change the formats to not be backward compatible with older versions of the software, you may be forced to upgrade if you work in an industry that shares a lot of files, because when people start sending you files based on the new version, you will need to upgrade to read them.

This tactic rears its head in the OS marketplace when often-exchanged files such as documents and media files are saved in proprietary formats that are not readable on an alternative platform. Over time, ingenuity often wins out, as Mac and Linux machines can now display most files for Windows applications, but it’s a constant struggle.

Thankfully, most customers will not stand for such user-unfriendly tactics, so most software today offers some mechanism for exporting to interoperable formats, though in most cases you lose some of the special software features in the export.

Those special features are a corollary to the data format method of lock-in. A perfectly legitimate form of “soft” lock-in is for an application vendor to be constantly introducing new functionality into their programs that are reflected in the saved files. Old versions of the software and competing applications will not be able to read the data because they don’t offer the functionality. In this case, the users are locked in if they use those features. Microsoft and Adobe are especially adept at this method, but it can be good for the users because the software gets more and more feature-rich. Of course, a lot of this functionality ends up being gratuitous, and results in merely a more bloated install, and more complicated user interface. Application vendors walk a fine line when attempting this “soft” lock-in.


A European Commission report on Microsoft’s business practices quotes a Microsoft executive in an internal memo, cited in Wikipedia: “The Windows API is so broad, so deep, and so functional that most ISVs would be crazy not to use it. And it is so deeply embedded in the source code of many Windows apps that there is a huge switching cost to using a different operating system instead.” In other words, it’s easy to write software that’s intimately tied to the Windows OS, and takes more effort to write more-portable software; therefore, much of the software out there would require extensive rewriting to work on another platform.

And this does not just apply to off-the-shelf software that you might want to use. Most of the software written in this world is never sold to anyone. It’s written for in-house consumption. So if a particular company has written some custom software (and they have the source code and the skills necessary to port it) they may have relied so heavily on the Windows APIs while writing it that it would be prohibitively expensive to port it. And in-house software is more likely to have been written using this quick-and-dirty method, precisely because it’s meant for in-house use.

Of course, offering great developer tools and a deep and wide API isn’t evil. I’d venture to say that the developers for every platform want the best tools and the most developer-friendly hooks possible. It makes their job easier. But it also takes a massive expenditure of resources on the part of the OS vendor to make that possible. If a great API weren’t an effective anti-competitive tool, I wonder if Microsoft would have made it such a priority.

Embrace, Extend, Extinguish

Lock-in is a very old problem – it’s as old as commercial software, and decades ago people realized that one way for users to combat this problem was to demand and embrace open standards. So software companies “embraced” open standards. Some of these standards have been very successful, such as those that the Internet was built on, like TCP. Others, like SQL and HTML have thrived, but have had various extensions added by vendors that have threatened to balkanize the standard.

Again, Microsoft is notorious for its practices in this regard. Its attempt at hijacking Java might have been successful if not for Sun’s deep pockets and willingness to fight in court. It’s also been accused of trying to appropriate Javascript, Kerberos, BASIC, LDAP, HTML and many others.

The most egregious example of trying to press an advantage with HTML, however, wasn’t Microsoft, it was Netscape. Netscape, having created what was indisputably the best web browser of its time, had designs on controlling the direction of the World Wide Web. Netscape extended on the agreed-upon standards for HTML, adding scores of new tags, and popularizing the use of tools like Javascript to make web pages more interactive, but, in doing so, totally undermined the standards, and forced other browser makers to play catch-up. But web developers rejoiced, because they widely believed that the standard HTML was too constrictive of their creativity. But Netscape wasn’t even an OS vendor, right? No so fast. They actually had visions of the browser becoming an application deployment platform, which would have disintermediated Microsoft, so the impetus to be in control of the standards was there. Ultimately, Netscape’s threat to Microsoft was its undoing, and Microsoft appropriated Netscape’s role as hijacker of the HTML standard, adding DOM and ActiveX to the mix.

Even Open Source software uses the Embrace, Extend, Extinguish model. What is Linux if not an embrace of all the positive aspects of Unix, including many of the familiar utilities, along with many useful extensions? And it’s protected by a strict license that prevents the remnants of the commercial Unix vendors from taking Linux’s innovations and rolling them back in. The consumer is better off in many ways, as most observers would admit that Linux has achieved a level of widespread acceptance, utility, and, yes, even uniformity, than Unix had in its many years of existence, pre-Linux. And, though being free (Gratis) was a major factor in its popularity, it’s cost in relationship to the generally-very-expensive proprietary Unix hardware-software solutions it replaced places it firmly in the Embrace, Extend, Extinguish pantheon, since undercutting a competitor’s price is one of the time-honored tactics of this practice. (See: Internet Explorer)

So while E-E-E isn’t lock-in per se, its result is a de facto lock-in: as one piece of software uses an established standard as a wedge into a market, if it can gain users and bury competitors using E-E-E, it will eventually reign supreme, leaving users with no alternative. Often, the E-E-E tactic is followed with our next lock-in method, as the dominant player exploits its position by ensuring that the major third-party applications for its platform work only on that platform. Windows-only, Oracle-only, Photoshop-only, and yes, even Linux-only, applications and extensions are all too common.

Anticompetitive Partnering

The software world is a symbiotic mishmash of different software with varying levels of interoperability and dependency. Nothing exists in solitude. A PC with no software is a doorstop. A kernel by itself is worthless, an operating system with no applications is useless, but applications won’t run without an OS, and extensions and plug-ins won’t run without an app. Especially in the enterprise computing space, a particular application will generally be supported only for a particular mix of necessary software: a particular OS (and even a particular version, which might be an older one), a particular database, a particular application server, a particular webserver, a particular ERP system, a particular accounting system, and so on.

It’s difficult and costly to code, test, and support your software with all the various available versions of the above types of software, so companies typically pick one or two and focus on them. So companies that achieve dominance, often find it easy to hold on to that dominance, at least on the short term, because the major application vendors only work with them. And these relationships are explicit and often backed by contracts, co-marketing relationships, revenue sharing, and bundling.

Sometimes, it’s not even market dominance that’s the impetus for anticompetitive partnering, but mere shrewdness. IBM could easily have supported a variety of operating systems for its new PC, or picked a better-backed one, or written one itself, but it picked a second-hand one proffered by a young college dropout, and the rest is history.

Application Availability

Very closely related to the previous example is the obvious case of Microsoft’s Windows OS and the thousands of applications that only run on Windows and nothing else. It’s different from anticompetitive partnering only because there is no formalized relationship, other than the developer-vendor one. More developers choose Windows-only because it’s cheapest and easiest to focus only on the dominant player. But it’s by no means confined to Microsoft and OSes. In fact, it’s one of the most widespread practices in the industry. Any maker of software that encourages other developers to make dependent applications is hoping to lock-in some customers that way.

Peripheral Availability and Drivers

One of the major challenges that an emerging operating system faces is that of supporting the various peripherals and accessories that a user might have. Virtually every peripheral in existence supports Windows, and though some commoditized peripherals like keyboards might be easily supported in an alternative platform, others, like video cards and printers might be very difficult, especially when they contain special features that require proprietary information from the vendor. Even widely-used platforms like Linux and MacOS suffer from this problem, to say nothing of a marginal platform like SkyOS or AROS.

There is very little that an emerging platform can do about this. Solutions include: 1) begging manufacturers to write drivers for your platform; 2) trying to write them yourself, through various methods of hacker heroism and brute force; 3) focusing on a small subset of peripherals, perhaps even manufacturing them yourself, and advising your users to use only those.

Some non-OS platforms have this sort of lock-in. Specialized applications in scientific, musical, or other niche fields have hardware devices that work exclusively with particular software.

Hardware Compatibility

A closely-related method of lock-in is also probably the oldest. The earliest computers were all hardware-software combos. In fact, as many people have pointed out, the “sharing culture” that was prevalent in the software world before software was widely commercialized emerged because hardware vendors made their money from hardware, and the software was seen as almost incidental. But hardware vendors locked their users into their software because you needed their software to run their hardware. It wasn’t until IBM created the “open” PC platform that it became feasible to write very low-level software for a platform without the say-so from the hardware vendor.

Apple is of course the most notorious practitioner of this method in today’s consumer computing world. If you want to run the Mac OS, you buy a computer from Apple. Even their imminent move to the x86 platform won’t change that.

Look and Feel

As people become accustomed to the way a particular tool works, that familiarity can sometimes act as a disincentive to switching. For example, I’m used to driving on the right side of the road. When I went to South Africa a few years ago, I had a fun time driving on the left. I was even able to become accustomed to shifting with my left hand. Luckily, the clutch was still on the left, or I would have been in big trouble. For some reason, though, in the car I was driving, the turn signal lever was on the “wrong” side, so whenever I would make a turn, I’d end up turning the windshield wipers on. Even after I was well-accustomed to driving on the “wrong” side of the road, and using the “wrong” hand to shift with, I was never able to kick the habit of using the windshield wiper lever to signal turns. It was just too ingrained.

Similarly, people have become accustomed to the way their computer’s user interface looks and works, and switching to another platform can be frustrating. Mac users trying Windows, and vice versa, can be an initial challenge, despite their similarities. Microsoft knew this. When the first versions of Windows came out, and were a blatant copy of the Mac’s UI, Apple sued, unsuccessfully, setting a precedent for the un-protectability of look and feel. As a consequence, many tools for Linux adopt the look and feel of Windows, or of common Windows applications. Many true believers and UI snobs decry this, but there’s a sound reason behind it — lowering the barrier to entry.

Hosted Applications

There’s an interesting trend in the computing world that serves to undermine vendor lock-in, but also enables some scary new forms of potential lock-in that make all these other ones look like child’s play. The internet opened up the possibility of applications that run on a server far away but can be accessed by a user over the internet, through a standard web browser. As I mentioned earlier, Netscape saw this new reality as a way of lessening the importance of the operating system for much of everyday computing, and so did Microsoft. If we look at today’s world, much of what a computer user would have used a standalone application for just a few years ago is now routinely, or even exclusively done online: looking up a word in a dictionary or thesaurus, finding a map, reading an encyclopedia, browsing a magazine’s archive, even everyday email use, managing photos, keeping a journal, updating an address book, scheduling.

In fact, almost all of what people regularly use a computer for can be done today online with hosted applications, even word processing and photo retouching. Some online applications, like Salesforce.com, have become fantastically successful commercially, with companies paying relatively hefty per-seat fees, because they’re so good, without all the management hassles of traditional software.

The scary part is that with the vendor having absolute and total control over the application, its features, and even your access to it, they’re in a position to keep you locked in like never before. They even have custody of all of your data in most cases, and in some cases, they have the only copy. Only time will tell what impact this trend will have on the individuals and businesses that use these services.

Connection to Proprietary Services

In some cases, software, and even hardware, is usable only when connected to a vendor’s proprietary service. A very widespread example of this is mobile phone carriers, who sell hardware and software that, for the most part, are only good for their service. If you stop paying, your hardware and software become inoperable.

But this is the case for other widely-used software, such as, increasingly, games. Most of today’s hottest games are primarily internet-based, and you play by interacting with other users over the internet. The industry has been slowly shifting from that multi-player use being a free value-add to being the only method of playing, and the connection to the online world of the game, with a monthly fee, is necessary for the game to be played at all.

In most of these cases, the various components, such as the software and the service (and sometimes the hardware) are seen as inseparable parts of a complete package, and they are. But they are also an example of the most successful and complete lock-in.

Ways of Combating Lock-in

So how can customers combat the various forms of lock-in? Well, they’ve been trying, with various degrees of success, for decades. The fact is, there are some forms of lock-in that are especially injurious to the user, and others that aren’t. Some of them, such as the gaming example, are really quite useful the way they are, are straightforward, and therefore don’t call for any kind of active resistance. If you’re not interested in paying the monthly fee, then buy a different kind of game. Similarly, if you detect lock-in that you feel might set you up for onerous terms in the future, then you can vote by not buying or using those products.

However, there are many forms of lock-in that are not so avoidable, and can, and perhaps should, be resisted. Various tactics have been tried over the years, and some have worked: Building isolation layers or emulation in software that breaks down artificial barriers is a high-tech solution with promise and a storied history. Promoting and defending open standards with teeth has had success, but only when it’s resistant to Embrace, Extend, Extinguish. Promoting platform-independent development environments like Java and CGI-based internet applications has worked well, and the attempts at co-opting popular closed platforms, APIs, formats, or standards, such as the Mono project or Word or Photoshop file formats is another.

The software industry is pretty unique in the amount of control that a vendor can exert on its users throughout that user’s experience with the product. Manufacturers of other products can only dream of that control. But users can, and should, push back when necessary, lest the industry run roughshod over them. We can’t forget that software companies exist first and foremost to make money now, and set themselves up to make more money later. Even the free software movement has a larger goal of influence and market control in which you are a mere pawn. Seeing and recognizing the various methods of lock-in are the first steps in being a contentious advocate for your own consumer software rights and forcing the software makers to be user-centered and look out for your long-term interests.


  1. 2005-06-29 3:37 pm
  2. 2005-06-29 3:37 pm
  3. 2005-06-29 3:47 pm
  4. 2005-06-29 3:53 pm
  5. 2005-06-29 4:04 pm
  6. 2005-06-29 4:18 pm
  7. 2005-06-29 4:47 pm
  8. 2005-06-29 5:04 pm
  9. 2005-06-29 5:31 pm
  10. 2005-06-29 5:35 pm
  11. 2005-06-29 6:06 pm
  12. 2005-06-29 6:17 pm
  13. 2005-06-29 6:40 pm
  14. 2005-06-29 6:47 pm
  15. 2005-06-29 6:58 pm
  16. 2005-06-29 8:12 pm
  17. 2005-06-29 8:45 pm
  18. 2005-06-29 8:46 pm
  19. 2005-06-29 9:02 pm
  20. 2005-06-29 9:09 pm
  21. 2005-06-29 9:12 pm
  22. 2005-06-29 9:16 pm
  23. 2005-06-29 9:37 pm
  24. 2005-06-29 9:54 pm
  25. 2005-06-29 10:06 pm
  26. 2005-06-29 10:46 pm
  27. 2005-06-29 11:05 pm
  28. 2005-06-29 11:08 pm
  29. 2005-06-29 11:16 pm
  30. 2005-06-29 11:38 pm
  31. 2005-06-30 12:15 am
  32. 2005-06-30 12:56 am
  33. 2005-06-30 1:07 am
  34. 2005-06-30 3:07 am
  35. 2005-06-30 3:38 am
  36. 2005-06-30 4:28 am
  37. 2005-06-30 5:31 am
  38. 2005-06-30 6:58 am
  39. 2005-06-30 8:12 am
  40. 2005-06-30 10:11 am
  41. 2005-06-30 10:27 am
  42. 2005-06-30 10:28 am
  43. 2005-06-30 10:45 am
  44. 2005-06-30 10:55 am
  45. 2005-06-30 3:01 pm
  46. 2005-06-30 3:11 pm
  47. 2005-06-30 4:18 pm
  48. 2005-06-30 7:54 pm
  49. 2005-06-30 9:04 pm
  50. 2005-06-30 9:13 pm
  51. 2005-06-30 9:37 pm
  52. 2005-07-01 4:20 pm
  53. 2005-07-08 9:09 pm