I’ve been interested in Krugle ever since I heard Steve Larsen speak at Defrag. They’re a specialized search company, focused on returning results that are useful for software developers, including code and technical documentation. What caught my interest was that they had a product that solved a painful problem I know well from my own career; where’s our damn code for X? Large companies accumulate a lot of source code over the years. The holy grail of software development has always been reuse, but with the standard enterprise systems it can be more work to find old code that solves a problem than to rewrite it from scratch.
Their main public face is the open-source search site at krugle.org. Here you can run a search on both source code and code-related public web pages. I did a quick test, looking for some reasonably tricky terms from image processing, erode and dilate. Here’s what Krugle finds, and for comparison here’s the same query on Google’s code search. Krugle’s results are better in several ways. First, they seem to understand something about the code structure, so they’ve focused on source that has the keywords in the function name and shows definition of the function. Most of Google’s hits are constants or variable names, which are a lot less likely to be useful. Krugle also shows more relevant results for the documentation, under the tech pages tab. A general Google web search for the same terms throws up a lot more pages that aren’t useful to developers. Finally, Krugle knows about projects, so you can easily find out more about the context of a piece of source code, rather than just viewing it as an isolated file as you do with Google’s code search.
Krugle have also teamed up with some big names like IBM and Sourceforge, to offer specialized search for the large public repositories of code that they control. Unfortunately, I wasn’t able to find the Krugle interface directly through Sourceforge’s site, and their default code search engine seems fairly poor, producing only two irrelevant results for erode/dilate. Using the Krugle Sourceforge interface produces a lot more, it seems like a shame that Sourceforge don’t replace theirs with Krugle.
So, they have a very strong solution for searching public source code. Where it gets interesting is that the same problem exists within organizations. Their solution is a network appliance server that you install inside your intranet, tell it where your source repositories are, and it provides a similar search interface to your proprietary code. I find the appliance approach very interesting, Inboxer take a similar approach for their email search product, and of course there’s the Google search appliance.
It seems like a lot of developers must be searching for a solution for the code-finding problem, because it is so painful. It also seems like an easy sell to management, since they’ll understand the benefits of reusing code rather than rewriting it. I wonder how the typical sale is made though? I’d imagine it would have to be an engineering initiative, and typically engineering doesn’t have a discretionary budget for items like this. They do seem to have a strong presence at technical conferences like AjaxWorld, which must be good for marketing to the development folks at software businesses.
Overall, it seems like a great tool. I think there’s a lot to learn from their model for anyone who’s trying to turn specialized search software into a product that businesses will buy.