Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.
See all our reports

10 Kick-Ass Technologies Modern Developers Love

Introduction to the geek love fest

Have you ever heard the question: “How do you know if you’re in love?”

Well, forget that. We’d rather know “How do you know when a technology is going to change your life?”

Read more

Testing the performance of 4 Java runtime code generators: cglib, javassist, JDK proxy & Byte Buddy


In the first post on runtime code generation in Java, we looked at Java’s strong and static type system. Then we learned about different libraries for code generation and we had a closer look at Byte Buddy, a library of my own efforts.

Today we want to compare the different libraries in a benchmark. In the end, a shiny API will not be the only criteria for a best choice in code generation library. A library’s runtime performance might be an even more important factor, especially if the generated code takes up a crucial position within the running application.

We generate a microbenchmark and see if the performance of the different frameworks will allow us to draw any conclusion about which approach is better.

Read more

Why it rocks to finally understand Java JIT with JITWatch


Performance is a complicated matter, especially if you take into account that your Java program gets through multiple rewrites during the compilation process. First, your source code is translated quite straightforwardly to bytecode, which is then compiled further, sometimes multiple times, to machine code.

By leveraging your knowledge of JVM internals and how the JIT compiler works, you can optimise (to a certain extent) your code to perform better. In this post we’ll talk about a tool called JITWatch that can give you some insight about how your application is handled by the JIT.

Read more

Why it’s challenging to make estimations about code (plus a developer puzzle)

Um, could you move that red dot over a little?

In our everyday lives, we constantly try to estimate things: How long do will it take me to get to work today? How much money do I need for my monthly expenses? Do I have enough food for this big party I’m throwing? How much salt should I put into my wine? And so on…

Read more

How my new friend Byte Buddy enables annotation-driven Java runtime code generation


Last week, we looked into Java’s strong and static type system. We stipulated that such types make our code more expressive, but at the same time limit third-party frameworks in offering POJO-centric APIs.

Today, we’ll look at some limitations of different Java runtime code generation libraries, including the well-known javassist. And the reasons why a typesafe domain specific language for code generation could be really useful.

Read more

Java Parallel Streams Are Bad for Your Health!

Today, we will look at the stream API, specifically parallel streams. Allegedly, it might speed up some tasks your application executes by utilizing multiple threads from the default ForkJoinPool.
In this post we’ll look closer at what happens when you process streams in parallel and which consequences can be expected.

Read more

How to make Java more dynamic with Runtime Code Generation


The ongoing POJO-revolution is a form of code generation that disseminates in the Java landscape. Many modern Java libraries and frameworks do their magic by defining on-demand classes during a Java application’s runtime.
With the goal to design a transparent library that won’t weaken the type system of our application, we look at a sample annotation based security framework and go over the typical approaches to runtime code generation on JVM.

Read more

Beyond the commit: 6 developer tools & technologies you should know

Screenshot 2014-06-26 17.43.45

We’re developers, so we love to code right? We’re happy when our code is running…but wait a minute: how are we supposed to ship our code?

I’m pretty sure your end-users won’t agree to start your project inside your favorite IDE, so this means assembling all the bricks to make your product as professional as we can, including coding, managing resources and building the app.

Read more

If you think Java development is already slow, just wait till you add a Java Web Framework

That's right, I'm slow. What of it?

That’s right, I’m slow. What of it?

In our last couple of blog posts in this series, ‘Why HotSwap wasn’t good enough in 2001… and still isn’t today’ and ‘My class loader hates me and wants to slow me down’, we’ve explored the problem that exists in Java around reloading classes and Java resources and we’ve seen why HotSwap doesn’t go far enough. But we haven’t yet talked about what happens when we build upon Java and use frameworks, such as Spring, Hibernate, JSF, Vaadin, Grails, etc.

Read more

The complete “Java Tools and Technology Landscape for 2014″ report data in a single mind map image

Java Tools and Technology report mindmap

(Pssst, just click the image to enlarge!)

By now you may have heard that we recently released the Java Tools and Technologies Landscape for 2014, a RebelLabs report created from 2164 developer responses on 14 tool/technology categories. It’s got 25+ beautiful graphs and reaches to nearly 60 pages in length. And that’s all great, unless you only have about 5 minutes before the next Game of Thrones episode finishes streaming and you’re only looking at RebelLabs because we’re often good for a laugh…right?

Read more

1 2 3 4 5 6 30