The latest expert opinions, articles, and guides for the Java professional.

RebelLabs Developer Productivity Report 2017 raw data

RebelLabs Developer Productivity reports are analytical reports based on online surveys of Java developers. Over the last 6 years, we reported on the ecosystem landscape, performance tooling choice, software development quality and predictability, and so on. One of our main reasons for writing the reports is to understand how the Java developer community evolves, which tools they use and the current trends.

This year’s report focuses on why Java developers use the tools they use and how satisfied they are with their choices in tools, architecture, and so on.

The data for this report comes from the results of a public RebelLabs survey that we ran in May-July 2017 which received about 2060 responses.

We analysed the data and all the findings are publicly available in the main report blog post.

However, this year we decided to share the data we gathered as well as the analysis. This way you can always check the claims, do additional research, or just play with the data to generate pretty graphs about your favorite tools.

Read more

ZeroTurnaround launches XRebel Hub


Read more

Performance management is broken. We have a fix!

Oh em gee! Traditional performance management is broken, who broke it?!? Well in all honesty, it has always been broken because, most companies don’t start thinking about performance monitoring until the application is in production. In fact, we’ve found that over 75%[1] of the application performance issues make it to production where customers experience them. Just imagine if we did this with our QA issues.

Read more

9 Java Champions on Java 9: Part 2

Understanding AutoValue and its extensions

Some time ago, I started working on an AutoValue extension for reading and writing Java properties files. Here’s a rough plan of what I thought it should do:

  • have a simple and reliable implementation;
  • be similar or reuse the existing AutoValue extensions as much as possible;
  • easily replace the custom code in our projects for reading/writing the .properties files;
  • support obfuscated builds out of the box.

I didn’t get it to the stage where the code is ready to become public yet, although, we’re open to that idea, I learned quite a bit about AutoValue, how its extensions work and in this post, I want to share that knowledge with you.

In this post, we’ll look at what AutoValue is and how it can help you keep your code cleaner and less verbose, at AutoValue extension mechanism and AutoValue Moshi extension works.

Read more

9 Java Champions on Java 9: Part 1

With the Java 9 version on the brink of release, we thought we’d ask 9 Java Champions for their opinions about the Java 9 release. In this blog post we’ll feature responses from four Java Champions on what they like and dislike about Java 9.

Read more

Switching Java versions on the command line

In this post, I want to share my setup to switch the active JDK version on the command line. Note, I’m use a Mac, and the scripts in this post will work on a Mac and, perhaps, on some Linux machines. If you have a good recipe on how you switch Java versions on the command line on Windows, please share with the community in the comments.

Let’s get to it then. When you download a new JDK release it comes as an installer, so you double click it, click the “Next” button necessary amount of times, and it puts the files somewhere on the filesystem. Or you do it manually.

Read more

RxJava cheat sheet, with a pinch of Android

Today we’re talking about RxJava, the library that implements the ideas of the reactive extensions, which is a library for composing asynchronous and event-based programs using observable sequences.

Download and print out this cheat sheet so you can use it whenever you need. To get fuller explanations and more detailed content in the cheat sheet, continue reading this blog post!


Read more

New ZTLive Webinar: What’s New for Devs in JDK 9

Well it’s really happening. JDK 9 that is — currently due for general availability on September 21st 2017. As we get closer to the release date, talk around many offices has been intensifying around what we as developers can actually expect from JDK 9.

This makes Java 9 the perfect topic for our next ZTLive webinar. We are thrilled to have two amazing speakers (and amazing human beings) to present on some great Java 9 topics: Venkat Subramaniam and Simon Ritter.

Read more

TestContainers: making Java integration tests easy

In this post I want to share a word about an awesome library for integration testing in Java — TestContainers. We’ll provide a little background on why integration testing is so important at ZeroTurnaround and our requirements for integration tests. You will learn how TestContainers helps us at ZeroTurnaround with our own integration testing. You’ll also find a fully-functional example of an integrated test for a Java agent.

Read more