What both sides ignore is that CS and OS serve two very different purposes for two very different types of developers, and there is a place for both within the current IT community. There are developers who work for or are software vendors: their primary business model comes from the sale and support of applications. There are also developers who work for or are, what I will call, and "tool makers." Toolmakers create applications for their company's or their own use. The expense of these tools is recouped not in selling the tools to the broader market, but in increased efficiency in their "other" jobs. In other words, toolmakers are not primarily developers; they merely develop as a part of their larger, non-software related ventures.
For toolmakers, I wish to demonstrate the GPL can be used to increase the gain from the tools they develop. Let us set up a hypothetical situation (which is pretty close to what I actually do) and examine how the GPL can improve efficiency and increase gains from internal development.
Let us say you are a lone developer for a private air charter company. This is a niche market that is not well served with applications; and, what is available is often extremely expensive--especially considering the relative size of the companies existing within the market. Thus, you and your employer wish to write a customized application that will better serve your needs and are less expensive in the long run (though more expensive, in terms of man-hours than leasing a package from a third-party vendor). Upon completing the application, here are your options:
Keep the application private.
You use and maintain the code internally, and do not release it into the public sphere at all. This is certainly a viable option, and many businesses do just that; however, you gain nothing from the software other than the usefulness it provides. If this is what you are going to do, you can then choose to use existing open source applications and libraries because you will not be publishing any modifications.
Sell the application.
Assuming it is well written and applicable to other companies in your market, this can bring great monetary gains to your company. However, it forces your company to divert resources into becoming a software vendor. This may be unacceptable despite the potential monetary gains. Sometimes, the headaches just aren't worth the money.
Sell the application to a third party vendor.
This can bring great monetary gain with little of the accompanying headaches as the new owner accepts the burden of marketing and support. The downside is you no longer control the code and may even be force to eventually pay for something you wrote as the new owner expands the capabilities of the applications.
Release the application as CS freeware.
No business in their right mind would do this as it gives all competitors the same tool-based edge in operations without any of the concomitant costs of developing the tool.
Release the application under the BSD open source license.
For the originator of an application, this is tantamount to option four, releasing as CS freeware, combined with the weakness of option three. A competitor could take your application, improve it, and then sell it back to you so you can use those improvements! While the BSD license is great of developers further up the food chain, especially those who are software vendors, it makes little sense for the originator to use the BSD license. Also, options two through five require that you either use only BSD or LGPL open source projects in your application or write everything from scratch.
Release the application under the GPL.
This, actually, makes a little bit of sense. Yes, your competitors gain the same operations benefits as you without paying for it; however, there is the distinct possibility that other developers will seize upon the basic idea in your application and improve it. With the GPL license, these improvements, if published, automatically return to you, the originator of the application. Thus, you gain additional improvements in your tool without having to pay to do the development work. Additionally, making the decision to release under the GPL opens up a wide world of existing applications that can significantly reduce development time of your application.
In summary, CS software is obviously a necessity for the continued existence of software-only vendors. And, these vendors tend to produce the best general-purpose applications (MS Office, Adobe Photoshop and Illustrator, Macromedia Dream weaver and Fireworks, etc.). However, many companies rely on special-purpose vertical market applications that do not exist or do not exist in usable form from CS companies. In this case, open source, especially the GPL, can make obtaining, modifying and building the necessary applications much easier and less expensive.
Barry Scott Will works in the IT department for a small air charter company in Richmond, Va. Barry is also an independent software developer and author of sacredcowdiner.com.
Disclaimer: 'Reader TalkBack' is a commentary column written by a ZDNet News reader. The opinions expressed herein are those of the author, not those of ZDNet, ZDNet News nor its editors.
We want to feature "you" as a guest columnist on TalkBack Central -- The page dedicated to you and your views! Got a column for Your Turn or Reader TalkBack? Submit it here.