It was interesting to witness the buzz generated by the launch of the Google Code Search engine earlier this week, and with it the new awareness of the role that harvesting software from open source code repositories can play in mainstream software development. We at Merotronics have been convinced of the potential of open source code search for a long time, and since July have offered our own online search engine – merobase.com - that can be used to find reusable software assets.
Merobase populates its indices just like Google Code Search and other similar search engines like krugle.com and koders.com – namely by crawling publicly hosted code repositories such as CVS archives. However, in contrast with Google Code Search and other search engines, merobase follows a more component-oriented approach to software retrieval. This means that instead of simply searching for strings in the text of a code module, as if it were a web page or word document, merobase allows users to search for reusable components as full abstractions. This allows users to harvest software assets in terms of their interfaces rather than in terms of the way they are implemented. Of courses, searches can still be constrained to particular implementations, but the retrieval of software assets is driven by their level of support for a service rather than by the contents of their source code.
Take for example a developer who has identified the need for a ShoppingCart component in her E-commerce application. Once she has nailed down the interface to the component in terms of operation signatures she can use merobase to harvest components that match the desired profile. This not only increases the likelihood of finding a suitable component, it also opens up the search to multiple implementation languages (e.g. Java, C#, C++ etc.) and non-code assets such as Web Services.
Merobase already has the largest online index of Java and C# classes, and is the only search engine to support searches for web services. Over the next few months we plan to role out numerous new innovations from our research pipeline aimed at boosting this component-oriented approach to software search. This includes advanced ranking algorithms which sort search results according to software metrics rather than textual relevance measures, plugins integrating support for component harvesting within mainstream development and modeling environments, and semantic search mechanisms which allow components to be retrieved based on what they actually do rather merely on the syntactic form of their interfaces. Over the next few weeks I plan to elaborate on these technologies in more detail, but in the meantime, check out merobase and let us know what you think!
Until next time!
Colin Atkinson
Chief Scientist
Merotronics