Visual FoxPro for Linux: A Violation of the EULA?
Editors' Note: This article has been updated with an addendum since its original posting.
It started out in an unassuming manner: an industrious developer, Paul McNett, had a growing interest in Linux. He began playing around with the open-source implementation of Windows for Linux called WINE and wondered how his favorite development tool, Microsoft Visual FoxPro, would run. It was slow going at first, but Paul persisted. He tracked down problems and submitted them to the WINE team. Little by little the problems were corrected, until Paul finally was able to run Visual FoxPro under WINE. He began telling other VFP developers about his work, and many were interested in learning more.
One such person was Whil Hentzen. Whil is the editor of FoxTalk magazine, a multiple-year recipient of the Microsoft Most Valuable Professional award, book publisher, host of his own FoxPro conference and the first ever recipient of the FoxPro Community Lifetime Achievement Award. Whil asked Paul to write an article detailing his work for FoxTalk, and Paul agreed. Whil also began incorporating a demo of Visual FoxPro running under WINE into his presentations at conferences and user group meetings.
Whil was scheduled to give one such presentation recently to the Bay Area Association of Database Developers (BAADD). Shortly before his presentation, however, he received a phone call from a manager at Microsoft, who informed Whil that the material covered in Paul's FoxTalk article was in violation of the EULA (End-User License Agreement). As Whil was in the middle of dinner, the conversation was short and ended with a request for Microsoft's legal department to document its objection in writing. Understandably reluctant to incur the wrath of Microsoft's seemingly bottomless supply of lawyers, Whil did not demo VFP under WINE that night, but simply explained to the audience the reason why he couldn't.
That didn't sit well with some members of the audience. One of them, Chet Gardiner, immediately fired off an e-mail to the ProFox mail list expressing his outrage with the heavy hand of Microsoft. His message in turn raised the ire of others, and anger over this issue began to grow. The manager at Microsoft who made the initial call, Ken Levy, then refined his comments to state that while it was okay to run a fully licensed copy of Visual FoxPro under WINE, it was a violation to distribute the applications built with Visual FoxPro to be run under WINE. Because VFP is a tool for generating applications, this seemed like a blatant tying of an application to the operating system, one of the things prohibited by US anti-trust laws for monopolies such as Microsoft. Needless to say, that clarification didn't do much to settle the issue.
In the past few weeks, this story has appeared on The Register, Slashdot, LinuxWorld and even the German publication Heise Online. That's pretty amazing considering Microsoft has done its best the last few years to keep Visual FoxPro, one of its most powerful development tools, off the radar screen. Why would they do that? One simple reason: money. An application developed in Visual FoxPro is much more economical for a business, as Visual FoxPro has its own data handling and storage capabilities. Contrast that with the much more popular tool Visual Basic, which requires a separate data engine (usually Microsoft SQL Server). Microsoft makes a lot more money selling licenses for SQL Server, which are quite expensive, than they do when VFP applications are distributed, requiring no additional license fees. So which solution do you think Microsoft is going to promote? The fact that Visual FoxPro has a rich set of development tools and a robust object-oriented programming language doesn't concern them; they simply want the highest license fees they can squeeze out of their customers.
Why should any of this concern Linux users? After all, we're talking about a Microsoft product. For starters, I think this situation shows that Microsoft truly is afraid of Linux's potential on the desktop. For them to add this restriction starting in 2001 certainly suggests that someone in Redmond recognized the threat posed by Linux.
Secondly, if it does become possible to run the executables under Linux with no Windows licensing fees, a lot of companies would certainly see the benefit in switching. Many of my clients have their business applications running on hundreds of machines throughout their sites, systems that do not run anything else. They have no reason to pay for a Windows license besides being able to run this single application. They literally could save thousands of dollars by switching to Linux/WINE, resulting in Linux's entry into many traditional Windows shops.
But what sort of companies are we talking about here? Probably some Mom-and-Pop businesses that use VFP applications because they couldn't afford a "real" tool, right? Wrong. Visual FoxPro has been used to develop mission-critical applications for some of the largest companies around. I personally have developed VFP applications for AT&T, 3M, Daimler-Chrysler, Ogilvy & Mather and Pitney Bowes. If you're not familiar with Visual FoxPro, you owe it to yourself to give it an in-depth look.
For now, we wait for the pronouncements from the Microsoft Legal department on its exact interpretation of the EULA, which is quite vague and offers numerous loopholes that developers and their clients can invoke to implement a Linux/WINE solution. Will this be the start of another set of anti-trust violations by Microsoft, or will it quickly fade away and be forgotten? Like most VFP developers, I'm waiting for Microsoft to make the next move.
Since this article was originally written, Microsoft did indeed respond to the request for a clarification of the EULA terms, but it did not actually clarify anything. Here's the wording:
Visual FoxPro was designed and tested for use in creating applications that run on the Microsoft Windows platform; the same applies to the components that are provided to developers for redistribution with Visual FoxPro-based applications. If a developer wishes to distribute the Visual FoxPro runtime with an application, the runtime may only operate in conjunction with a Microsoft Windows platform. As with any contract, you should seek your own legal counsel's advice when interpreting your rights and obligations under the Visual FoxPro End User License Agreement.
So instead of clarifying, Microsoft simply passed the buck and told us to get lawyers to interpret the meaning of the contract. Well, one lawyer did exactly that: John T. Mitchell, an attorney in the Washington, D.C., area who specializes in copyright law, picked up the story from The Register. He wrote a piece on his web site that warns Microsoft risks invalidating its abilities to enforce its legitimate rights under copyright law by trying to enforce "rights" that legally are not theirs. You can read his writing, titled "Microsoft Risks Copyright Impotence", along with a more detailed elaboration of the legal basis for his opinion in an e-mail posted to ProFox, an mail list for Visual FoxPro support. I am not a lawyer, but his reasoning and examples are clear and easy to follow.
This controversy also seems to have breathed some life into the Visual FoxPro market. People who had never heard about the product or had assumed it died a long time ago wondered what all the fuss was about. Numerous developers report an increase in inquiries, and membership on the ProFox mail list, which I host, has increased by 10%. If this persists, the controversy might end up costing Microsoft in ways they never anticipated, as more and more companies learn of a tool that can develop data-intense applications for a fraction of what they would pay in license fees for a Visual Studio/SQL Server solution.
Ed Leafe is a cross-platform sort of guy, who works in OS X, Linux and Windows about equally. He is a long-time Visual FoxPro developer and has received the Microsoft Most Valuable Professional award for each of the past nine years. He also runs the OpenTech Forum, where people with both Visual FoxPro and Linux questions can go for support.