What does HackerNews think of graal?

GraalVM: Run Programs Faster Anywhere :rocket:

Language: Java

#8 in C
#6 in Java
#27 in JavaScript
#31 in Python
#5 in Ruby
> ship as a single binary (unlike Java).

Possible with GraalVM. Has been possible if you were willing to pay long before that. GraalVM produces statically linked binaries with only one external dependency — zlib, which is preinstalled pretty much everywhere. Startup time is measured in milliseconds.

I recently built a mid-size REST backend with quarkus — it ships as a single binary with size comparable to what I'd expect to see if it was written in Go, and starts in about 200 ms (from executing the command to when it's ready to serve its first request).

Having written code in both, I hope GraalVM buries Go in the long term, but in our hype-driven culture it's unlikely.

https://quarkus.io/guides/building-native-image#configuring-...

https://github.com/oracle/graal

> A reasonably good and ergonomic concurrency approach (like JS, unlike Java)

This is also very close to being solved.

Clojure doesn't need JVM. You can run it with GraalVM either directly [1] or via Babashka [2]. Both are great options for get into Clojure since there's almost no startup time like JVM and you don't have to be burdened with learning and heaviness of JVM stack.

[1] https://github.com/oracle/graal

[2] https://github.com/babashka/babashka

If you have been filtering out clojure due to dislike of JVM, give it a try with GraalVM either directly [1] or via Babashka [2]. GraalVM will in most cases not only run your code much faster than JVM, but cuts startup time from seconds down to msecs [3][4], not to mention compiling to native with c api or LLVM. With Babashka, it packages a subset of GraalVM so you don't have to install that but is more limited. So if you just want to play around with clojure to see if you like it, Babashka is a great way to start.

[1] https://github.com/oracle/graal

[2] https://github.com/babashka/babashka

[3] https://arnoldgalovics.com/java-cold-start-aws-lambda-graalv... (large proj - dynamoDB)

[4] https://dev.to/wololock/groovy-script-startup-time-from-2-1s... (small proj)

Yes, and it's available on GitHub now!

Here's the heap implementation, for example: https://github.com/openjdk/jdk/blob/master/src/hotspot/share...

The GraalVM is a Java implementation of the Java compiler and VM and it's also on GitHub: https://github.com/oracle/graal

If people want a concrete example, here's a 6 GB repo that's 90% Java, 5% C, then some other languages.

https://github.com/oracle/graal

It's not even a mono-repo - this is just part of the project.

Maybe someone's got some tools that let them dig around in the history and find large things or explain why it's so large? I don't think they've been checking ISOs in.

Check https://github.com/oracle/graal. From readme:

> GraalVM is a universal virtual machine for running applications written in JavaScript, Python, Ruby, R, JVM-based languages like Java, Scala, Clojure, Kotlin, and LLVM-based languages such as C and C++.

and yes, it can do interop between those languages

https://github.com/oracle/graal

The evolution from MaximeVM, which is now increasingly being integrated into OpenJDK as part of project Metropolis.

As for the CLR, it supports VB.NET, C++ and C# since day one, including a Common Language Specification and Common Type System.

Then alongside its history got COBOL, Eiffel, F#, Ruby, Python, Nermele, Clojure,....

IBM and UNISYS mainframes language environments support a mix of COBOL, C, C++, Fortran, RPG, NEWP, also with a common type system for interoperability.

While UNISYS documents are a bit hard to come by, IBM ones are available as RedBooks.

Sulong is GraalVM's LLVM bitcode interpreter, so it's mentioned under LLVM in the release notes. Its code base has been merged into GraalVM's main repository at https://github.com/oracle/graal.
also worth noting is that Oracle has completely open sourced the Community Edition and actively developing it https://github.com/oracle/graal (I work at Oracle)
GraalVM is Open Source and licensed under the same license as OpenJDK: https://github.com/oracle/graal

It is true that GraalVM has a proprietary version too, that AFAIK has extra features, but the open source version is impressive on its own.

What developers really need to do is to stop building on platforms based on how much they like a company. Stop treating companies like sports teams. Your feelings for a company are completely irrelevant because its culture can always change, or it can be sold to the highest bidder.

Things that matter much more:

1. Is it Open Source? This is important for having control. E.g. no matter what Oracle does next, there is now a community dedicated to maintaining and improving OpenJDK and in fact OpenJDK has cool features that Oracle’s Java does not, like a cool new low latency GC contributed by Red Hat.

2. Does it have an ecosystem around it?

GraalVM is new, but it piggybacks on Java’s ecosystem and Java is huge. In fact that’s also why Google piggybacked on Java too.

Speaking of which, I’m not defending Oracle’s lawsuit, I think they did it because they are greedy bastards, however the elephant in the room is that Google fragmented the Java ecosystem.

It is 2019 and Android’s SDK still does not support Java 8’s bytecode.

So how is Google any more special than Microsoft and what they did with Java (J++) back in the day? I don’t see a difference. And now the Java ecosystem can’t move on to Java 8 due to Android.

We have a huge double standard. Back in the day when Sun sued Microsoft people cheered for Sun.

GraalVM is itself an open-source project that is licensed under the exact same license as OpenJDK [1]. Feel free to download it and build it yourself to be extra sure [2]. All the FUD around this stuff and Oracle is a bit comical. It's all... right there.

[1] https://www.graalvm.org/docs/faq/

[2] https://github.com/oracle/graal

Graal is open-source and most projects under its umbrella are [GPL2-with-classpath-exception licensed](https://github.com/oracle/graal/#license). The fact that they also have an Enterprise Edition does not make this a non-community project.