I cannot remember how I initially heard about Krugle, but I’m glad that I did.
For those of you who haven’t heard of this service (which may be many of you), Krugle is a service that aims to be the search engine for developers, and it appears to be well on its way. Now, before you blow this off as yet another search company just waiting to be crushed by Google or Yahoo!, let me assure you that this particular service is very different. What’s the difference, you ask? Why should developers care about another search engine?
Simple: Krugle doesn’t index web pages; it indexes source code.
Open source code, naturally. Krugle’s search engine crawls through online directories such as Sourceforge, Apache.org and many others gathering data on the countless numbers of open source projects held in those repositories. User can then search either by project content, or within the source code itself for particular tokens. As OSS continues to play an increasingly important influence in the world of software development, Krugle gives programmers a greater ability to take advantage of it. On their about page, the company explains the reasoning behind the product:
While the development world has changed, the tools that developers use haven’t kept up. Developers spend from 20-25 percent of their time looking for code and code related information: a frustrating situation for programmers, and an expensive problem for companies.
Current search engines are okay for finding web pages, but they don’t crawl or find source code, whether in open repositories or within source code control systems (SCCS). They also don’t leverage the inherent structure of code to support the types of searches programmers need.
I certainly haven’t done any surveys to verify their assertion regarding the amount of time developers spend searching through code, but I can say from my personal experience and from anecdotal evidence that their estimate is pretty close to the mark. I can’t tell you how many times I’ve been writing code and thought to myself, “You know, this thing I’m making is starting to look suspiciously like a wheel…” You can imagine my excitement when I found out about this site.
At the time I discovered it, the product was in late alpha testing and was not available to the public. So I signed up for the waiting list and anxiously waited to hear about the release. Apparently so did 40,000 other people. :)
As they are swamped with tester requests, Krugle has been slowly giving people access as beta testers in increments of a 1000 users at a time as they open the system to their waiting list. I just got my access last night.
Krugle has a really impressive interface, heavily inspired by Web 2.0 technologies, especially AJAX. Rather than using links to open multiple browser windows, or send you on a goose chase, each search you perform is placed in dynamically generated tabs, with snippets of the code underneath the link heading. You can search by content, source code, code language or all three. When you click on a search result, another tab is generated displaying the entirety of the referenced files source code, complete with syntax highlighting. On the right of your screen, you are also provided with an outline view of the file’s originating project, which allows you to see how the file you are viewing relates in its project hierarchy. You can then click any other file in that outline to view it in a separate tab. The outline pane can also show you a tree view of which repository it is coming from.
If you note the bottom of the page, you will see there are controls for creating personal Krugle bookmarks, tags and annotations to files that you can keep to yourself or share with other Krugle users. :)
Do I have any complaints? Just one tiny little thing. As this is a new technology, programmers haven’t necessarily always put their licensing information in the file that Krugle will point you to. I really wish Krugle would also index the software license at the project level and then display that prominently in the search results so that no one can miss them. While we’re at it, why not include the software licenses as a searchable field?
All in all though, this is a great service and I’m excited that it has arrived.