Developer Joy

Beyond simply working, we’re aiming for Joy

Quarkus is not just about being great for writing Web Applications or Micro-Services. We’re focusing on more than the feature set: we make sure that every feature works well, simply, with little to no configuration, in the most intuitive way possible. It should be trivial to develop simple things, and easy to develop the more complex ones.

We’ve looked for the most useful extensions, we’ve made sure they all work together, that every use-case is covered, that out-of-the-box configuration is the most sensible, that every error helps you to resolve it. More than productivity: using Quarkus should be enjoyable.

Unified configuration

Gone are the days of a thousand configuration files and formats. We’re aiming for cohesion, so a single configuration file is all it takes for Quarkus applications to configure every single extension. Not only that, but we’ve made sure that every configurable option has the most useful and sensible defaults so you can get started with no configuration whatsoever.

Live Coding

One of the major productivity problems that face most Java developers is traditional Java development workflow. For most web developers this will generally be:

Write CodeCompileDeployRefresh BrowserRepeat

This can be a major drain on productivity, as the compile + redeploy cycle can often take up to a minute or more. Quarkus aims to solve this problem with its Live Coding feature. When running in development mode the workflow is simply:

Write CodeRefresh BrowserRepeat

This will work out of the box, with no special setup required. This works for Java file, application config, and static resources.

Note

When you run mvn compile quarkus:dev Quarkus will launch in development mode. When it receives a HTTP request it will hold the request, and check to see if any application source files have been changed. If they have it will transparently compile the changed files, redeploy the application with the changed files, and then the HTTP request will continue to the redeployed application. Quarkus redeploys are much faster than a traditional app server, so for all but the largest applications this should take well under a second.

Works on all the things

There’s nothing worse than getting different results when running your application or tests under Maven, Gradle, or the IDE. Whatever your workflow, Quarkus applications or tests are trivial to run in any environment, so pick your favorite tool and we make sure you get the same results as easily as possible.

Opinionated

We get it: there are a thousand ways to write the same code. Every company has traditions about how a project should be structured, and that can be fine. But it makes it really hard to write simple documentation, to onboard new developers, and to make things simple.

Quarkus will focus on what we feel is the simplest and most useful way to use any given feature. We will work hard to trim that particular feature to its most useful essence, and to document it thoroughly, in an intuitive manner. That’s analysing up-front how to best use that feature and helping you avoid that analysis, through our experience, and guiding you in what we think is the best way to do things. That’s taking an opinion on how you should do things and voicing it.

Perhaps you’ll disagree with our opinion, or you’ll have a much more complex use-case that will not be solved by our recommended way, but that’s fine. Don’t worry: we will not prevent you from more advanced usage on the features we provide or the frameworks we integrate.