Scripting languages enjoy great popularity due their support for rapid and exploratory development. They typically have lightweight syntax, weak data privacy, dynamic typing, powerful aggregate data types, and allow execution of the completed parts of incomplete programs. The price of these features comes later in the software life cycle. Scripts are notoriously hard to evolve and compose, and often perform poorly at run-time. An additional weakness of most current scripting languages is lack of support for concurrency— though concurrency is required by more and more applications for scalability on parallel architectures, for handling concurrent real-world events, or for interacting with remote distributed services. This paper reports on the design and the implementation status of Thorn, a novel programming language targeting the JVM. Our principal design contributions are a careful selection of features that support the evolution of scripts into industrial grade programs—e.g., an...