Lombok VS Error Prone

Compare Lombok vs Error Prone and see what are their differences.

Lombok

Very spicy additions to the Java programming language. (by rzwitserloot)

Error Prone

Catch common Java mistakes as compile-time errors (by google)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
Lombok Error Prone
94 16
12,534 6,696
0.6% 0.7%
9.0 9.4
9 days ago 5 days ago
Java Java
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Lombok

Posts with mentions or reviews of Lombok. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-19.
  • Consuming and Testing third party API's using Spring Webclient
    4 projects | dev.to | 19 Feb 2024
    The above class maps the json data to a java object we can work with. We use Lombok to generate constructors, getters and setters for our code and the Jackson Project to handle serialization and deserialization of json to pojo . We know the response is an array of objects representing the coffee and so above data structure is fit for this.
  • 💻 7 Open-Source DevTools That Save Time You Didn't Know to Exist ⌛🚀
    8 projects | dev.to | 6 Dec 2023
    Almost a decade ago, I started reducing my boilerplate (and saving time with Lombok. It made my life much easier, simple as that. Ever since I've been looking into finding the smoothest solutions for saving time rather than handling all of it myself.
  • Feedback on a new annotation processor api
    9 projects | /r/java | 20 May 2023
    I gotta agree with /u/rzwitserloot I don't see anything in the lombok repo that indicates they have their "own compiler". I see the "reaching into javac internals" but that's it.
  • Does any tooling exist for Java to add @NotNull to every parameter, return type, field, etc. by default?
    2 projects | /r/Kotlin | 19 Apr 2023
    i looked into that and found this: https://github.com/projectlombok/lombok/issues/2310
  • X-Pipe - A connection manager and remote file explorer. Let me know what you think!
    2 projects | /r/linux | 29 Mar 2023
    I get the main criticisms of Java, i.e. its verbosity and the requirement for a lot of boilerplate code, and understand why some people switched to Kotlin. But by using libraries such as lombok you can get rid of most of it and suddenly the incentives for switching aren't that big anymore. And in the end it's all JVM bytecode anyways.
  • John Carmack on Functional Programming in C++ (2018)
    7 projects | news.ycombinator.com | 18 Feb 2023
    While you're not wrong RE: object references, Java does have the `final` keyword that you can apply to fields, local variables, method parameters, etc. This prevents the value from being re-assigned short of going out of your way to do reflection hacks and such. You can also apply it to classes themselves and prevent them from being inherited and modified that way.

    The only real 'gotcha' there is that, while it prevents whatever it is applied to from being reassigned, if the value is a mutable object of some sort (e.g., an array, mutable collection, etc), it, of course, does not prevent you from modifying the contents of the array, etc.

    It's been a while since I've written modern Java, but I want to say JDK 14 also brought records, which I believe are basically the equivalent of having `final` and `public` on everything as well as overriding the equality and hashcode functions on everything by default so that comparisons are done based on the contents of the object rather than the reference.

    And while I am sure many people are scared of the bytecode manipulation that it performs, Lombok [1] provides a lot of little utilities that make using immutable objects totally painless - e.g., applying `@Value` to the class generates all of the necessary boilerplate at compile time, or my favorite, `@With`, which generates methods for copying an immutable object with one of the fields changed (e.g., `val newUser = olduser.withName("Nayeon");`

    [1]: <https://projectlombok.org>

  • Build a Simple CRUD App with Spring Boot and Vue.js
    11 projects | dev.to | 9 Feb 2023
    Project Lombok saves a lot of clutter and ceremony code. However, if you're using an IDE, you'll need to install a plugin for Lombok. See the project's installation docs for more information.
  • It is becoming difficult for me to be productive in Python
    8 projects | /r/programming | 6 Feb 2023
    Java's verbosity can even be reduced of you are able to use lombok
  • Should you still be using Lombok?
    3 projects | /r/java | 21 Nov 2022
    I wish they had a way to call a method after an annotation-generated constructor. There is an open issue from 2016 with 161 thumbs up.
  • public static interface AbstractResponseManagerDefaultFactory
    3 projects | /r/ProgrammerHumor | 19 Nov 2022

Error Prone

Posts with mentions or reviews of Error Prone. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-27.

What are some alternatives?

When comparing Lombok and Error Prone you can also consider the following projects:

Spotbugs - SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.

SonarQube - Continuous Inspection

JHipster - JHipster, much like Spring initializr, is a generator to create a boilerplate backend application, but also with an integrated front end implementation in React, Vue or Angular. In their own words, it "Is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures."

Immutables - Annotation processor to create immutable objects and builders. Feels like Guava's immutable collections but for regular value objects. JSON, Jackson, Gson, JAX-RS integrations included

PMD - An extensible multilanguage static code analyzer.

Checkstyle - Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.

manifold - Manifold is a Java compiler plugin, its features include Metaprogramming, Properties, Extension Methods, Operator Overloading, Templates, a Preprocessor, and more.

FindBugs - The new home of the FindBugs project

Auto - A collection of source code generators for Java.

record-builder - Record builder generator for Java records

AspectJ

JavaParser - Java 1-17 Parser and Abstract Syntax Tree for Java with advanced analysis functionalities.