(C) 2015, Software Languages Team, University of Koblenz, Ralf Lämmel
Several approaches to web-app development leverage loose coupling (of development) of client and server. For instance, when developing an HTML5-based client against a Node.js based server, then both sides are developed more or less independently, but they clearly need to communicate through requests and responses. Any such communication (sync, async, push, pull) may be prone to "type errors" in that data encoded on one side may fail to be decoded correctly on the other side. More specifically, a server may respond to a request with a message (e.g., encoded in JSON) while the client will fail because it misses some key/value pairs in the response or it assumes a different type for some value in a key/value pair. We coin the term "web-app type error".
- Take an inventory of popular web app frameworks and identify the relevance of "web-app type errors".
- Pick one framework for which these type errors are indeed relevant.
- Design and prototypically implement and validate code analysis to help detecting type errors statically on a given code base of client and server.
Relevant areas of research:
- Type checking/inference as in programming language theory
- Current research on gradual typing
- Previous work on soft typing