Tierless Programming in JavaScript

Printer-friendly version

Publication Type:

Conference Paper

Source:

37th International Conference on Software Engineering (ICSE 2015), IEEE (2015)

URL:

http://soft.vub.ac.be/Publications/2015/vub-soft-tr-15-03.pdf

Abstract:

Whereas “responsive” web applications already offered a more desktop-like experience, there is an increasing user demand for “rich” web applications (RIAs) that offer collaborative and even off-line functionality. Realizing these qualities requires distributing previously centralized application logic and state vertically from the server to a client tier (e.g., for desktop- like and off-line client functionality), and horizontally between instances of the same tier (e.g., for collaborative client function- ality and for scaling of resource-starved services). Both bring about the essential complexity of distributing application assets and maintaining their consistency, along with the accidental complexity of reconciling a myriad of heterogenous tier-specific technology. Tierless programming languages enable developing web applications as a single artefact that is automatically split in tier-specific code —resulting in a development process akin to that of a desktop application. This relieves developers of distribution and consistency concerns, as well as the need to align different tier-specific technologies. However, programmers still have to adopt a new and perhaps esoteric language. We therefore advocate developing tierless programs in a general- purpose language instead. In this poster, we introduce our approach to tierless programming in JavaScript. We expand upon our previous work by identifying development challenges arising from this approach that could be resolved through tool support.