Recently I've seen people pressuring @testcontainers for its Lombok usage.

Here is a tiny thread of _my_ opinion on the topic.

Spoiler: it _does not_ match some of @whichrich's and @Kiview's opinions, and does not represent @testcontainers view, at least not fully.

1/...
There is a popular argument "project X have migrated away from Lombok".

First of all, "X" usually is some project that is being developed by a company, or an individual who earns money doing consulting for said project.

2/...
@testcontainers is being developed by a few enthusiasts.

None of us are being paid for doing it, at best we get lucky and our employers allow us to spend _some_ of our time on it (btw, huge thank you, @VMware!)

We've very little time to do so and need to invest carefully

3/...
Does it hurt to see @testcontainers users having issues debugging it without switching to the .class mode?
A LOT.

And we do want to improve it. But hey, some rewrite their codebases to other languages that are impossible to debug in non-binary mode without plugins, right?

4/...
BTW I created http://github.com/bsideup/jabel  so that later we can use it in @testcontainers (if we decide to!)

We spend quite some time thinking of ways of how we can make users' life easier. Because that's what @testcontainers is, after all.

5/...
Now comes the "fun" part... why we're using Lombok on a first place.

over the years @testcontainers have became quite big, while the team... Started with @whichrich who created it and later gained 2 more maintainers to help him.

(credits to @Kiview for the picture idea)

6/...
Our Lombok usage helps us to focus on what matters when we create new exciting features (most on our spare time!) and not get distracted with "field X is missing in toString/equals/hashCode"-like issues.

It also keeps the code base smaller and easier to navigate.

7/...
"But Lombok is not Java! You're loosing contributors!"

First, not sure who coined this sily statement that Lombok isn't Java (IMO Lombok is a doping for Java - forbidden but powerful).

Second, we have 810 forks + 239 contributors and counting! I think we're fine 🤓

8/...
The project I am working on as my primary job uses plain Java.
Due to JVM's limitations, it contains a lot of duplicated code, inlined methods, weird code - everything to make it super fast.
But we have time to write and learn these constructs, we _get paid for it_.

9/...
TL;DR: don't compare @testcontainers to commercial OSS projects. We wish we had time to "drop Lombok", or "support X", or "fix Y".

Unfortunately, we don't 😳

We're making choices, some may not be good, but sometimes we need them to stay sane and be able to continue 😅

10/10
You can follow @bsideup.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.