Live data from Hacker News

GraalVM

graalvm.org

81–90 of 108 posts

Re: GraalVM

#81
post #68
post #62

Earlier quoted context omitted.

Do you also have the same issue with LLVM, given the goodies that Apple, Sony, ARM and many others don't upstream?

That's the most wonderful thing of GPL'ed software - enforcing the no-selfishness rule.

Which is why Linux kernel and GCC are the surviving pieces, with almost everything else back to the PD/Shareware days.

Even Linux Foundation's Zephyr is under Apache license.

Re: GraalVM

#82
post #9

Earlier quoted context omitted.

You can compile your Java code into an executable which doesn't require Java to be present. Advantages would be reduced memory footprint and quicker startup times, which could be ideal for microservices started on demand instead of constantly running. That being said, the people at Spring don't recommend it for production use yet. Here's what they have to say about it: "While GraalVM is now GA, GraalVM native image f…

As a counter-point, Quarkus [1] has mature support for building Java apps as native binaries via GraalVM, with a large number of extensions that enable 3rd party libraries to be used in native binaries, and people use this successfully in production. Issues from the past, like lack of debug symbol support with GraalVM CE, have also been resolved by now. Shameless plug for one real-world usage: the search feature of m…

While what Quarkus promises sounds delightful, the actual dev experience is still not something I'd recommend. The amount of libraries one can use is still very limited. The compiler errors when one chooses to step outside of the approved list of supported libraries, are very cryptic (or non-existent). In my case, I tried to use Apache Freemarker for templating. I could've tried Quarkus' own templating library, but it didn't exist at that time. What was worse, I had to shut down nearly every app on my 16 Gigabyte, 6-core machine to compile the image! If I didn't do that, compilation would fail with no useful info. The Quarkus team does a wonderful job of demoing a Hello World example. I was just unable to achieve the same success. I love what they're trying to build, so I'll check back with regularity. Our one Quarkus app is using OpenJDK 1.8 for the time being.

Re: GraalVM

#83
post #68
post #62

Earlier quoted context omitted.

Do you also have the same issue with LLVM, given the goodies that Apple, Sony, ARM and many others don't upstream?

That's the most wonderful thing of GPL'ed software - enforcing the no-selfishness rule.

GPL is nice, but it seems it's a constant uphill battle - maybe after the GPLed thing becomes the standard things become slightly easier (economically upstreaming becomes cheaper than maintaining a fork).

Re: GraalVM

#84

Intuitively how does any Java program compile into an executable?

Instead of compiling Java to Java bytecode which is then executed by the JVM (e.g. Hotspot), you compile it to native machine code/assembly + runtime (Substrate VM). However you loose the cross-platform ability and Java reflections won't work out of the box.

What's the GC performance of Substrate VM's GC? Is it still the 1G young 3G old thing?

What's the long term vision? In theory can this thing become "better" than HotSpot, JIT and G1/Z/Shenandoah?

Re: GraalVM

#85
post #68
post #62

Earlier quoted context omitted.

Do you also have the same issue with LLVM, given the goodies that Apple, Sony, ARM and many others don't upstream?

That's the most wonderful thing of GPL'ed software - enforcing the no-selfishness rule.

Java is GPL2 and LLVM is a BSD type license. So that appears to be backwards.

Re: GraalVM

#86
post #57

Earlier quoted context omitted.

Also, if you're like me, you simply don't want to deal with the law firm called Oracle.

That's the worrying thing to me. Oracle's business model seems to be to keep prices reasonable just as long as it takes to build up a customer base, and then start squeezing. I'm fascinated by GraalVM, but I'm hesitant to take even one step down a path that leads to Oracle using my actual software implementation platform to shake me down for money. I'd actually rather take the development effort and performance hit o…

> weaponized version of the Java platform

That was really sad to read. Oracle is really hurting the java language and ecosystem.

Re: GraalVM

#87
post #86

Earlier quoted context omitted.

That's the worrying thing to me. Oracle's business model seems to be to keep prices reasonable just as long as it takes to build up a customer base, and then start squeezing. I'm fascinated by GraalVM, but I'm hesitant to take even one step down a path that leads to Oracle using my actual software implementation platform to shake me down for money. I'd actually rather take the development effort and performance hit o…

> weaponized version of the Java platform That was really sad to read. Oracle is really hurting the java language and ecosystem.

Realistically, this isn't super new. After what happened to Dalvik 10 years back, and later to Adopt, one could argue that the Java Community Process itself, and therefore the very soul of Java, has been weaponized.

Re: GraalVM

#88
post #56

GraalVM consists of a couple of things. 1. A modern JIT compiler written in Java that takes bytecode and transforms it into machine code. There is a plan that it might someday replace HotSpot [1]. However, we are probably a couple of years away from this. 2. A native image compiler [2] that uses ahead-of-time compilation technology to produce executable binaries of class files. This means startup times and memory usa…

[3] is made possible thanks to a variation of the idea called "Futamura projections": https://en.wikipedia.org/wiki/Partial_evaluation#Futamura_pr...

Made a short explainer video on how they're using Futamura's ideas of "partial evaluation" to essentially generate an optimizing compiler from just an interpreter.

https://youtu.be/vNwA_U4XvfI

Re: GraalVM

#89

Earlier quoted context omitted.

As a counter-point, Quarkus [1] has mature support for building Java apps as native binaries via GraalVM, with a large number of extensions that enable 3rd party libraries to be used in native binaries, and people use this successfully in production. Issues from the past, like lack of debug symbol support with GraalVM CE, have also been resolved by now. Shameless plug for one real-world usage: the search feature of m…

While what Quarkus promises sounds delightful, the actual dev experience is still not something I'd recommend. The amount of libraries one can use is still very limited. The compiler errors when one chooses to step outside of the approved list of supported libraries, are very cryptic (or non-existent). In my case, I tried to use Apache Freemarker for templating. I could've tried Quarkus' own templating library, but i…

Agreed that the experience when trying to native-enable existing libs isn't the greatest. Altough those things are rather reported by the GraalVM compiler rather than Quarkus. The working model and assumption is that somebody goes through this once and then either contributes changes to the library in question back upstream or provides a Quarkus extension for that library, sparing others from that hassle.

That RAM consumption sounds definitely over the top; if you still have the context, logging an issue would be very welcomed. That said, there's many libraries enabled by Quarkus (see quarkus.io/guides/), so every essential functionality should be covered by now. Still a question of course whether your specific library in a given space (like FreeMarker vs. Quarkus Qute) already is supported. In any case, thanks for checking back in regularly, things might look better next time already, as the framework evolves rapidly.

Re: GraalVM

#90
post #57

Earlier quoted context omitted.

Also, if you're like me, you simply don't want to deal with the law firm called Oracle.

That's the worrying thing to me. Oracle's business model seems to be to keep prices reasonable just as long as it takes to build up a customer base, and then start squeezing. I'm fascinated by GraalVM, but I'm hesitant to take even one step down a path that leads to Oracle using my actual software implementation platform to shake me down for money. I'd actually rather take the development effort and performance hit o…

Most of GraalVM is open source.

If anything, their biggest commercial error may be open sourcing too much. GraalVM EE is quite expensive for what it adds over the open source versions.

Post reply on HN