expressive-java
ihp-datasync-demo
Our great sponsors
expressive-java | ihp-datasync-demo | |
---|---|---|
6 | 1 | |
14 | 1 | |
- | - | |
0.0 | 0.0 | |
almost 2 years ago | over 2 years ago | |
Java | Haskell | |
- | - |
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
- Deconstructing Records in Pattern Matching - Inside Java Newscast #26
-
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.
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
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
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".
ihp-datasync-demo
-
Why Co–Star Uses Haskell
On the backend we use Postgres Row-level-security Policies to make sure that a user can only access his own data.
Here's a demo react component that uses the new JS APIs: https://github.com/digitallyinduced/ihp-datasync-demo/blob/m...
Docs are still in progress, but here's a draft https://github.com/digitallyinduced/ihp/commit/39baa4aa23cc6... :)
What are some alternatives?
record-builder - Record builder generator for Java records
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
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
PyCall.jl - Package to call Python functions from the Julia language
Modern Java - A Guide to Java 8 - Modern Java - A Guide to Java 8
java-new-features - Exploring Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23