What is the difference between Quarkus and Thorntail?
What Quarkus has over Thorntail:
- Capability to create native executables, which gives you massive improvements in startup time and memory footprint. This can be critical for cloud deployments.
- Even with the usual executable JAR, Quarkus is still going to have significantly smaller memory footprint (thanks to the dead code elimination), and faster startup time (because lot's of initialization work that's normally done on run-time was moved to built-time).
- Live coding (akka hot swapping code) - best I've seen so far.
- Better integration testing capabilities.
Advantages of Thorntail over Quarkus:
- Thorntail is mature, while Quarkus only just released the first Beta. This is only issue in very short term obviously.
Compatibility with other Java libraries is going to be less of a problem in Thorntail, in a sense that:
- there's a higher chance that a library will work out-of-the-box in Thorntail, than there's a chance that it will work out-of-the-box in Quarkus,
- if it's not working out-of-the-box, it's gonna be easier to make it work with Thorntail than to make it work with Quarkus.
It should be said however that Quarkus team made an amazing job of preparing an impressive list of extensions which covers probably everything one could wish for(?)
Conceptually Quarkus may choose to stay "lighter" in some cases. E.g. the CDI implementation in Quarkus is a subset of the CDI spec, in order to remain leaner and faster.
see https://thorntail.io/posts/thorntail-community-announcement-on-quarkus/ (from Mar 11, 2019)
particularly in Conclusion:
Quarkus is the latest evolution of our efforts in developing a framework for microservices, and serverless, that began back in 2015 with 2.x.
and
During the next 18 months we will ensure existing Thorntail users have a smooth transition over to either Quarkus or WildFly.
that is, if you are evaluating thorntail vs quarkus for a new microservice project, you should choose quarkus, ihmo