Debugger for Tierless Programming
Tierless programming languages aim to reduce this complexity. They enable developing a web application as a single mono-linguistic application, which renders its development alike to that of a desktop application. A preprocessor or the runtime of these languages realizes a split into a client, server and sometimes a database tier, where communication between the different tiers is handled transparently.
Current approaches to tierless web development require an investment in novel programming languages. More importantly, they require developers to annotate code carefully with tier splitting information — a time-consuming and often error-prone process.
A downside of transpiling a tierless program into several tiers, is that developers may witness code at run-time that differs from the code that they had implemented. The transpiled code is at odds with their tierless model of the program. This problem becomes apparent when developers need to debug their program, since existing debuggers will be oblivious to the transpilation process.
The goal of this thesis propsal is realizing a specialized debugger for tierless programs. The debugger must provide a unified, tierless view of the state of the program, abstracting away from the asynchronous nature of the interactions across tiers.