JRebel is a build automation tool developed by Estonian company ZeroTurnaround, acquired by Rogue Wave Software in 2017, and then acquired (and now supported by) Perforce since that company's 2019 acquisition of Rogue Wave. The vendor says users of JRebel saves Java teams a month of coding time per year on average.
N/A
SonarQube
Score 8.1 out of 10
N/A
SonarQube is an automated code review solution, serving as the verification layer for code quality and SDLC security. SonarQube is used to ensure that code is secure, reliable, and maintainable. It is available through SaaS or self-managed deployment.
I recommend JRebel for Java developers, it will remove the time needed for redeployment, it will increase the focus on the task at hand (without being distracted by the redeployment) and will make them happier. I recommend JRebel for Java Development Managers, they should purchase this for their teams - it will increase productivity, decrease the product's time to market, and it will save money for the company. The ROI can be calculated upfront and presented to higher level management for approving this, if needed.
SonarQube is excellent if you start using it at the beginning when developing a new system, in this situation you will be able to fix things before they become spread and expensive to correct. It’s a bit less suitable to use on existing code with bad design as it’s usually too expensive to fix everything and only allows you to ensure the situation doesn’t get worse.
Deploys all layout changes consistently (when Instant Run was initially available, you couldn't tell if the change you made to a layout was actually being tested or not).
Doesn't require a full build as often as Instant Run when changing code.
Works with compile time annotation libraries like Realm, etc.
Detecting bugs and vulnerabilities: SonarQube can identify a wide range of bugs and vulnerabilities in code, such as null pointer exceptions, SQL injection, and cross-site scripting (XSS) attacks. It uses static analysis to analyze the code and identify potential issues, and it can also integrate with dynamic analysis tools to provide even more detailed analysis.
Measuring code quality: SonarQube can measure a wide range of code quality metrics, such as cyclomatic complexity, duplicated code, and code coverage. This can help teams understand the quality of their code and identify areas that need improvement.
Providing actionable insights: SonarQube provides detailed information about issues in the code, including the file and line number where the issue occurs and the severity of the issue. This makes it easy for developers to understand and address issues in the code.
Integrating with other tools: SonarQube can be integrated with a wide range of development tools and programming languages, such as Git, Maven, and Java. This allows teams to use SonarQube in their existing development workflow and take advantage of its powerful code analysis capabilities.
Managing technical debt: SonarQube provides metrics and insights on the technical debt on the codebase, enabling teams to better prioritize issues to improve the quality of the code.
Compliance with coding standards: SonarQube can check the code against industry standards like OWASP, CWE and more, making sure the code is compliant with security and coding standards.
Importing a new custom quality profile on SonarQube is a bit tricky, it can be made easier
Every second time when we want to rerun the server, we have to restart the whole system, otherwise, the server stops and closes automatically
When we generate a new report a second time and try to access the report, it shows details of the old report only and takes a lot of time to get updated with the details of the new and fresh report generated
The performance of JRebel is great. It is enabling the Java team to do hot re-deployments and it has to be transparent and fast for the user, otherwise the whole purpose of reducing wasted time with re-deployments doesn't make sense. Also the User Interface for License Server management and analytics loads fast and the navigation through pages is quick.
We we easily able to integrate the SonarQube steps into our TFS process via the Microsoft Marektplace, we didn't have the need to call SonarQube support. We've used their online documentation and community forum if we ran into any issues.
Hot code swapping doesn't have many players...it's mainly JRebel. We use JRebel a lot in our backend code development where it minimizes our development cycle (20min down to 30sec). For Android, the competitor is Android Studio's Instant Run which works fairly well now. For smaller apps, Instant Run is faster deploying but needs more full builds. With JRebel, you hardly ever need to do a full build.
SonarQube is an open-source. It's a scalable product. The costs for this application, for the kind of job it does, are pretty descent. Pipeline scan is more secured in SonarQube. Its a very good tool and its support multiple languages. Its main core competency is of static code analysis and that is why SonarQube exists and it does it exceedingly well. The quality of scan on code convention, best practices, coding standards, unit test coverage etc makes them one of the best competent tool in the market
Positive ROI from the standpoint of flagging several issues that would have otherwise likely been unaddressed and caused more time to be spent closer to launch
Slightly positive ROI from time-saving perspective (it's an automated check which is nice, but depending on the issues it finds, can take developers time to investigate and resolve)