Flapjax: A Programming Language for Ajax Applications

Leo Meyerovich, Arjun Guha, Jacob Baskin, Gregory Cooper, Michael Greenberg, Aleks Bromfield, and Shriram Krishnamurthi
ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA), 2009
Best Student Paper Award, Most Influential Paper Award (Awarded in 2019)

Citation for the Most Influential Paper Award: Web programming requires dedicated abstractions that facilitate communication intensive applications with interactive interfaces. Flapjax reimagines how to program client-based web applications by providing two central abstractions adopted from functional reactive programming: event streams and so-called behaviors, which model computations that automatically track data dependencies and propagate updates. Flapjax seamlessly builds on top of JavaScript without requiring a dedicated runtime and thus interoperates with existing applications written in JavaScript. This design choice lowers the barrier to entry and makes the language approachable to novice users. In terms of modern usage, the reactive style and event stream abstraction advocated by Flapjax have been adopted widely, both in mobile apps and on the web. Moreover, recent research has shown that beyond interactivity, these abstractions also facilitate correct-by-design distributed applications in presence of concurrency as well as crash and communication faults.

Try Flapjax Online

PDF

@inproceedings{meyerovich:flapjax,
    author = "Leo~A. Meyerovich and Arjun Guha and Jacob Baskin and
              Gregory~H. Cooper and Michael Greenberg and Aleks Bromfield
              and Shriram Krishnamurthi",
    title = "Flapjax: A Programming Language for {Ajax} Applications",
    year = 2009,
    booktitle = "Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA)"
  }