A strong statically typed language that combines object-oriented and functional programming, running on the JVM and designed for concise, elegant code.