The Thorn Programming Language: Robust Distributed Scripting on the JVM
Scripting languages enjoy great popularity due to their support for rapid and exploratory development. They typically have lightweight syntax, weak data privacy, dynamic typing, and powerful aggregate data types. The price of these features comes later in the software life cycle. Scripts are hard to evolve and compose, and often slow. An additional weakness of most scripting languages is lack of support for distributed computing---though distribution is required for scalability and interacting with remote services. Thorn, developed jointly by IBM Research and Purdue University, is a modern scripting language addressing these issues. It enjoys most of the advantages of scripting languages, but provides support for software evolution and robustification, e.g., an expressive module system and type annotation facilities. It has distributed computing built in the core language.
This is joint work with Bard Bloom, Brian Burg, Nate Nystrom, Johan Östlund, Gregor Richards, Rok Strniša, Jan Vitek, and Tobias Wrigstad.