As it turns out, I was thinking about this exact same problem six months ago. We deal with search APIs all the time at A9.com . We are using not only the Google API, but also a dozen other search engine APIs. In the past, every time we wanted to add another column to the A9.com website, we would hold a technical discussion with the search provider's development team and we would work out how to fetch their search results and display them programatically. Every search engine had its own proprietary interface, but the underlying model was the same in all cases:
Send a search request, receive a list of results.
To address this situation, we introduced OpenSearch, a simple search syndication format, in March of 2005. So why didn't we choose to literally "clone the Google API" as the OpenSearch format? Or for that matter, why didn't we clone the Yahoo API, or the MSN API, or any other individual API? In fact, why didn't we just write the "A9 API" and ask other people to do it our preferred way?
In a sense, humility. I knew what I knew about search APIs. And I also knew how much I didn't know. Moreover, there was much I could never know. I learned this by studying many different search APIs, and actually sitting down and using them in production. There were commonalities among the APIs, but there were also numerous divergences. Search is evolving rapidly -- what works for search today may be entirely irrelevant in two years.
So OpenSearch approaches the problem in a different way. It attempts to specify the minimal subset of information required to provide syndicated search. In doing so, it resuses and builds upon existing standards, such as RSS, (which Dave can surely appreciate), Atom, or any other reasonable underlying syndication protocol. The OpenSearch format itself includes only a handful of required elements and a simple way of declaring the interface for the search engine. In fact, it intentionally allows search engines to declare their existing API, rather than attempt to coerce them into a new API.
Everything else is left for custom extensions. Do you want to add sponsored links to OpenSearch? Custom sort orders? Per-user ids? Great -- please propose an extension. I would have personally loved to write those advanced extensions myself (that's part of the fun of doing what I do). And perhaps I someday will -- if there is a need and no one else does first. But those ideas didn't belong in the core OpenSearch specification, as search is a moving target, and there is no single, general API that can every encompass the needs of every possible application, nor one broad subset that applies to everyone.
Another way to say it is this:
OpenSearch standardizes the minimal amount of functionality necessary to support the majority of use cases.
That sentiment is very different that cloning someone else's API.
Is OpenSearch the only answer to the search API question? Of course not. But it is gaining traction. Every single day I see another search engine appear on the A9.com website via OverSearch. Search providers accomplish this because they are able to easily (and in many cases, trivially), expose their own APIs as OpenSearch. And with Microsoft building OpenSearch support right into Internet Explorer, I suspect that there will be a thousand more OpenSearch-enabled search engines by this time next year. (It makes me happy to see that a specification drafted with "humility" in mind is turning out to be so successful.)
The idea behind "clone the Google API" has merit -- and I'd love to see that momentum swing behind improving OpenSearch through extensions. And improving it not by "cloning" one individual propreitary API, but rather by building community standards for everyone to use.
What do you think?
Addendum:
After reading Dave's open letter again, I am beginning to think he is making exactly the right point. He simply worded it wrong. The exact API isn't the point at all. He just wants web search to become a univerisally accessible, zero-cost commodity. As do I. So instead of calling it "Clone the Google API", perhaps it should read "Open the Search APIs". Drop the misleading word "clone" altogether.
Dave -- any chance you want to rename your page and modify the text a little? I'll even pay for the domain name. Or am I misreading something?