Image via WikipediaThis is going to be a controversial post, or so I hope. If only for the reason that my thoughts around this matter are conflicted between two instincts that don’t always fly well together; a strong believe in the power of profit and a belief that foundational software should be open source.
Yesterday, on Friendfeed, Aarthy asked the following question
Can anyone tell me if there is a web based service for doing phylogenetic analysis of DNA sequences? For example, you want to know whether a particular consensus sequence is present in say, humans and how far behind in evolution it is conserved. Can any web-based sequence, preferably open source sca
I’d like to point to the bold part. It’s along the lines of a topic that Tim O’Reilly has talked about over the years and revisited after OSCON.
I have heard a few discussions recently where people are trying to choose between making software source available to academics (not necessarily the same as open source), making software open source and/or providing a web service. The thing that jumps out at me is that people seem to be confused. They don’t always know why they want to make software available a certain way, or what the pros and cons of the various options are.
So the question I have is this. Let us say there is a service that provides certain functionality, let’s say it allows you to do phylogenetic analysis of DNA sequences. Would most users be satisfied with a high quality web service with programmatic access for those who want to use the service in conjunction with other tools? Would users be satisfied with an associated publication or application note describing the underlying science? Or would you want a source code download under all circumstances?
My personal preference, in most cases, is to provide a web service with an open, well documented, API, make sure that the algorithm is described somewhere, and open source the algorithm, or at least the original implementation (in this case the GPL is a pretty good idea) . In today’s world, that means, put the source up on Sourceforge, Github, or Google Code.
Of course, there is a challenge here. How do you monetize if you want to? I am somewhat conflicted here. In the commercial open source world, the success stories (Canonical, RedHat, MySQL, etc) have been successful partly due to the volume of users and partly due to the ability of those efforts to become a core part of the business processes of a number of companies. There are very few applications in the life sciences that fall into that category, and none of them are infrastructure applications. I’ve been around long enough to recognize that many people, especially those in the biopharma industry like the idea of paying for customer support, or having a rich molecular graphics environment around well known algorithms, so there is value to commercialization, including open source software. On the other hand, companies like Google have been built on top of open source software but, e.g. in Google’s case, the engine that makes them tick is often proprietary (although in some cases certain aspects are published).
So where does life science software fall? First of all, we should end the sham that is academic-only software. It belongs to a different era. In many cases, a small VC-funded biotech has less money to spend on software than most academic labs. Make the software open source, in the proper way. If you want to make money from your work, form a compelling partnership, or in a world with virtual resources, encourage people in the lab to develop a commercial service. Give people something they care about and will find real value from.
If you are a company, you need to publish your algorithm and perhaps open source the original implementation. I do believe in trade secrets in the appropriate situation, but the number of algorithms out there which might merit that kind of protection are few and far between. In the end, much like data, it’s the implementation, support of the implementation and value add that makes a particular software package worth paying a subscription for.
Which brings me back to the quote that started all of this. There is no such thing as an open source web serviceIs there really a need for such a thing as an open source web service (although there is such a thing as an open web service). Build the web service on top of open source. For an internet company that might mean the LAMP stack or Ruby on Rails. For a life science company, that also means your alignment algorithm, or your force field. How you implement those can be hidden. How you make them scale or how to integrate multiple services or some killer graphics can be yours.
Would love to hear your thoughts, cause it’s something we need to think about in a rapidly changing computing environment.
Prologue: I mentioned the GPL earlier in this text. Over the past few years, I have somewhat soured on copy-left licensing. IMO, there is place for the GPL, for example a complete software suite, or a core algorithm (the example above). However, for a big chunk of cases, e.g. a library of some kind, I much prefer more permissive licenses, e.g. BSD, MIT, Apache. If someone can innovate based on what you might have developed it’s a good thing. If that person is you, even better.
Update: Updated the part about “there is no such thing as an open source web service. As Andrew Clegg pointed out on Friendfeed, you can make the entire source of a web service available. That leads to the follow up question in my head. In a world where your computational resources are more and more virtual, what’s the point of an open source web service? That will be the discussion point of a follow up post




3 Comments
Hi, posted my comment on FriendFeed:
http://friendfeed.com/e/bb0667e2-7fbb-f3f5-3b15...
I have dealt with this question many times in my blog. The bottom line is that Tim doesn't get opensource at all. He sees it from a totally narrow POV as a licensing platform and/or business model. I was planning to respond to his post based on OSCON talk but inertia kept me from doing it. Opensource is kind of a philosophical platform with openness being its defining “property”. We don't have to worry about the literal constructs of do we have to use GPL on web services blah blah blah. I see Open APIs, Open Architectures, etc. as a by product of “opensource platform”. Even though I agree with his conclusion of open architecture in his post/talk, his arguments to take the discussion to that result is weak and, in a way, wrong. His argument that diversity in the hardware platform as the reason for the very existence of opensource is incredibly stupid. Opensource would have existed even if we were struck with just the x86 systems. He should understand that the very basis for open source movement is the idea of knowledge sharing that came from science and open apis, open architecture, open data, open publishing, etc are just the evolution of the idea of openness which Richard Stallman borrowed from academia. Tim's claims like “Opensource has no future in SaaS” or the slightly evolved statement like “Opensource doesn't matter, it is the open APIs and open architecture that matters in the web services world” is the case of narrow point of view. Also, I have shown in many of my blog posts why opensource, as defined in a narrow domain of licensing, also matters in the web services era. Tim's insistence on this topic appears to be meaningless when seen from a broader view of open source as a platform.
I have dealt with this question many times in my blog. The bottom line is that Tim doesn't get opensource at all. He sees it from a totally narrow POV as a licensing platform and/or business model. I was planning to respond to his post based on OSCON talk but inertia kept me from doing it. Opensource is kind of a philosophical platform with openness being its defining “property”. We don't have to worry about the literal constructs of do we have to use GPL on web services blah blah blah. I see Open APIs, Open Architectures, etc. as a by product of “opensource platform”. Even though I agree with his conclusion of open architecture in his post/talk, his arguments to take the discussion to that result is weak and, in a way, wrong. His argument that diversity in the hardware platform as the reason for the very existence of opensource is incredibly stupid. Opensource would have existed even if we were struck with just the x86 systems. He should understand that the very basis for open source movement is the idea of knowledge sharing that came from science and open apis, open architecture, open data, open publishing, etc are just the evolution of the idea of openness which Richard Stallman borrowed from academia. Tim's claims like “Opensource has no future in SaaS” or the slightly evolved statement like “Opensource doesn't matter, it is the open APIs and open architecture that matters in the web services world” is the case of narrow point of view. Also, I have shown in many of my blog posts why opensource, as defined in a narrow domain of licensing, also matters in the web services era. Tim's insistence on this topic appears to be meaningless when seen from a broader view of open source as a platform.
One Trackback
[...] Is your web service open source? : business|bytes|genes|molecules [...]