Directing JavaScript with arrows

TitleDirecting JavaScript with arrows
Publication TypeConference Papers
Year of Publication2009
AuthorsKhoo Y P, Hicks MW, Foster JS, Sazawal V
Conference NameProceedings of the 5th symposium on Dynamic languages
Date Published2009///
Conference LocationNew York, NY, USA
ISBN Number978-1-60558-769-1
Keywordsarrowlets, arrows, events, javascript, web programming

JavaScript programmers make extensive use of event-driven programming to help build responsive web applications. However, standard approaches to sequencing events are messy, and often lead to code that is difficult to understand and maintain. We have found that arrows, a generalization of monads, are an elegant solution to this problem. Arrows allow us to easily write asynchronous programs in small, modular units of code, and flexibly compose them in many different ways, while nicely abstracting the details of asynchronous program composition. In this paper, we present Arrowlets, a new JavaScript library that offers arrows to the everyday JavaScript programmer. We show how to use Arrowlets to construct a variety of state machines, including state machines that branch and loop. We also demonstrate how Arrowlets separate computation from composition with examples such as a drag-and-drop handler and a bubblesort animation.