Runs on the Java platform, with no native code needed.
Programs run fast - roughly as fast as Java programs, and much faster than other “scripting languages”. This is due to a sophisticated compiler, compile-time transformations, type inference, and optional type declarations.
Full convenient and efficient access to the huge set of Java libraries means you can access objects, methods, fields, and classes without run-time overhead.
Start-up times are fast. You don’t have to wait for a lot of initialization. Even if you start with source code, the parser and compiler are fast.
Scripts are simple Kawa source files that can run as an application or command. These are simple to write, start start, and run efficiently, since they’re automatically compiled before execution.
Alternatively, you can embed Kawa as a scripting language for Java applications
Deployment is easy and flexible. You just need the Kawa jar file.
Kawa provides the usual read-eval-print loop, as well as batch modes.
Kawa has builtin pretty-printer support, and fancy formatting.
Kawa supports class-definition facilities, and separately-compiled modules.
You can allocate and initialize objects with a compact “builder” syntax. It works out-of-the-box (with no run-time overhead) on many classes and APIs, but can be customized if need be.
JavaFX programming is simpler.
Flexible shell-like functionality, including process literals.
Kawa implements the full numeric tower, including infinite-precision
rational numbers and complex numbers. It also supports Quantities
with units, such as
A lazy value wraps an expression which is evaluated only when it is needed.