Brian "Krow" Aker (krow) wrote,
Brian "Krow" Aker

CrippleWare, World of Open Source

Ever since I did my original post on Crippleware I have been getting a lot of feedback from individuals about how the intersection of open source works with closed source extensions.

Open Source that is not crippleware but allows for third party extensions allows for the following:

  • Open and documented APIs with stable interfaces.
  • The ability to compile or load the software without "secret sauces".
  • The consumer right to always have access to the data they have entered.

    The first two really deal with the issue of whether or not the vendor has created a "level playing field". Third party vendors who write modules expect an even handedness when dealing with APIs.

    This means that there are no special tools required that cannot be obtained by a third party. No special, aka undocumented, interfaces that modify the API or service interfaces that the modules need to make use of.

    No third party vendor has a right to create a closed source module, the GPL by its nature creates a cost that the third party must open source.

    Quid Pro Quo works in favor of open source. If you write an extension to an open source project you play by the rules of the project's license. This means a closed source module should expect, or at least assume, to have to pay for the right to link. With exceptions to this being granted by the project. Open source adherence modules should expect that they are free to distribute their work, but realize the vendor of the original project may also distribute the module as well.

    In the world of the BSD license anyone is free to extend and distribute. There is nothing inherent in the concept of open source that does not allow for proprietary extensions, it is the nature of the open source license chosen for the project which defines what is acceptable for the licensing of third party modules. Behavior which creates open source software which is crippleware comes from the author and their intent.

    What do both closed source and open source modules share in common? A right to an Open API that has some level of definition and stability.

    If the vendor changes the interface without notice with deliberate intent toward third party modules this is a behavior of crippleware.

    Any project should be communicating API changes, this is a part of being a good steward of an organic open source model.

    As an example of deliberate intent would be if a vendor created a substandard behavior via the open service API and chooses to hold back a more competitive interface for themselves. This is a behavior of crippleware.

    Interfaces must be open and accessible in order to avoid being crippleware.

    A consumer should expect to always be able to extract their data from an open source project in a common manner. Whether this is by printing or exporting, data portability is at the essence of the freedom open source is to provide.

    Telling the user to "write it themselves" is unacceptable behavior. Users have a right to data portability, and I personally think this goes beyond the question of open source.

    In an open source world you will not win a ribbon from anyone in the community for merely having an open source license. If you cripple the very nature of open, you should not be surprised when the community is not impressed.

    At the end of the day it is about having appropriate table manners.
  • Tags: mysql, open source
    • Post a new comment


      Comments allowed for friends only

      Anonymous comments are disabled in this journal

      default userpic

      Your reply will be screened

      Your IP address will be recorded