Lombok wastes more time than it saves

Lombok looks good to some programmers however introducing it into a project creates many serious risks (refer to my previous post about Lombok: Don’t use Lombok).

One of these risks are breaking changes in Lombok. As of June 2019 the phrase “breaking change” appears 10 times in the Lombok changelog, all of them in 7 latests versions (v1.16.20 – v1.18.8). This is very alarming as it looks folks behind Lombok start to introduce more and more such changes last time.

And actually I’ve faced a result of such a breaking change. After upgrading Lombok one of REST API operations stopped to work. It was really strange, as the operation was invoked only by an internal system which didn’t change. But the system started receiving response with status 400 (bad request). It took almost a whole day to investigate what was the root cause. And it turned to be a problem with deserialization of request payload in JSON format caused by missing no-args constructor. More or less something like this issue: “Lombok 1.16.20 breaks Jackson serialization when using Builder annotation”.

If the damn simple Java class representing request payload was implemented without Lombok there would be no issue and no wasted man-day.

It wasn’t the first time in my professional career when I observed time wasted by Lombok. Now I really think this thing wastes more time than it saves.

P.S.

Please note that the word “bugfix” appears 151 times in in the Lombok changelog

About krzysztoftomaszewski

I've got M.Sc. in software engineering. I graduated in 2005 at Institute of Computer Science, Warsaw University of Technology, Faculty of Electronics and Information Technology. I'm working on computer software design and engineering continuously since 2004.
This entry was posted in Java and tagged . Bookmark the permalink.

1 Response to Lombok wastes more time than it saves

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s