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/...
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/...
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/...
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/...
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/...
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/...
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/...
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![Nerd-Gesicht 🤓](https://abs.twimg.com/emoji/v2/72x72/1f913.png)
8/...
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
![Nerd-Gesicht 🤓](https://abs.twimg.com/emoji/v2/72x72/1f913.png)
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/...
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![Errötetes Gesicht 😳](https://abs.twimg.com/emoji/v2/72x72/1f633.png)
We're making choices, some may not be good, but sometimes we need them to stay sane and be able to continue![Lächelndes Gesicht mit offenem Mund und Angstschweiß 😅](https://abs.twimg.com/emoji/v2/72x72/1f605.png)
10/10
Unfortunately, we don't
![Errötetes Gesicht 😳](https://abs.twimg.com/emoji/v2/72x72/1f633.png)
We're making choices, some may not be good, but sometimes we need them to stay sane and be able to continue
![Lächelndes Gesicht mit offenem Mund und Angstschweiß 😅](https://abs.twimg.com/emoji/v2/72x72/1f605.png)
10/10