Open Source and APIs

At the end of 2004, Jason Dowdell returned from a Technorati (http://www.technorati.com) user and developer group meeting in San Francisco and wrote about it in his blog. (If you’ve not heard of Technorati before, it’s a company founded by Dave Sifry, the former co-founder of LinuxCare, that’s focused on keeping up with the evolving world of weblogs and micro-publishing, and doing so in nearly real-time.) Two of the things Dowdell wrote highlight changes that I believe are important for the Open Source community.

The first tidibit is this:

[ T] here’s a new and emerging sector online that’s maturing before our very eyes: blogs. From blog search engines like Technorati and Feedster, to blog aggregators like Bloglines and OddPost. And with the rise in popularity of APIs and geeks like me who can’t get enough data, it’s a very exciting time. Technorati is capitalizing[ on] this and doing it well.

That’s right. Technorati is one of a new breed of companies that’s providing open APIs, typically via XML over HTTP (REST) or SOAP. Technorati pulls great data from blogs and shares its repository to anyone that registers an account and downloads a software development kit. Technorati’s goal, in some ways, isn’t that different than Microsoft’s: to build a large developer community around their platform. Doing so enriches the ecosystem and makes the services they offer even more valuable.

Of course, Technorai, like most other startups these days, is built on the tried and true Linux, Apache, MySQL, Perl/PHP/Python (LAMP) architecture. They’re open source all the way. But as Dowdell notes later in the same entry, this trend toward standardization has had an interesting effect on discussions at the developer meetings…

So now, instead of developers meeting to discuss a specific[ programmng language,] they’re discussing APIs and the possibilities that lie in those APIs. Do you have any idea what that means?

I suspect that many in the Linux world haven’t thought a lot about what this means. First, it means that Microsoft was right. Their. NET push was largely about moving away from an individual programming language to instead focus on next generation environments and APIs that help developers be productive. It also means that we have to think about new types of licensing.

Here’s the rest of what I wanted to pull from Dowdell’s commentary:

Do you see a pattern emerging? Blogs and APIs accomplish the same thing. The common man may be an expert with a single post or a single application. That’s what I call maturing. Yes, programming languages and their progression is critical, but they’re becoming more and more robust, allowing smaller and smaller companies to create APIs, benefit from their loyal user communities, and get ideas for features and enhancements. That’s going to be the secret sauce of data-centric startups now and possibly for good.

The first point here is interesting on its own. You don’t hear as much discussion about languages. PHP or Perl? Python or Java? Who cares?! They all work.

But anytime we hear “secret sauce” in the Open Source world, we should be thinking about two things: control and lock-in. Typically, we’ve had licenses (well over forty are listed at http://www.opensource.org) that protect our secret sauce. But what will happen as more and more applications are built using sevices and components constructed by individuals and companies that aren’t even in the same country? I think it’s time we started thinking about open source-style licenses for web service APIs.

Here’s a concrete example: as more search engines (Google, Yahoo, MSN) begin to offer rich APIs, those APIs will create another form of lock-in. One could argue that PayPal is already doing this for on-line micropayments. What if the Open Souce community began to build freely-licensed APIs and encouraged companies to adpot those, rather than building their own? Then it might become easier to switch from one service to another without the pain associated with API-based lock-in.

The Intenet works because of open protocols like TCP/IP, DNS, HTTP, and so on. Shouldn’t Internet applications be using freely licensed APIs as well?

If we don’t start thinking about this now, it’s likely that we’ll find ourselves in a situation where the “big guys” have built up a sizable portfolio of proprietary APIs for the services that the next generation of open source applications will need to access.

Jeremy Zawodny can be reached at
class="emailaddress">jzawodny@linux-mag.com.