7 Java tools you should know
Alex Zhitnitsky talks us through the main features of seven helpful tools that every Java developer should know.
This post was originally published on the Takipi blog – Java and Scala exception analysis and performance monitoring.
Get ready to lock and load through this quick overview of some of the newest most innovative, tools around. In case you’ve missed it, RebelLabs recently released the results of a global survey of the Java tools and technologies landscape. Alongside the big names and established tools, the market is bubbling with fresh tools and frameworks that not so many people have heard of (yet).
In this post we decided to gather a short list of such tools, most of them launched just recently. Some are Java-specific and some support other languages as well, but they’re all great for Java projects and share a vision of simplicity. Let’s roll.
1. JClarity – Performance Monitoring
Launched last September, JClarity is now offering two products around Java performance: Illuminate and Censum. Illuminate is a performance monitoring tool, while Censum is an application focused on garbage collection logs analysis. More than just collecting data or visualizing it, both tools provide actionable insights to solve the issues they detect.
“What we want to do is to move the problem from data collection to data analysis and insight” – JClarity Co-Founder Ben Evans.
- Bottleneck detection (Disk I/O, Garbage Collection, Deadlocks, and more).
- Action plan – Recommendations to solve the problem, such as “The application needs to increase the number of active threads”.
- Explanation – Defining the problem in general and the common causes for it, for example “A high percentage of time spent paused in GC may mean that the heap has been under-sized”.
What’s unique about it: offers the next step after monitoring and identifying your performance problems – actionable insights to solve issues on the spot.
Behind the curtain: London based JClarity was founded by Martijn Verburg, Kirk Pepperdin and Ben Evans, all are well known Java performance veterans. Read more about how JClarity came to be, right here.
2. Bintray – Social Platform for Binaries
Java developers are being kept in the dark in a way when importing libraries from “anonymous” repositories. Bintray adds a face to the code and actually, serves as a social platform for developers to share open-source packages (Did someone say GitHub for binaries? Login with GitHub for the full inception effect to kick in). It has over 85,000 packages in 18,000 repositories, while showcasing popular repositories and new releases.
- Upload your binaries for the world to see, get feedback and interact with other developers.
- Download libraries with Gradle / Maven / Yum / Apt, or just directly.
- Manage release notes and documentation.
- REST API – Search / Retrieve binaries and automate distribution.
What’s unique about it: Bintray’s basic functionality is similar to Maven Central. However, it adds a social layer and offers an easy process to upload files to a CDN.
Behind the curtain: Bintray is developed by JFrog, based in Israel and California. It was made public April last year and won Duke’s choice award at the last JavaOne conference. JFrog is also the company behind Artifactory. Which is also hosted on Bintray. Of course.
3. Librato – Monitoring & Visualization Cloud Services
A hosted service for monitoring and managing cloud applications, Librato can create custom dashboards in seconds without a need to set up or deploy any software. Oh, and it just looks and feels so buttery smooth compared to other dashboards.
“Data is only as valuable as the actionable insights you can surface from it”, Says Joe Ruscio, Co-Founder & CTO.
- Data collection: Integration with Heroku, AWS, tens of collection agents (Even Nest) and pure language bindings with Java, Clojure and others.
- Custom reports: Metrics & alerts through email, HipChat, Campfire, and just HTTP POST requests to integrate with anything you can think of.
- Data visualization: Beautiful graphs with annotations, correlations, sharing and embedding options.
- Alerts: Automatic notifications when metrics cross certain thresholds.
What’s unique about it: It would be hard to find anything that Librato doesn’t know how to talk with and help make sense of its data.
Behind the curtain: Based in San Francisco, Librato was founded by Fred van den Bosch, Joe Ruscio, Mike Heffner and Dan Stodin.
4. Takipi – Error tracking and analysis
Takipi was built with a simple objective in mind: Telling developers exactly when and why production code breaks. Whenever a new exception is thrown or a log error occurs – Takipi captures it and shows you the variable state which caused it, across methods and machines. Takipi will overlay this over the actual code which executed at the moment of error – so you can analyze the exception as if you were there when it happened.
- Detect – Caught/uncaught exceptions, Http and logged errors.
- Prioritize – How often errors happen across your cluster, if they involve new or modified code, and whether that rate is increasing.
- Analyze – See the actual code and variable state, even across different machines and applications.
What’s unique about it: God mode in production code. Shows you the exact code and variable state at the moment of error, as if you were there when it happened.
Behind the curtain: Psst, it’s us. Takipi was founded in 2012 and based in San Francisco and Tel Aviv. Each exception type and error has a unique monster that represents it.
5. Elasticsearch – Search & Analytics platform
Elasticsearch has been around for a while, but Elasticsearch 1.0.0 was released just recently in February. It’s an open-source project built on top of Apache Lucene and hosted on GitHub with over 200 contributors. You can check out the code right here. The main promise Elasticsearch provides is an easy to use scalable distributed RESTful search.
- Near real-time document store where each field is indexed and searchable.
- Distributed search with an architecture built to scale from small to large applications.
- A RESTful and a native Java API among others. It also has a library for Hadoop.
- Works out of the box and doesn’t necessarily require deep understanding of search, it can also be schema free so you can start real fast.
What’s unique about it: Like it says on the tin, it’s elastic. Built with flexibility and ease of use in mind, provides an easy place to start and to scale without compromising on hardcore features and customization options.
Behind the curtain: Elasticsearch was founded by Shay Banon back in 2010 and just recently raised $70M in funding. Before founding it Banon ran the Compass open-source project and is now a renowned search expert. His motivation to get into search? An application he built for his wife to store and retrieve her favorite recipes.
6. Spark – Micro Web Framework
Back to pure Java, Spark is a Sinatra inspired micro web framework for quickly creating web applications. It was rewritten earlier this year to support Java 8 and lambdas, Spark is open-source and its code is available on GitHub right here. It’s being developed by Per Wendel and a small number of contributors over the last few years in a mission to support rapid creation of web applications with minimal effort.
- Quick and simple setup for your first deployment.
- Intuitive route matcher.
- A template engine to create reusable components that supports Freemarker, Apache Velocity and Mustache.
- Standalone Spark runs on Jetty but can also run on Tomcat.
What’s unique about it: A picture is worth a 1000 words, but a screenshot would be more straightforward. Check it out.
Behind the curtain: Per Wendel is the Sweden based founder of Spark, working on Spark with over 20 contributors. Check out the discussion group and learn more about Spark, how you can contribute and solve issues.
7. Plumbr – Memory Leak Detection
Going deeper in the JVM, the Garbage Collector scans for objects that are no longer being used. However, sometimes developers will still hold references to objects in memory they no longer use. This is where memory leaks happen, and where Plumbr comes in. It detects and reports if the application has memory leakage issues and provides actionable information to fix it.
- Live memory leak detection and alerts.
- A report with time, size, velocity (MB/h) and significance of the leak.
- The location of the memory leak in your code.
What’s unique about it: Quick and to the point, gathering insights from your code and telling you what you need to fix.
Behind the curtain: Based in Estonia, Plumbr was founded by Priit Potter, Ivo Mägi, Nikita Salnikov-Tarnovski and Vladimir Šor. Joining forces in a seasoned Java team, mostly known as “the guys who help projects that are stuck”. Makes sense.
Did we miss any other cool tools? What’s the best new tool you use? Please let us know below.
Java/Scala developer? Takipi detects all exceptions and errors in your code and tells you why they happen. Installs in just 1 minute: Try Takipi.