Evolution of the WebDSL runtime: reliability engineering of the WebDSL web programming language

Danny M. Groenewegen, Elmer van Chastelet, Eelco Visser. Evolution of the WebDSL runtime: reliability engineering of the WebDSL web programming language. In Ademar Aguiar, Shigeru Chiba, Elisa Gonzalez Boix, editors, Programming'20: 4th International Conference on the Art, Science, and Engineering of Programming, Porto, Portugal, March 23-26, 2020. pages 77-83, ACM, 2020. [doi]

Abstract

Web applications are ideal for implementing information systems; they can organize and persist the data in a database, do not require installation on client machines, and can be instantly updated everywhere. However, web programming is complex due to its heterogeneous nature, causing web frameworks to suffer from insufficient or leaky abstraction, weak static consistency checking, and security features that are not enforced. We developed the WebDSL web programming language, which supports direct expression of intent, strong static consistency checking, linguistic abstractions for web programming concerns, and automatically enforces security features for web applications. We have used WebDSL for over 10 years to create information systems for academic workflows with thousands of users. Based on our experiences with these applications, we improved the WebDSL compiler and runtime to increase robustness, performance, and security of applications. In this experience report, we reflect on the lessons learned and improvements made to the language runtime.