Quarkus rocks with native but native are not the only thing that rocks in Quarkus. A thread...
Build time init-first - It might be controversial but being able to gain 5-15% more performance by optimize logging and making Hibernate live reload in sub-seconds all come from this. This repeats for all Quarkusified libraries - it has a massive compounding effect.
Quarkus dev mode - an optimized developer mode made possible because Quarkus participates in the build. Tons of features that make writing in Java fun. And all goes away for production leaving zero overhead.
If Quarkus was a game, dev mode is its God Mode.
Live reload - just run `quarkus dev` and code away, add libraries, change almost everything, and hit refresh in your browser and it is all there.
dev mode console - Quarkus adds a mini-hud/menu to use during development that lets you turn on/off various settings, open browser, open dev UI etc. press 'h' for help and no need to dig in documentation to see what features are available to you.
Continous testing - hit 'r' in Quarkus dev mode and it will start running your unit test on code changes. You will always know if you have a red or green build. And it works with *any* IDE.
Reactive at its core - Quarkus uses vert.x at its core and recently even the JAX-RS layer has been made reactive. Meaning that performance wise just moving to RestEasy Reactive still using blocking code you get a 15-30% performance increase. Remember that compounding effect ?
A vibrant cross integrated eco-system - as more build extensions utilize the build time bound features of Quarkus they get added to github.com/quarkusio/quar… a CI setup that allows for constantly checking if things break and we need to mitigate - enabling us to move fast.
Standards++, Quarkus use standards where ever possible and enhances it to be easier, more modern, and efficient. The latter does mean we don't support things in standards that make Java startup or runtime inefficient. Compounding effects matters!
Well-known libraries, Quarkus uses a lot of libraries that are well known and well used whenever we can - Quarkus extensions bring those libraries into a world of native possibilities but also enhances their developer experience. Everybody wins!
Memory and CPU usage - even in Java VM mode apps using Quarkus see a huge reduction in memory and improved startup performance from tens or hundreds of seconds to single-digit even subsecond startup.
A result of the compounding effect that saves time and money!
...that's my list for today of things that make Quarkus not only about native. Native is the rocket boost we apply to this already massive improvement to Java development that Quarkus brings.
What is your favorite Quarkus feature? Anything I missed?
• • •
Missing some Tweet in this thread? You can try to
force a refresh
And before someone says so - yes IntelliJ does not *require* eclipse JDT but have you tried enabling it as intellijs compiler ? Speed is much better; you can get error messages for the whole project and you can run code without having everything compile. It’s liberating :)
Che, gitpod, GitHub workspaces all web based IDES which behind the scene uses the Java language server developed by @rhdevelopers teams which uses @EclipseJavaIDE JDT “headless”
1/ Tips and tricks for writing java cli apps in 2020, a thread...
2/ There are a lot of little small things to deal with when writing cli apps that looks and behave nicely - the following are some of the things I've used and/or found out while writing jbang...
3/ Parsing command line arguments is on its face a simple task but if you want to do it well you do benefit greatly from a library to do it rather than manually munging the String[] you get handed.
There are a bunch of them but my clear winner is @picocli. It just does it all...