Beyond the tool, Sonar is a platform to manage code quality
You already know Sonar as an enterprise tool to analyze and manage code quality of a projects portfolio. We claim, for very good reasons obviously :-), that it is easy to install and easy to use. Currently, it covers Java and PL/SQL languages.
As a tool, Sonar is more and more often compared to commercial products such as Cast Software or Metrixware for instance. Having said that, if I had the choice, I'd prefer Sonar to be compared to Kalistik (commercial product) that better fits the market evolution and needs.
All this is great, but as you might have realized already, Sonar is more than a simple out-of-the-box product : it is an open source (LGPL) platform to manage code quality, i.e. the foundations on which the community has already started to build new floors. Our aim is that Sonar becomes to quality management what TCP is today to network applications : the central component to go further and faster. That's our new dream since the command "mvn sonar:sonar" is available :-).
Here are real life examples that support the idea of Sonar being a platform:
- Let's say you have built a commercial tool (PC-Lint, Simian, SAP ABAP Code Inspector ... ) or an open source one (Testability Explorer, Crap4j, Clang Static Analyzer...) or let's say that you think a new axis of quality analysis would be more pertinent. By developing a plugin in Sonar, you kill two birds with one stone : you immediately have access to a large community of users and you benefit from the built-in functionality (TimeMachine, trends, consolidation...)
- You manage a consulting company and are building a package around quality. By building this package around Sonar, your client gets basically the tool for free and what they are going to pay for is what you have to sell : your expertise on quality
I believe that code quality management is going to become a commodity in the medium term as is continuous integration today; and I do hope that Sonar is going to play a central role in this democratization move.