1. 22
  1. 7

    GraalVM seems really cool, I wish it wasn’t open core, otherwise I would invest more time in finding use cases for it.

    1. 3

      It is GPL, how free do you want it to be? Or do you want it to be closed source?

      GraalVM is not open core by whatever definition you have of it. It is absolutely useful and usable in the community edition.

      What I think you are really doing is complaining that you don’t get the advanced JIT and GC that is in the enterprise edition.

      1. 2

        I think the fear is comparable to the android discussion: How usable is the core, GPL version compared to the enterprise version in the future. How many of possibly required features for real use cases are going to be created enterprise only in the future. People got burned by the JVM license changes already.

        Now you might say that this was a valid move for a company trying to make money, or expected for a company (might even say oracle) product. But that’s exactly why people might fear using graalvm. Same thing, same “open but not open” thing, same possible move. I think its great to have this technology as GPL available, but I won’t blame people for smelling the same problems. Because I’m not running my business based on that technology - when the oracle-JVM went unavailable to servers, I just moved my private server software to the adoptium project (also RIIR’ed things), ignoring performance warnings.

        1. 7

          All of these alt-jvms are still based off the same Oracle GPLd JVM, any issue that is valid for GraalVM would be valid for them as well.

          People got burned by the JVM license changes already. … when the oracle-JVM went unavailable to servers …

          Because they were lazy and cheap.

          The fact that the Oracle JVM is GPL and that the GraalVM is GPL is an amazing gift. But people just complain that they can’t get enough free stuff under the license of their choosing. There seem to be a cornucopia of libre JVMs based off the Oracle JVM. This is a good thing.

          Not using GraalVM because of unfounded fear (unfounded because one can build the entire thing themselves using only libre software) or because the premium add-ons are not libre or zero cost is kind of cheap self spite. And then they post this complaint about their own non-use to Lobsters!

          It is frustrating that these low effort complaint posts are the first thing on an article. It literally has nothing to do with the content of the article and nor does it have to do with technology.

          1. 2

            But people just complain that they can’t get enough free stuff under the license of their choosing It is frustrating that these low effort complaint posts are the first thing on an article

            I get what you mean. But I also think that people simply have to decide whether they trust $project of $corp to be worth their time, money and the risk of becoming a core “runtime”. Because you can of course expect people to pay for those features, but maybe I’d rather not get dependent on the premium tier of $corp, which has a bad reputation in being your sole pillar of infrastructure. (If the graalvm is just a nice-to-have improvement to companies, then they probably also don’t need the premium tier and oracle wouldn’t invest that much energy into it.)

            People simply warn about their past experience with $corp and $projects of that kind. We’ve had similar discussions about lock-in with whole cloud vendors and their specific SaaS solutions, including how others try to run multi-cloud to avoid the risk.

          2. 1

            I think @proctrap pretty much nailed my concerns. When there is an enterprise variant of a piece of software, what I term open core, there is often a tension between which features end up in the open source variant and which features are in the enterprise variant. For instance Oracle touts the security and efficiency of the enterprise version of GraalVM, both features I would want in the opensource variant. I have experienced this in products like Puppet or Vault, where the enterprise variant offers an expanded set of features. This often results in a less cohesive development community. For example a company might not invest in building an open source feature for Puppet if they can purchase the same feature in the enterprise variant. Also, the Puppet employees themselves have little incentivize to help review and support pull requests which compete with enterprise features.

            Ultimately I think open core products don’t make for vibrant open source communities and I try to steer clear of them when possible.

            1. 1

              I think there is another problem with this: What exactly is the business model of the company ? If it is the open-core project I might as well warn people that this is more like a relabeled trial, as the company will make it somehow very attractive to buy the extensions (we’re specifically talking about open-core, not “pay for support”). But if it is not the open-core project, then why is it open-core and not fully opensource ? If for example oracle just develops the graalvm to run its own stuff faster and graciously opensources it, why is there some enterprise stuff behind a paywall ? (And we’re not talking about internal extensions, we’re talking about advertised enterprise addons.) That this kind of system might be smelly to people, for stuff that is more or less their future programming language runtime, is no surprise.

          3. 2

            Wikipedia:

            Coined by Andrew Lampitt in 2008, the open-core model primarily involves offering a “core” or feature-limited version of a software product as free and open-source software, while offering “commercial” versions or add-ons as proprietary software.

            You:

            What I think you are really doing is complaining that you don’t get the advanced JIT and GC that is in the enterprise edition.

            Sure sounds like it fits the definition to me.

            1. 1

              On the surface they would appear similar, but the distinction is where it matters. OC is to use the unsavory term, crippleware that is OSS in name only. From the wikipedia article, I think some of those examples are misplaced, like Redis. Redis did not change when Redis Labs released proprietary add-ons.

              GraalVM isn’t feature limited degraded version of the product that needs enterprise features to operate. The entire codebase is OSS. Given sufficient expertise external or internal, I would have no qualms about adopting GraalVM as platform level infrastructure. Once you have the software, it can never be taken away from you.

        2. 5

          In my testing, Graal native images can speed up start time and lower memory usage, but they are slower for long-running processes since they don’t get to benefit from an optimizing JIT compiler. So they’re ideal for command line tools, for example. For a long running server like Minecraft, I suspect the JIT optimization ends up helping a great deal down the road. At the cost of running the JVM, of course.

          1. 3

            It would be interesting to do a comparative analysis of profiles from the NI version and the HotSpot JIT dumps to see where the JIT is actually being applied over time to a long running server process. And it might be possible to rework the high level code so that the AOT version has many of the same properties as the JITed version.

            I am aware that the JIT can do things that are non-representable in the high level bytecode.

          2. 4

            Reduction of 43% in memory seems pretty awesome. I already run a server in Oracle Cloud, but could possibly run in a more limited environment because of this.

            1. 6

              Why did you pick Oracle cloud? I am curious because I never talked to anyone who has used it, esp for hobby stuff

              1. 12

                The answer is almost always “the extremely generous free tier.”

                It’s recommended by the article.

                1. 7

                  I’d be extremely suspicious of anyone who recommended an oracle product to me.

                  1. 2

                    I can’t blame you. I’m awfully suspicious of their free tier - I have a few things running there (a Minecraft server and a tiny instance of Uptime Kuma) and I’m constantly checking that it hasn’t been terminated (mostly solved by having the monitoring in place) or Oracle has decided that it’s no longer free.

                  2. 3

                    graalvm is Oracle, so of course they recommend other Oracle products

                    1. 6

                      The article wasn’t written by an Oracle employee, it was written by a (seemingly unaffiliated with Oracle) master student

                      1. 4

                        I understand that, but that blog is run by Oracle. Oracle curates the articles that get published. I have been in the industry for too long to believe that they picked Oracle Cloud instances by accident.

                        1. 6

                          Disclaimer: I put this up here and am employed by Oracle.

                          Two colleagues reviewed and I co-authored the blog post (our names are mentioned at the very end of it) and sure, the entire blog is about promoting GraalVM and its enterprise edition is an Oracle product. When the students reached out regarding a few technical questions, we, of course, suggested to try the Oracle Cloud Free Tier, which also gives you free access to GraalVM Enterprise. Nothing prevents you from using the open-source community edition and deploy the binary to some other cloud provider.

                  3. 1

                    I was curious to try out their free tier for my brother and I. I mostly wanted to experiment with something external, but on my Tailscale network.

                    I’d honestly probably never use their products otherwise, if given the choice.

                2. 1

                  Would be interesting to see if that can still be done with heavily modded forge servers. Those tend to require 8+GB and a desktop CPU to run smoothly.

                  1. 3

                    You’d have to work around the way that Forge/Fabric mod loading works, in that it reads JAR files from the mods folder and injects them into the classpath. AFAIK GraalVM Native Image can’t really AOT compile that. You’d probably have to modify Forge to look for mods already in the classpath, instead of loading them itself.

                    1. 3

                      I have no idea how mod loading works but I don’t see a reason why it shouldn’t work with GraalVM Native Image. You probably need to provide Native Image with appropriate configuration for the mods that you use and the trace agent may be able to help you with this. Please feel free to give that a try and let us know if you run into any problems!

                      1. 1

                        Just for clarification: Forge disassembles (& deobfuscates) and then re-assembles the vanilla-jar with its hooks to allow mod-loading. This is(*) performed on each startup to be license compliant (shipping such modified binaries is not allowed).

                        Ultimately forge (and fabric?) and mods use a lot of the runtime-loading mechanism, which is why I’d be interested how well this could be achieved.

                        (*) they wanted to add a caching step, such that you don’t have 5 minutes startup time after the first run, not sure how far this is

                        1. 1

                          GraalVM Native Image turns Java bytecode into native machine code, that’s why I don’t see a reason why mods shouldn’t work, except that mods may make use of reflection and other dynamic features of Java that require configuration to work with Native Image.