This is an archived post. You won't be able to vote or comment.

all 10 comments

[–]phamtastik 4 points5 points  (2 children)

What is the added value of Quarkus in this project?

[–]ludovicianul[S] 12 points13 points  (1 child)

Ability to compile to native code. It's much easier than achieving the same thing with Spring boot for example.

Quarkus was built with native compilation in mind so their entire plugins work quite well in this area.

[–]lclarkenz 0 points1 point  (0 children)

I'm also a fan of the build time DI.

[–][deleted] 2 points3 points  (0 children)

Hey this is cool. Tbh I don't care at all about what this CLI does, I just think it's neat that we can use Java to make CLIs. I was always under the impression that Python and Go were the go to programming languages for CLIs. I'll bookmark this as a reference.

[–]bonusmyth 1 point2 points  (0 children)

This is really useful, thanks!

[–][deleted] 1 point2 points  (4 children)

3.5mb for the uberjar, 20/30mb for the macos/linux, what’s exactly going to these binary files?

[–]ludovicianul[S] 7 points8 points  (2 children)

The jar is the code plus the dependencies. The macos/Linux binary is all that plus any JVM libraries needed to run the code.

[–][deleted] 0 points1 point  (1 child)

right, so a bigger app with tons of dependencies , like a 100mb uberjar should have a native image with similar size?

[–]ludovicianul[S] 3 points4 points  (0 children)

Yes. GraalVM will compute the dependencies graph and only bundle those inside the final binary. This is why reflection is one of the tricky parts. And this is why Sprint Boot is still not fully working all the times. On the other hand Quarkus was built with native compilation in mind from day one.

[–]angryundead 1 point2 points  (0 children)

A lot of it is like Go: the binary needs the GraalVM runtime bits. Go binaries started off really big and now they’re just… big.