skip to main content
research-article

HotDrink: a library for web user interfaces

Published:26 September 2012Publication History
Skip Abstract Section

Abstract

HotDrink is a JavaScript library for constructing forms, dialogs, and other common user interfaces for Web applications. With HotDrink, instead of writing event handlers, developers declare a "view-model" in JavaScript and a set of "bindings" between the view-model and the HTML elements comprising the view. These specifications tend to be small, but they are enough for HotDrink to provide a fully operational GUI with multi-way dataflows, enabling/disabling of values, activation/deactivation of commands, and data validation. HotDrink implements these rich behaviors, expected of high-quality user interfaces, as generic reusable algorithms. This paper/tool demonstration introduces developers to the HotDrink library by stepping through the construction of an example web application GUI.

The library is a concrete realization of our prior work on the "property models" approach to declarative GUI programming. To encourage adoption among developers, we have packaged the technology following established web programming conventions.

References

  1. Ember.js, an open source JavaScript GUI framework, Accessed May 2012. URL http://emberjs.com.Google ScholarGoogle Scholar
  2. Knockout, an open source JavaScript GUI framework, Accessed May 2012. URL http://knockoutjs.com.Google ScholarGoogle Scholar
  3. OpenLaszlo: a rich internet application development framework, Accessed May 2012. URL http://www.openlaszlo.org.Google ScholarGoogle Scholar
  4. TodoMVC: A common learning application for popular JavaScript MV* frameworks, Accessed May 2012. URL http://addyosmani.github.com/todomvc/.Google ScholarGoogle Scholar
  5. A. Borning and R. Duisberg. Constraint-based tools for building user interfaces. ACM Trans. Graph., 5(4): 345--374, Oct. 1986. ISSN 0730-0301. URL http://doi.acm.org/10.1145/27623.29354. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Fowler. Presentation Model Pattern, 1994. URL http://martinfowler.com/eaaDev/PresentationModel.html.Google ScholarGoogle Scholar
  7. J. Freeman, J. Järvi, W. Kim, M. Marcus, and S. Parent. Helping programmers help users. In Proceedings of GPCE '11, pages 177--184, New York, NY, USA, 2011. ACM. ISBN 978-1-4503-0689-8. URL http://doi.acm.org/10.1145/2047862.2047892. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1995. ISBN 0-201-63361-2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Gossman. Introduction to Model/View/View-Model pattern for building WPF apps, October 2005. URL http://blogs.msdn.com/b/johngossman/archive/2005/10/08/478683.aspx.Google ScholarGoogle Scholar
  10. J. Järvi, M. Marcus, S. Parent, J. Freeman, and J. N. Smith. Property models: from incidental algorithms to reusable components. In Proceedings of GPCE '08, pages 89--98, New York, NY, USA, 2008. ISBN 978-1-60558-267-2. URL http://doi.acm.org/10.1145/1449913.1449927. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Järvi, M. Marcus, S. Parent, J. Freeman, and J. N. Smith. Algorithms for user interfaces. In Proceedings of GPCE '09, pages 147--156, New York, NY, USA, 2009. ACM. ISBN 978-1-60558-267-2. URL http://doi.acm.org/10.1145/1621607.1621630. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. G. E. Krasner and S. T. Pope. A cookbook for using the model-view-controller user interface paradigm in Smalltalk-80. J. Object Oriented Program., 1(3): 26--49, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. B. Myers, D. Giuse, R. Dannenberg, B. Zanden, D. Kosbie, E. Pervin, A. Mickish, and P. Marchal. Garnet: Comprehensive support for graphical, highly interactive user interfaces. Computer, 23(11): 71--85, Nov. 1990. doi: 10.1109/2.60882. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. B. A. Myers and M. B. Rosson. Survey on user interface programming. In CHI '92: Proceedings of the SIGCHI conference on Human factors in computing systems, pages 195--202, New York, NY, USA, 1992. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Potel. MVP: Model-view-presenter: The Taligent programming model for C++ and Java, 1996. URL http://www.wildcrest.com/Potel/Portfolio/mvp.pdf.Google ScholarGoogle Scholar
  16. M. Sannella. Skyblue: A multi-way local propagation constraint solver for user interface construction. In UIST '94: Proceedings of the 7th annual ACM symposium on User interface software and technology, pages 137--146, New York, NY, USA, 1994. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. HotDrink: a library for web user interfaces

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 48, Issue 3
        GPCE '12
        March 2013
        140 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2480361
        Issue’s Table of Contents
        • cover image ACM Conferences
          GPCE '12: Proceedings of the 11th International Conference on Generative Programming and Component Engineering
          September 2012
          148 pages
          ISBN:9781450311298
          DOI:10.1145/2371401

        Copyright © 2012 Authors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 26 September 2012

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!