expressive-java VS java-new-features

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

expressive-java

Example of matching Scala's case class expressiveness in Java 8, Java 15 and Java 17 (by Randgalt)

java-new-features

Exploring Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 (by wesleyegberto)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
expressive-java java-new-features
6 1
14 276
- -
0.0 7.5
almost 2 years ago 21 days 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.

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

java-new-features

Posts with mentions or reviews of java-new-features. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-21.
  • Java 20 / JDK 20: General Availability
    3 projects | news.ycombinator.com | 21 Mar 2023
    Here are some resources I've found helpful and have read or are on my backlog to catch up with these developments:

    - https://github.com/wesleyegberto/java-new-features (terse, includes links to JEPs, good jumping off point)

    - https://github.com/winterbe/java8-tutorial (quick tour through features of Java 8)

    - https://winterbe.com/posts/2018/09/24/java-11-tutorial/ (same for Java 11)

    Books:

    - Java 8 in Action / Modern Java in Action (Raoul-Gabriel Urma, Alan Mycroft, Mario Fusco; 2014 and 2018 respectively)

    - The Well-Grounded Java Developer (Martijn Verburg, Benjamin Evans, Jason Clark; 2022) - not specifically focused on new features but does cover them in the context of going deeper into Java and the JVM.

What are some alternatives?

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

ihp-datasync-demo

spring-kata - Code katas for learning Spring® and Spring Boot.

record-builder - Record builder generator for Java records

amaya-sun - Amaya is a fairly lightweight web framework for Java, which guarantees speed, ease of creating plugins/addons, flexibility and ease of use. Sun server implementation.

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

eclipse-collections-kata - Eclipse Collections Katas

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

aws-lambda-java-base-images - AWS Lambda Base Images for Java 17+

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

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