skip to main content
article

A glimpse of Hopjs

Published:04 September 2016Publication History
Skip Abstract Section

Abstract

Hop.js is a multitier programming environment for JavaScript. It allows a single JavaScript program to describe the client-side and the server-side components of a web application. Its runtime environment ensures consistent executions of the application on the server and on the client.

This paper overviews the Hop.js design. It shows the JavaScript extensions that makes it possible to conceive web applications globally. It presents how Hop.js interacts with the outside world. It also briefly presents the Hop.js implementation. It presents the Hop.js web server implementation, the handling of server-side parallelism, and the JavaScript and HTML compilers.

References

  1. V. Balat, P. Chambart, and G. Henry. 2012. Client-server Web applications with Ocsigen. In Proceedings of the WWW’2012 conference. Lyon, France. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. V. Balat, J. Vouillon, and B. Yakobowski. 2009. Experience report: ocsigen, a web programming framework. In Proceeding of the 14th ACM SIGPLAN international conference on Functional programming, ICFP 2009, Edinburgh, Scotland, UK, August 31 - September 2, 2009. 311–316. DOI:http://dx.doi.org/10.1145/1596550. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 1596595Google ScholarGoogle Scholar
  4. G. Banga and P. Druschel. 1997. Measuring the Capacity of a Web Server. In USENIX Symposium on Internet Technologies and Systems. http://citeseer.ist.psu.edu/banga97measuring.html Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. H. Binsztok, A. Koprowski, and I. Swarczewskaja. 2013. Opa: Up and Running. O’Reilly Media.Google ScholarGoogle Scholar
  6. A. Chlipala. 2015a. An Optimizing Compiler for a Purely Functional Web-Application Language. In Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, ICFP 2015, Vancouver, BC, Canada, September 1-3, 2015. 10–21. DOI: http://dx.doi.org/10.1145/2784731.2784741 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Chlipala. 2015b. Ur/Web: A Simple Model for Programming the Web. In Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2015, Mumbai, India, January 15-17, 2015. 153–165. DOI:http://dx. doi.org/10.1145/2676726.2677004 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. G. Choi, J-H. Kim, D. Ersoz, and C. Das. 2005. A Multi-Threaded PIPELINED Web Server Architecture for SMP/SoC Machines. In WWW ’05: Proceedings of the 14th international conference on World Wide Web. ACM, New York, NY, USA, 730–739. http://doi.acm. org/10.1145/1060745.1060851 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. Cooper, S. Lindley, P. Wadler, and J. Yallop. 2006. Links: Web Programming Without Tiers. In 5th International Symposium on Formal Methods for Components and Objects (FMCO). Amsterdam, The Netherlands, 266–296. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. E. Czaplicki and S. Chong. 2013. Asynchronous Functional Reactive Programming for GUIs. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’13). ACM, New York, NY, USA, 411–422. DOI:http:// dx.doi.org/10.1145/2491956.2462161 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. L. Domoszlai and R. Plasmeijer. 2015. Tasklets: Client-Side Evaluation for iTask3. In Central European Functional Programming School, V. Zs’ok, Z. Horv’ath, and L. Csat’o (Eds.). Lecture Notes in Computer Science, Vol. 8606. Springer International Publishing, 428– 445. DOI:http://dx.doi.org/10.1007/978-3-319-15940-9_ 11Google ScholarGoogle Scholar
  12. S. Ducasse, A. Lienhard, and L. Renggli. 2007. Seaside: A Flexible Environment for Building Dynamic Web Applications. IEEE Software 24, 5 (2007), 56–63. DOI:http://dx.doi.org/10.1109/ MS.2007.144 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. ECMA International. 2011. Standard ECMA-262 - ECMAScript Language Specification (5.1 ed.). http://www.ecma-international. org/publications/standards/Ecma-262.htmGoogle ScholarGoogle Scholar
  14. Facebook. 2015. JSX. https://facebook.github.io/jsx/. (2015). https: //facebook.github.io/jsx/Google ScholarGoogle Scholar
  15. P. Graunke, R. Findler, S. Krishnamurthi, and M. Felleisen. 2003. Modeling Web Interactions. In European Symposium on Programming. Poland. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Kelsey, W. Clinger, and J. Rees. 1998. The Revised(5) Report on the Algorithmic Language Scheme. Higher-Order and Symbolic Computation 11, 1 (Sept. 1998). http://www-sop.inria.fr/indes/ fp/Bigloo/doc/r5rs.html Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. G. Kossakowski, N. Amin, T. Rompf, and M. Odersky. 2012. Javascript as an embedded DSL. In Proceedings of the ECOOP’2012 conference. Beijing, China, 409–434. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. McCarthy. 2009. Automatically RESTful Web Applications: Marking Modular Serializable continuations. In Proceeding of the 14th ACM SIGPLAN international conference on Functional programming, ICFP 2009, Edinburgh, Scotland, UK, August 31 - September 2, 2009. 299–310. DOI:http://dx.doi.org/10.1145/1596550. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 1596594Google ScholarGoogle Scholar
  20. L. Meyerovich, A. Guha, J. Baskin, G. Cooper, M. Greenberg, A. Bromfield, and S. Krishnamurthi. 2009.Google ScholarGoogle Scholar
  21. Flapjax: A Programming Language for Ajax Applications. In Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA ’09). ACM, New York, NY, USA, 1–20. DOI:http://dx.doi.org/10.1145/1640089.1640091 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. H-F. Nielsen, J. Gettys, A. Baird-Smith, E. Prud’Hommeaux, H. Lie Wium, and C. Lilley. 1997.Google ScholarGoogle Scholar
  23. Network Performance Effects of HTTP/1.1, CSS1, and PNG. In Proceedings of the ACM SIGCOMM’97 conference. Cannes, France.Google ScholarGoogle Scholar
  24. L. Philips, C. De Roover, T. Van Cutsem, and De Meuter. W. 2014. Towards Tierless Web Development without Tierless Languages. In Onward! 2014, Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, part of SPLASH ’14, Portland, OR, USA, October 20- 24, 2014. 69–81. DOI:http://dx.doi.org/10.1145/2661136. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 2661146Google ScholarGoogle Scholar
  26. C. Queinnec. 2000. The Influence of Browsers on Evaluators. In ACM S IGPLAN Int’l Conference on Functional Programming (ICFP). Montréal, Canada, 23–33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. B. Reynders, D. Devriese, and F. Piessens. 2014. Multi-Tier Functional Reactive Programming for the Web. In Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2014). ACM, New York, NY, USA, 55–68. DOI:http://dx.doi.org/10.1145/ 2661136.2661140 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. J. Richard-Foy, O. Barais, and J-M. Jézéquel. 2013. Efficient high-level abstractions for web programming.. In GPCE, FOO (Ed.). ACM, 53–60. http://dblp.uni-trier.de/db/conf/ gpce/gpce2013.html#Richard-FoyBJ13 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Serrano. 2014. A Multitier Debugger for Web Applications. In Proceedings of the 10th WEBIST conference (WEBIST’14). Barcelona, Spain.Google ScholarGoogle Scholar
  30. M. Serrano, E. Gallesio, and F. Loitsch. 2006. HOP, a language for programming the Web 2.0. In Proceedings of the First Dynamic Languages Symposium (DLS). Portland, Oregon, USA.Google ScholarGoogle Scholar
  31. Z. Su and G. Wassermann. 2006. The Essence of Command Injection Attacks in Web Applications. In Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’06). ACM, New York, NY, USA, 372–382. DOI: http://dx.doi.org/10.1145/1111037.1111070 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. W. Taha. 1999. Multi-Stage Programming: Its Theory and Applications. Ph.D. Dissertation. Oregon Graduate Institute of Science and Technology, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. J. Vouillon and V. Balat. 2013. From bytecode to Javascript: the Js of ocaml compiler. Software: Practice and Experience doi: 10.1002/spe.2187 (Feb. 2013). DOI:http://dx.doi.org/10. 1002/spe.2187 Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. M. Welsh, D. Culler, and E. Brewer. 2001. SEDA: An Architecture for Well-Conditioned, Scalable Internet Services. In Symposium on Operating Systems Principles. 230–243. http://citeseer.ist. psu.edu/welsh01seda.html Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. N-M. Yao, M-Y. Zheng, and J-B. Ju. 2002. Pipeline: A New Architecture of High Performance Servers. SIGOPS Oper. Syst. Rev. 36, 4 (2002), 55–64. http://doi.acm.org/10.1145/583800.583807 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A glimpse of Hopjs

      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 51, Issue 9
        ICFP '16
        September 2016
        501 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/3022670
        Issue’s Table of Contents
        • cover image ACM Conferences
          ICFP 2016: Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming
          September 2016
          501 pages
          ISBN:9781450342193
          DOI:10.1145/2951913

        Copyright © 2016 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 4 September 2016

        Check for updates

        Qualifiers

        • 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!