- Domain-specific language
- Apache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming
- What is Scala
Scala is an object-oriented and functional programming language.
Scala is a general-purpose programming language. It supports object-oriented, functional and imperative programming approaches.
It is a strong static type language.
In Scala, everything is an object whether it is a function or a number. It does not have the concept of primitive data.
https://www.javatpoint.com/scala-tutorial
- Scala is a modern multi-paradigm programming language designed to express common programming patterns in a concise, elegant, and type-safe way.
Scala smoothly integrates the features of object-oriented and functional languages.
Scala, short for Scalable Language, is a hybrid functional programming language.
Scala smoothly integrates the features of object-oriented and functional languages.
Scala is compiled to run on the Java Virtual Machine.
Many existing companies, who depend on Java for business critical applications, are turning to Scala to boost their development productivity, applications scalability and overall reliability.
Scala is a pure object-oriented language in the sense that every value is an object.
Classes are extended by subclassing and a flexible mixin-based composition mechanism as a clean replacement for multiple inheritances.
Scala is also a functional language in the sense that every function is a value and every value is an object so ultimately every function is an object.
Scala provides a lightweight syntax for defining anonymous functions, it supports higher-order functions, it allows functions to be nested, and supports currying.
Scala, unlike some of the other statically typed languages (C, Pascal, Rust, etc.), does not expect you to provide redundant type information.
You don't have to specify a type in most cases, and you certainly don't have to repeat it.
Scala is compiled into Java Byte Code which is executed by the Java Virtual Machine (JVM).
This means that Scala and Java have a common runtime platform.
You can easily move from Java to Scala.
Scala enables you to use all the classes of the Java SDK and also your own custom Java classes, or your favorite Java open source projects.
It reduces the number of lines and helps the programmer to code in a type-safe way.
It allows you to write codes in an immutable manner, which makes it easy to apply concurrency and parallelism (Synchronize).
Scala vs Java
Scala has a set of features that completely differ from Java
All types are objects
Type inference
Nested Functions
Functions are objects
Domain-specific language (DSL) support
Traits
Closures
Concurrency support inspired by Erlang
https://www.tutorialspoint.com/scala/
- Scala
http://www.scala-lang.org/
- Clojure
Clojure is a dynamic programming language that targets the Java Virtual Machine (and the CLR, and JavaScript).
It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming.
Clojure is a compiled language
http://clojure.org/
- Statically typed programming language for modern multiplatform applications
https://kotlinlang.org/
- Akka
Where does the name Akka come from?
It is the name of a beautiful Swedish mountain up in the northern part of Sweden called Laponia
Akka is also the name of a goddess in the Sámi (the native Swedish population) mythology
http://akka.io/
- Because Lift applications are written in Scala, an elegant JVM language, you can still use your favorite Java libraries and deploy to your favorite Servlet Container and app server. Use the code you've already written and deployed to the container you've already configured!
https://liftweb.net/
- The High-Velocity Web Framework For Java and Scala
Built on Akka, Play provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications.
https://www.playframework.com/
- The Bowler Quickstart is a Skeleton sbt project and Bowler app that gets you up and running with a minimal Bowler app that you can adapt in no time.
https://github.com/bowler-framework/bowler-quickstart