Oracle Contributing GraalVM Community Edition Java Code to OpenJDK

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • Sonar - Write Clean Java Code. Always.
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SaaSHub - Software Alternatives and Reviews
  • Graal

    GraalVM: Run Programs Faster Anywhere :rocket:

    Not being facetious - but it works exactly like any other GC. There's nothing magic about writing code in Java instead of C that makes a huge difference.

    But you might find this interesting - this is where it actually obtains memory from the OS.

    https://github.com/oracle/graal/blob/44e68777b130c8ee781c72b...

    Note the @Uninterruptible annotation - that's saying that this code is safe to use within the GC itself. Notice how the file doesn't contain even a single 'new! (Outside of PosixVirtualMemoryProviderFeature, which is something else.)

  • go

    The Go programming language

  • Sonar

    Write Clean Java Code. Always.. Sonar helps you commit clean code every time. With over 600 unique rules to find Java bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • graalvm-reachability-metadata

    Repository which contains community-driven collection of GraalVM reachability metadata for open-source libraries.

    GraalVM is truly great stuff.

    GraalVM native compilation helps Java in the data center to avoid being a cost sink and to reduce start-up latency. Oracle needs Java to sell enterprise software.

    Oracle contributing to OpenJDK may be required for Amazon cooperation (since Amazon is pushing its own JDK build) and probably helps the library ecosystem work towards native compatibility.

    Native support for reflection (used in many libraries) requires "reachability metadata), maps of reflective API usage, at build time. Anyone can do it, but enterprise requires authoritative sources. Until authoritative reachability metadata covers the transitive graph of library+version dependencies in enterprise software, GraalVM builds are a PITA.

    - https://github.com/oracle/graalvm-reachability-metadata

    - latest release: https://medium.com/graalvm/graalvm-22-3-is-here-jdk-19-build...

    - graalvm "community" roadmap: https://github.com/orgs/oracle/projects/6

    (As a side note: Mark Reinhold has run the JDK team since 1997: is there any comparable example of such stellar leadership for broadly-adopted software across multiple technical and organizational eras?)

  • teavm

    Compiler of Java bytecode to JavaScript

    >> It's not like you can take a random JAR and convert it to WASM.

    Maybe you can:

    TeaVM is an ahead-of-time compiler for Java bytecode that emits JavaScript and WebAssembly that runs in a browser. Its close relative is the well-known GWT. The main difference is that TeaVM does not require source code, only compiled class files. Moreover, the source code is not required to be Java, so TeaVM successfully compiles Kotlin and Scala.

    https://teavm.org/

    I have never had an opportunity to try out TeaVM, but it seems promising.

  • cheerpj-meta

    CheerpJ - convert Java bytecode to WebAssembly and JavaScript

    - https://github.com/leaningtech/cheerpj-meta

    >> That wouldn't be of use in any existing Java project though. The only reason you'd ever want to do that is because browsers offer nothing else, even though they could and at that point why not compile to JS, at least that way your GC isn't being interpreted too. If you're not constrained by the WHATWG's decisions though it doesn't offer anything.

    It is very use case and "what is the future of your Java application" dependent. Some organizations are looking into migrating off of Java due to a variety of reasons. These kind of "Java conversion" tools help to keep legacy Java applications running until the legacy Java applications can be replaced.

  • graalpython

    A Python 3 implementation built on GraalVM

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts