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.




Sonar is a great tool and I’m pushing all our dev teams to use it.
What is still missing for me to make it perfect for my needs is the capability to compare two distinct versions. Trends are great but can be misleading.
Is there any work forecasted to answer this need?
Anyway, I want to thank you for this excellent product and for its quality (very stable).
By william el kaim on July 3, 2009 at 5:02 pm
The answer to your question depends on what you mean by version…
If you mean version as release, I would think that TimeMachine is exactly what you need. This will be soon be completed by SONAR-249 that will show evolution between now and pre-defined intervals.
If you mean comparing the trunk with a branch, then you can use the parameter -Dbranch to get both versions in Sonar.
Olivier
By Olivier Gaudin on July 6, 2009 at 11:17 pm