As an avid open source contributor for nearly 15 years --- and a father with children to provide for --- I've observed intently the discussions about how to monetize open source. As a young PhD student, I even spent hours avoiding my dissertation by reading about philosophy and economics to try and make sense of how an open-source economy might work.
I love creating and contributing to open source code --- particularly code that has the potential to influence and touch for the better millions of lives. I really enjoy spending as much time as I can on that activity. On the other hand, the wider economy wants money from me for things like college expenses, housing, utilities, and the "camp champions" that I get to attend this week with my 11 year old son. So, I have thought and read a lot about how to make money from open source.
There are a lot of indirect ways to make money from open source which all amount to giving away the code and then making money doing "something else": training, support, consulting, documentation, etc. These are all ways you can sell the expertise that results from open source. Ultimately, however, under all these models open source is a marketing expense and you end up needing to focus your real attention on the the thing you end up getting paid for -- the service itself. As a result, the open source code you care about tends to receive less attention than you had originally hoped and you can only spend your "free time" on it. I've seen this play out over several years in multiple ways.
I still believe that a model that is patterned after the original copyright/patent compromise of "limited-time" protection is actually a good one --- especially for certain kinds of software. Under this model, there are two code-bases: an open source one and a proprietary one. People pay for the software they want and use (and therefore developers get paid to write it) while premium features migrate from the paid-for branch to the free-and-open-source code base as the developers get paid.
While this model would not work for every project, it does have some nice features:
I love creating and contributing to open source code --- particularly code that has the potential to influence and touch for the better millions of lives. I really enjoy spending as much time as I can on that activity. On the other hand, the wider economy wants money from me for things like college expenses, housing, utilities, and the "camp champions" that I get to attend this week with my 11 year old son. So, I have thought and read a lot about how to make money from open source.
There are a lot of indirect ways to make money from open source which all amount to giving away the code and then making money doing "something else": training, support, consulting, documentation, etc. These are all ways you can sell the expertise that results from open source. Ultimately, however, under all these models open source is a marketing expense and you end up needing to focus your real attention on the the thing you end up getting paid for -- the service itself. As a result, the open source code you care about tends to receive less attention than you had originally hoped and you can only spend your "free time" on it. I've seen this play out over several years in multiple ways.
I still believe that a model that is patterned after the original copyright/patent compromise of "limited-time" protection is actually a good one --- especially for certain kinds of software. Under this model, there are two code-bases: an open source one and a proprietary one. People pay for the software they want and use (and therefore developers get paid to write it) while premium features migrate from the paid-for branch to the free-and-open-source code base as the developers get paid.
While this model would not work for every project, it does have some nice features:
- it allows developers to work full-time on code that benefit users (as evidenced by those users' willingness to pay for the software)
- developers have a livelihood directly writing code that "will become" open source as people pay for it
- users only pay for software that they are getting "premium benefits" from and those premium benefits are lifting the state of open-source software over time
It is a wonderful thing for developers to have a user-base of satisfied customers. For all the benefits of open-source, I've also seen first hand the difficulty of supporting a large user-base with no customers who are directly paying for continued support of the code-base which eventually leads to less satisfied customers.
I am thrilled to be part of a forward-thinking company like Continuum Analytics that is committed enough to open source software to both sponsor directly open source projects (like NumPy and Numba) as well as seek to move features from its premium products into open-source. You can read more about Continuum's Open Source philosophy here: Continuum and Open Source.
For example, we recently moved a feature from our premium product, NumbaPro, into the open-source project Numba which allows you to compile a python file directly to a shared library. You can read about that feature here: Compiling Python code to Shared Library.
We will continue to develop Numba in the open --- in conjunction with others who wish to participate in the development of that project. Our ability to spend time on this, of course, will be directly impacted by how many licenses of NumbaPro we can sell (along with our other products and services). So, if computing on GPUs, creating NumPy ufuncs and generalized ufuncs easily, or taking advantage of multiple-cores in your Python computations is something that would benefit you, take a look at NumbaPro and see if it makes sense for you to purchase it. Hopefully, in addition to great software you appreciate, you will also recognize that you are contributing directly to the development of Numba.