Scalagna 0.1: Towards Multi-tier Programming with Scala and Scala.js
In the state-of-practice, developing web applications requires dealing with multiple programming languages or codebases. To address this issue, researchers have proposed multi-tier languages such as Hop or Eliom that support client and server development in a single language and in one codebase. Even if such multi-tier languages are often strongly based on an existing language - for instance Hop is based on Scheme and Eliom on OCaml - they are new languages, and require a new compiler.
The objective of this paper is to define a multi-tier language as a library-based Scala DSL. Scala already supports compilation to both the Java VM and to JavaScript. The multi-tier language we propose in this paper, Scalagna, combines the existing Scala JVM and JavaScript ecosystems into a single programming model without requiring changes to, or rewrites of the existing Scala compilers. We discuss how this is possible using Scala’s excellent support for definining DSLs, and the experimental Scala macro system. We show that Scalagna has reasonable performance, and by porting an existing Eliom application, we provide evidence that Scalagna is as expressive as other established and existing multi-tier languages.
Tue 10 AprDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:30 | |||
11:00 25mFull-paper | A Framework for Dynamic Inter-Device Task Dispatch with Eventual Consistency ProWeb Jihyeok Park KAIST, South Korea, Joonyoung Park , Yoonkyong Lee , Chul-Joo Kim , Byoungoh Kim , Sukyoung Ryu KAIST | ||
11:25 25mFull-paper | Scalagna 0.1: Towards Multi-tier Programming with Scala and Scala.js ProWeb Bob Reynders imec-DistriNet, KU Leuven, Belgium, Michael Greefs , Dominique Devriese KU Leuven, Frank Piessens KU Leuven | ||
11:50 25mTalk | Session Types for Tierless Web Applications ProWeb Simon Fowler The University of Edinburgh, Sam Lindley University of Edinburgh, UK, J. Garrett Morris University of Kansas, USA, Sara Décova | ||
12:15 15mTalk | Group discussion 2 ProWeb |