Qt, the GPL, Business and Freedom

By Timothy R. Butler | Posted at 10:24 PM

In a series of articles (part I, part II) during the month of July, OfB's Timothy R. Butler explained why he felt that KDE needed to move beyond the Qt toolkit it uses as a foundation. In that series, he asserted that the licensing of Qt is becoming a stumbling block to the desktop's adoption. Eric Laffoon, the project lead for KDE's Kdewebdev module, takes exception to Butler's arguments and makes the case for his view on the issue of Qt, below.

I'd like to thank Timothy Butler for sending me an email inviting me to submit an op-ed piece in response to our discussion of some of his recent articles. Recently Tim and Eric Raymond have written pieces offering views that the GPL could create problems attracting business to the Linux platform. I think think the genuis of Richard Stallman's gift is too easily overlooked. My position is one of an insider as opposed to Tim's outsider position. My nature is to question everything and I've also presided over the development of one of the more popular Linux desktop programs, Quanta Plus, for the last five years. It also faced the crossroads of deciding whether to develop a commercial program.

In this opinion piece I intend to build a case supporting the GPL and I intend to prove that the arguments Tim delivered about commercial development and Qt fails a number of logical tests and are tactically misdirected if the goal is success of a free desktop. Moreover I will demonstrate that the “licensing issue” asserted by Tim is inconsistent with at least one of the most respected people involved in GNOME. Because the assertions made about Qt licensing issues revolve around business I want to clarify that I've been self employed for the last 15 plus years and run businesses from construction to sales to web development. I currently own Kitty Hooch, which I'm developing into an international brand. I know what it takes to succeed in business and what will kill you faster than you can write your checks. What I've read in recent articles seem to be a “fairy tale” image of business and programming.

To me FOSS as Richard Stallman has set in motion with the GNU GPL is about the greater good of humanity as opposed to the selfish greed of a few people. The GPL has insured the freedom of users while showing that the closed development model has real flaws. Let's not lose site of what's important. Our community provides the moral center at probably the most pivitol point in history. 500 years ago the printing press ended the dark ages with an unprecedented sharing of ideas. The internet offers dramatically more potential. Thankfully Microsoft was late to the party and FOSS was there to prevent them getting dominant control of the new international currency, information access. The battle for the freedom of access for us and our children is not over. We need to cooperate to insure the enemies of freedom don't overcome us, not attack those who should be our allies. Wars have been lost over just such foolishness.

I have a problem with attempts to depreciate the value of the GPL or arguments that there is a problem with Qt because businesses cannot write closed source software with it for free. Is commercial closed source software essential for Linux success? Is that what we're about now? What are the concerns for businesses developing closed source software on Linux? Where do we come down on the GPL? Before we answer those questions, how has GNU/Linux achieved the success it has and what do we want from it's success? Making it possible to run proprietary software on Linux is different from making proprietary software the cornerstone of our future. Trying to take the GPL out of the heart of FOSS is like trying to hijack the internet, except it's those we thought were our friends, not our enemies who want to do this.

FOSS is a development model. Eric Raymond made the influential illustration of the Cathederal and the Bazaar asserting the peer review was key. Ironically most open source projects never reached the size to get much review benefit. I would assert that being able to target design objectives and take the time needed instead of a committee driven schedule constrained by finances and marketing hype are the key difference. Commercial software consumers focus on the security blanket of support infrastructure, but for me that always meant talking to someone who didn't know the software. FOSS has always meant getting to the author, getting help, fixes and wishes faster and easier than with any commercial package. I have a strong preference for FOSS. Do I care about commercial development on Linux? I would say I support it, but that is in principle. Proprietary vendors are not likely to get my money, and that is the only support that counts for them. Look at the history of Linux. For years BSD was ahead, but the development effort that poured into Linux and GPL'd software has turned the tables. Why? The morality of the GPL! The GPL ultimately respects the user more than any other license because it offers an assurance not just of being free, but of staying free!

Is commercial software the salvation of Linux? When I used OS/2 we desperately looked for that magic 10 million user mark where supposedly vendors would come rushing in. Ironically when we hit that mark we were told that OS/2 users didn't want to spend money on software. What about Linux users? There has to be at least 100 million Windows users, if not several times as many. Even if the ratio for the Linux desktop is better than 1/100th the potential on Windows you have to understand it's nowhere near as financially attractive as a development platform! The reality is GNU/Linux has achieved success on free software and companies like Oracle and IBM got on board with server software when Linux was clearly on track for a major share and possible domination. Commercial software will have a smaller impact on Linux than it ever did on Windows. We've been telling everyone open source is a new paradigm, but now people are claiming proprietary software is the key? The math doesn't work. Proprietary vendors will flock to desktop Linux when it begins gobbling huge market share from Windows. (The only way it could happen the other way around is with cross platform tools better than native toolkits.) It's up to FOSS and it will be too late for most proprietary vendors. The real transition will come with preloaded systems.

The real problem according to many people is that Linux would be better off with just one desktop. (I know Tim doesn't think that.) They are right about one thing. The diversity in the Linux market currently presents an additional problem for commercial vendors, but this is not true of other industries that have decades of experience with standards based production. There is a major problem with just having one desktop or just one commercial distribution… Just look at Microsoft! Microsoft angers us because it maliciously eliminates choice and then fails or never tries to address the needs of many. The difference between a Microsoft monopoly and a theoretical free software desktop monopoly is who the tyrant is. Fortunately free software makes it very difficult to create tyranny, but that doesn't stop people from longing for it.

Let's review. As much as we'd like to see commercial software become more available on Linux we don't want to buy any more of it than we absolutely have to. It's destined for niche markets. We know that we're not likely to be targeted for development unless the developer is doing multi platform code or doesn't care about money, in which case why be commercial. Let's assume we're going to develop some commercial software, and let's make the further wild assumption we want to make it for Linux. People often toss out the “suppose someone wants to write commercial software in their bedroom at night” argument. Let's dispel this. Suppose you want to open a restaurant with the same hours and staffing. The first question you need to ask yourself is who is going to loan you money. You'd do better with a cup on a street corner. Financial institutions and investors put money in your hands based on the probability that you will survive to put money in their hands. No argument smells more like a dead skunk than the argument that starts out “your rules may be good for the majority but they are unfair for this fraction of a percent of people and therefore they should be changed”… which invariably injures the majority. What does it take to develop good software. Let's run SLOCcount on the kdewebdev package and see what it would cost to replace it with a commercial equivalent.

Total Physical Source Lines of Code (SLOC)                = 195,096
Development Effort Estimate, Person-Years (Person-Months) = 50.79 (609.50)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 2.38 (28.59)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 21.32
Total Estimated Cost to Develop = $ 6,861,237
(average salary = $56,286/year, overhead = 2.40).
SLOCCount is Open Source Software/Free Software, licensed under the FSF GPL.
Please credit this data as "generated using David A. Wheeler's 'SLOCCount'."

It should be obvious it's going to take time and the effort of several people to produce a polished product, and then you need money to market it. The smart thing to do would be to write a business plan so you can ask for money and do it right… When you write that business plan you might want to consider why companies like Borland, Lotus, Ashton-Tate, Corel, Word Perfect, Stac and others are either dead or shadows of their former selves. If you were really smart you would realize that outside of niche markets the traditional model is eventually going to fail even Microsoft and you haven't got a chance in hell of competing with them! If you did they would rip your lungs out and buy you in the fire sale. An open development model with a support business makes more sense if you don't have a few million dollars laying around or a really good business plan. An open model can be developed and marketed without funding and can leverage free developer assistance. If you do have the money and commitment to develop a proprietary package then you will care about what's best not whether you have to write a check for it.

Let's get to the meat of it. If you're determined to develop a closed source application for Linux then a Qt license is likely not going to be more than 1%-2% of your total cost, assuming you're serious and using full time developers. The argument has been put forward that Qt is the only platform that has a cost for commercial development on Linux. Since when was your time or the time of an employee free? My business experience taught me that cheap tools are a false economy. Anyone who looks at price instead of value is going to lose money. When you look at how much money you're spending you have to look at all the money, not just one item. Have a look through a professional software developers catalog and see how fast you can spend thousands of dollars and how many tools there are. Anyone can observe that Trolltech, the producer of Qt, has gone from a handful of people in Norway to a company with over 130 employees and offices on four continents in a decade. When they started the odds were totally against a toolkit succeeding where platform owners already offered this. Many developers feel that they offer a benefit of 5%-10% efficiency improvement which easily exceeds the cost hurdle. There are two other things that make Qt particularly attractive for those wanting commercial software on Linux. For companies they offer a secure feeling traditional service relationship… which no other Linux toolkit does. They also offer an instant and rich cross platform capability… Try to find that in commercial toolkits. Why has such a big deal been made of the “GPL problem” as of late? Good question!

There's a problem when companies get into FOSS sometimes. Look at the arguments around what development platform to use among GNOME developers at Red Hat and Novell. The Red Hat people are uncomfortable with Mono and the Novell people are sure not going to give it up for Java. (Note that there have been no opinion pieces from KDE supporters evaluating the impact on commercial viability and making recommendations.) Originally Trolltech was nervous about offering their core product dual licensed as GPL but they did move it to GPL. There used to be an argument against Qt for not being GPL, then for not offering unrestricted free software development on Windows. As of Qt 4 the GPL license applies to Linux, Mac and Windows. The only thing left to attack Qt on is that it's not free for commercial use… Never mind that it's a poor argument and that the objective of FOSS has never been to support corporate welfare for commercial projects. The only place Qt doesn't work out is in projects where a lot of open source developers contribute little bits and then it's offered under a GPL incompatible license.

Tim believes, based on the theoretical bedroom developer, the solution to the problem he imagines is KDE splitting from Qt. I believe theories need corroboration. As a recent post on Linuxtoday.com pointed out, companies developing niche software products on Windows will find KDE to be an advantage when they cross platforms. Not only would KDE splitting from Qt do harm to commercial development on Linux, the opposite of what Tim suggests, it would suspend KDE for years. Netscape went from being a market leader to nobody this way. I can't imagine Tim would wish the destruction of KDE, Qt and Trolltech. I think he is persuaded by arguments that appear reasonable to outsiders. When I test those theories I find they are fabricated by either the horribly naive or by those who do wish harm. We should want the best programs to succeed strictly on merit, not to fail on how creatively they can be attacked. We need to be vigilant in opposition to the spread of falsehoods for the sole benefit of harming other free software projects.

Didn't we all rally behind the GPL as recently as the XFree86 incident? Eric Raymond's recent assertions of karmic punishment invalidating the GPL deny the nature of companies like Microsoft. The GPL has been the greatest guarantor of freedom in software I know of and is critical for our future. No company and no organization should control the platform that user software is developed on. Some people may think that is a reason to exclude Qt, but Qt is GPL'd so if Trolltech doesn't address the needs of KDE it could be forked… Thus control is no more possible than it was for most of the XFree86 code. Why should Trolltech and Qt be punished for using the GPL? You might think that since GTK is free for commercial use, these arguments are orchestrated by the GNOME community, but I don't believe their developers would object to GPL libraries or dual licenses for commercial use. In fact no less than Miguel de Icazza, the founder of GNOME, talks in his blog about his endorsement for ZeroC which proudly displays his endorsement for their dual licensed ICE software. Is ZeroC the next target like Trolltech? Is dual licensing okay for some libraries but not others? GNOME also endorses Free Software and the GPL is the ultimate expression of free software. Microsoft hates the GPL. Why are open source supporters against a company like Trolltech which has GPL'd their key product? One can hope reason will prevail. Sadly, for some, zealotry will trump any reasoning.

The GPL is a manifesto about protecting users. Since when has the big guy needed protection from the little guy? The fact that Qt is GPL'd means that Trolltech believes in FOSS. Tim says KDE should dump Qt because they don't provide corporate welfare for commercial software he thinks is so essential to Linux adoption. The idea that a company giving this much to the FOSS community should be punished for not providing corporate welfare so companies can sell us back open source software in proprietary packages is incomprehensibly wrong to me. It's time we focus on the value of choice, freedom and how to best serve users instead of looking for ways to criticize projects for being different. KDE and Qt are popular because they address user needs. Even if you are not their users it is a victory for open source, not a “loss for your side”. I defend your freedom to choose. We should all do no less, and certainly not forget what is important when presented with such arguments.

Eric Laffoon is the project lead for the kdewebdev module which includes
Quanta Plus and Kommander. He has been working with computers since before
microprocessors and was a professional web developer in the 1990s. He lives
in Hillsboro Oregon with his wife, dog and four cats and runs Kitty Hooch
LLC. He can be reached at eric@kdewebdev.org.