I promised at PyCon I’d post my slides. It took me longer than it should have. The deck is here.
Matt Asay suggests that a definition for an open source company would be:
An open source company is one that, as its core revenue-generating business, actively produces, distributes, and sells (or sells services around) software under an OSI-approved license.
So, supposing that a company produces a software product. It is released under the GPL (or other OSI-approved license). Its business model is to sell versions of the software under a commercial license (the famous “dual-licensing” business model). In such a case, the core revenue-gnerating business produces, distributes, and sells software which is explicitly not under an open source license — even though the exact same bits are available under an open source license.
Under the proposed definition would such a company be an open source company?
Nat asks a difficult question. One that I am frequently in the habit of posing, although not as straightforwardly. For example, the copyright notice for Windows XP (I haven’t seen the one for Vista yet) advises us that
Portions of this product are based in part on the work of the Regents of the University of California, Berkeley and its contributors. Because Microsoft has included the Regents of the University of California, Berkeley, software in this product, Microsoft is required to include the following text that accompanied such software:
Portions of this software are based in part on the work of Massachusetts Institute of Technology. Because Microsoft has included the Massachusetts Institute of Technology software in this product, Microsoft is required to include the following text that accompanied such software:
and many others.
Obviously, that makes Microsoft’s Windows XP an Open Source product, built as it is upon BSD licensed software, and Microsoft, an Open Source company. Or perhaps not. Or perhaps, in a homeopathic way.
If the definition of “open source” includes any software that incorporates BSD licensed code, then I think we’re approaching the point where all software is open source software. My personal recent favorite is the recently GPL’d Xara Xtreme. It’s a drawing program. The license is GPL. Check out the build instructions. Especially step 4. It seems that the rendering library is provided as binary only. A curious fusion: binary-only GPL software.
I think it’s fair to say that pretty much all software now incorporates some free software components, LGPL’d, BSD’d, or whatnot. Mathematica does. Apple’s Mac OSX does. Adobe Photoshop does.
I saw the same thing happen to “Object Orientation”. The Object Oriented Programming Systems, Languages and Applications (OOPSLA) conference used to be frequented by people working in brand new object-oriented languages like Smalltalk. Then, somewhere along the way, every programming language (including Perl and Fortran and Cobol) added object oriented extensions, and it was difficult to find any programming which wasn’t object oriented. Here we are with open source software.
It’s not meaningless. It’s a synonym for digital software. Or, maybe, object-oriented software.
On the plus side, that means that Nat can invite anybody to OSCON.
On the plus side, that means that Open Source has achieved world domination.
On the minus side, it doesn’t feel a whole lot different than when most software was proprietary.
Open Source is a sourcing strategy for software users and manufacturers. It’s like software-written-by-consultants-instead-of-employees, which we don’t have a nice word for, but we could make one up. How about consultative software? How is consultative software different from regular software? Is the software consultative if some employees and some consultants work on it? Of course it is. What if the consultants are marketing consultants, but all the software is written by employees? Well, that should probably count, too.
As long as the definition (of anything) is based on the production process instead of the finished product, it becomes difficult to distinguish, given the finished product, which process was used — unless the process affects the finished product in some definable way — in which case you should define the difference based on that “finished product” difference. And for anything with a complex production process, it can always be true that some part of the production process can incorporate any methodology you like.
It’s useful to make distinctions. There ought to be some kind of software which isn’t Open Source, which we can distinguish from Open Source Software. I agree with Nat’s definition. I should be able to download it, compile it, and use it. Burn it onto a CD and give it to all my friends. Sell copies at a community fund-raiser.
If I can’t, then it is Open-Source-compatible software, or Open-Source-friendly software, or Open-Source-oriented software, but it isn’t Open Source software. It’s probably Object-Oriented, though, so perhaps they could present at OOPSLA.