Immutables VS expressive-java

Compare Immutables vs expressive-java and see what are their differences.

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 (by immutables)

expressive-java

Example of matching Scala's case class expressiveness in Java 8, Java 15 and Java 17 (by Randgalt)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
Immutables expressive-java
6 6
3,368 14
0.2% -
7.1 0.0
2 months ago almost 2 years ago
Java Java
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.

Immutables

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

expressive-java

Posts with mentions or reviews of expressive-java. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-24.
  • Deconstructing Records in Pattern Matching - Inside Java Newscast #26
    1 project | /r/java | 3 Jun 2022
  • ExpressiveJava: Re-implementing a simple Scala interpreter in JDK 8/15/17. JDK 17 code nearly identical with use of Records + Pattern Matching + Sealed Types.
    4 projects | /r/java | 24 Dec 2021
    With JDK17 and the introduction of Record types, sealed classes/interfaces, and pattern-matching the implementation can come close to ver-batim mirroring the Scala 2 one: - Scala: https://www.scala-lang.org/old/node/56.html - JDK 17 Java: https://github.com/Randgalt/expressive-java/blob/master/java-17/src/main/java/examples/SimpleInterpreter.java
  • ExpressiveJava: Rewriting simple Scala interpreter – JDK17 code nearly identical
    2 projects | news.ycombinator.com | 12 Dec 2021
    I wanted to share this little project I found. The author has been writing Java re-implementations of the same Scala interpreter over the years as newer JDK versions & features are released.

    With JDK17 and the introduction of Record types, sealed classes/interfaces, and pattern-matching the implementation can come close to ver-batim mirroring the Scala 2 one:

    https://github.com/Randgalt/expressive-java/blob/master/java...

    Unfortunately, the Scala org website is down right now, so the original code can be viewed here for the moment:

    https://web.archive.org/web/20200103022853/https://www.scala...

    (Or also in the repo: https://github.com/Randgalt/expressive-java/blob/master/scal...)

    The final feature that is needed to really seal the deal, is part of JEP 405 for destructuring + binding to values in patterns ("Deconstruction patterns"):

    https://github.com/Randgalt/expressive-java/issues/3

    https://openjdk.java.net/jeps/405

  • Why Co–Star Uses Haskell
    7 projects | news.ycombinator.com | 5 Nov 2021
    using records and ADTs (sealed types) with pattern match "switch" and the net result is an almost verbatim translation.

    https://github.com/Randgalt/expressive-java/issues/1

    There is one ugly line which JDK18 will fix, "destructuring in pattern captures/match".

What are some alternatives?

When comparing Immutables and expressive-java you can also consider the following projects:

Lombok - Very spicy additions to the Java programming language.

ihp-datasync-demo

Auto - A collection of source code generators for Java.

record-builder - Record builder generator for Java records

AspectJ

ihp - 🔥 The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness

jsonschema2pojo - Generate Java types from JSON or JSON Schema and annotate those types for data-binding with Jackson, Gson, etc

Modern Java - A Guide to Java 8 - Modern Java - A Guide to Java 8

Spring Loaded - Java agent that enables class reloading in a running JVM

java-new-features - Exploring Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23

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."

PyCall.jl - Package to call Python functions from the Julia language