The Ultimate GUI Framework: Are We There Yet?

Authors Knut Anders Stokke , Mikhail Barash , Jaakko Järvi



PDF
Thumbnail PDF

File

OASIcs.EVCS.2023.25.pdf
  • Filesize: 0.54 MB
  • 9 pages

Document Identifiers

Author Details

Knut Anders Stokke
  • University of Bergen, Norway
Mikhail Barash
  • University of Bergen, Norway
Jaakko Järvi
  • University of Turku, Finland

Acknowledgements

The authors are thankful to the anonymous reviewers for their valuable comments on the paper. We also wish to express our gratitude for and admiration of Eelco Visser’s life’s work on programming research, and of him as a person.

Cite As Get BibTex

Knut Anders Stokke, Mikhail Barash, and Jaakko Järvi. The Ultimate GUI Framework: Are We There Yet?. In Eelco Visser Commemorative Symposium (EVCS 2023). Open Access Series in Informatics (OASIcs), Volume 109, pp. 25:1-25:9, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2023) https://doi.org/10.4230/OASIcs.EVCS.2023.25

Abstract

The programming community seems to be forever searching for the ultimate user interface programming approach and the accompanying framework. We describe the landscape of recent efforts in this quest through describing commonalities and differences of modern JavaScript frameworks with respect to their approaches to GUI specifications. We situate both Eelco Visser’s work on WebDSL and our own work on GUI programming in this landscape, and point out areas where more research is needed, including modeling multi-way dataflows and dynamic structures in GUIs.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Graphical user interface languages
  • Software and its engineering → Software libraries and repositories
Keywords
  • Web frameworks
  • GUI specification
  • WebDSL
  • HotDrink
  • WarmDrink

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Advanced Svelte: Reactivity, lifecycle, accessibility. Accessed 26.10.2022. URL: https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_reactivity_lifecycle_accessibility.
  2. Angular. Accessed 26.10.2022. URL: https://angular.io/.
  3. Backbone.js. Accessed 26.10.2022. URL: https://backbonejs.org/.
  4. Frederick P. Brooks, Jr. No silver bullet essence and accidents of software engineering. Computer, 20(4):10-19, 1987. URL: https://doi.org/10.1109/MC.1987.1663532.
  5. Conal Elliott and Paul Hudak. Functional reactive animation. SIGPLAN Not., 32(8):263-273, August 1997. URL: https://doi.org/10.1145/258949.258973.
  6. The Elm architecture. Accessed 26.10.2022. URL: https://guide.elm-lang.org/architecture/.
  7. Ember.js - A framework for ambitious web developers. Accessed 26.10.2022. URL: https://emberjs.com/.
  8. Mohamed Fayad and Douglas C Schmidt. Object-oriented application frameworks. Communications of the ACM, 40(10):32-38, 1997. Google Scholar
  9. Richard Feldman. Elm in Action. Manning, 2020. Google Scholar
  10. Flutter - Build apps for any screen. Accessed 27.01.2023. URL: https://flutter.dev/.
  11. Charles Gabriel Foust. Guaranteeing Responsiveness and Consistency in Dynamic, Asynchronous Graphical User Interfaces. PhD thesis, Texas A&M University, 2016. Google Scholar
  12. Gabriel Foust, Jaakko Järvi, and Sean Parent. Generating reactive programs for graphical user interfaces from multi-way dataflow constraint systems. SIGPLAN Not., 51(3):121-130, October 2015. URL: https://doi.org/10.1145/2936314.2814207.
  13. Martin Fowler. Domain-specific languages. Pearson Education, 2010. Google Scholar
  14. Simon Fowler. Model-view-update-communicate: Session types meet the Elm architecture. In Robert Hirschfeld and Tobias Pape, editors, 34th European Conference on Object-Oriented Programming, ECOOP 2020, November 15-17, 2020, Berlin, Germany (Virtual Conference), volume 166 of LIPIcs, pages 14:1-14:28. Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2020. URL: https://doi.org/10.4230/LIPIcs.ECOOP.2020.14.
  15. John Freeman, Jaakko Järvi, and Gabriel Foust. HotDrink: A library for web user interfaces. SIGPLAN Not., 48(3):80-83, 2012. URL: https://doi.org/10.1145/2480361.2371413.
  16. John Alexander Freeman. Reusable User Interface Behaviors. PhD thesis, Texas A&M University, 2016. Google Scholar
  17. Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1 edition, 1994. Google Scholar
  18. Victor Gaudioso. MVVM: Model-view-viewmodel. In Foundation Expression Blend 4 with Silverlight, pages 341-367. Apress Berkeley, CA, 2010. URL: https://doi.org/10.1007/978-1-4302-2974-2_10.
  19. Danny Groenewegen, Zef Hemel, and Eelco Visser. Separation of concerns and linguistic integration in WebDSL. IEEE Software, 27(5):31-37, 2010. Google Scholar
  20. Danny M. Groenewegen, Zef Hemel, Lennart C.L. Kats, and Eelco Visser. WebDSL: A domain-specific language for dynamic web applications. In Companion to the 23rd ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications, OOPSLA Companion '08, pages 779-780, New York, NY, USA, 2008. Association for Computing Machinery. URL: https://doi.org/10.1145/1449814.1449858.
  21. Magne Haveraaen and Jaakko Järvi. Semantics of multiway dataflow constraint systems. Journal of Logical and Algebraic Methods in Programming, 121:100634, December 2020. URL: https://doi.org/10.1016/j.jlamp.2020.100634.
  22. Jaakko Järvi, Mat Marcus, Sean Parent, John Freeman, and Jacob N. Smith. Property models: From incidental algorithms to reusable components. In Proceedings of the 7th International Conference on Generative Programming and Component Engineering, GPCE '08, pages 89-98, New York, NY, USA, 2008. Association for Computing Machinery. URL: https://doi.org/10.1145/1449913.1449927.
  23. JSX. Accessed 26.10.2022. URL: https://facebook.github.io/jsx/.
  24. Tim Kadlec. The cost of JavaScript frameworks, April 2020. Accessed 26.10.2022. URL: https://timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-frameworks/.
  25. Knockout. Accessed 26.10.2022. URL: https://knockoutjs.com/.
  26. Knockout: Observables. Accessed 26.10.2022. URL: https://knockoutjs.com/documentation/observables.html.
  27. Magnus Madsen, Ondrej Lhotak, and Frank Tip. A semantics for the essence of React. In European Conference on Object-Oriented Programming, 2020. Google Scholar
  28. Joshua Nussbaum. The Svelte compiler: How it works, February 2020. Accessed 26.10.2022. URL: https://dev.to/joshnuss/svelte-compiler-under-the-hood-4j20.
  29. Mike Potel. MVP: Model-view-presenter: The Taligent programming model for C++ and Java, 1996. URL: https://www.wildcrest.com/Potel/Portfolio/mvp.pdf.
  30. React - A JavaScript library for building user interfaces. Accessed 26.10.2022. URL: https://reactjs.org/.
  31. Redux - A predictable state container for JavaScript apps. Accessed 27.01.2023. URL: https://redux.js.org/.
  32. Trygve Reenskaug. Models-views-controllers. Reproduced in The original MVC reports by University of Oslo, December 1979. URL: https://www.duo.uio.no/bitstream/handle/10852/9621/Reenskaug-MVC.pdf.
  33. Michael Sannella. Skyblue: A multi-way local propagation constraint solver for user interface construction. In Proceedings of the 7th Annual ACM Symposium on User Interface Software and Technology, UIST '94, pages 137-146, New York, NY, USA, 1994. Association for Computing Machinery. URL: https://doi.org/10.1145/192426.192485.
  34. SolidJS - Reactive JavaScript Library. Accessed 26.10.2022. URL: https://www.solidjs.com/.
  35. State and lifecycle. Accessed 26.10.2022. URL: https://reactjs.org/docs/state-and-lifecycle.html.
  36. Knut Anders Stokke, Mikhail Barash, and Jaakko Järvi. Manipulating GUI structures declaratively. In Proceedings of the 19th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2020, pages 63-69, New York, NY, USA, 2020. Association for Computing Machinery. URL: https://doi.org/10.1145/3425898.3426956.
  37. Knut Anders Stokke, Mikhail Barash, and Jaakko Järvi. A domain-specific language for structure manipulation in constraint system-based GUIs. Journal of Computer Languages, 74:101175, 2023. Google Scholar
  38. Svelte - Cybernetically enhanced web apps. Accessed 26.10.2022. URL: https://svelte.dev/.
  39. SwiftUI - Apple Developer Documentation. Accessed 27.01.2023. URL: https://developer.apple.com/documentation/swiftui/.
  40. Bruce Tate and Curt Hibbs. Ruby on Rails: Up and Running. O'Reilly Media, Inc., 2006. Google Scholar
  41. Mohit Thakkar. Building React Apps with Server-Side Rendering. APress, Berlin, Germany, 1 edition, April 2020. Google Scholar
  42. Thinking in React. Accessed 26.10.2022. URL: https://reactjs.org/docs/thinking-in-react.html.
  43. Two-way binding. Accessed 26.10.2022. URL: https://angular.io/guide/two-way-binding.
  44. Virtual DOM and internals. Accessed 26.10.2022. URL: https://reactjs.org/docs/faq-internals.html.
  45. Vue.js - The progressive JavaScript framework. Accessed 26.10.2022. URL: https://vuejs.org/.
  46. Irena Petrijevcanin Vuksanovic and Bojan Sudarevic. Use of web application frameworks in the development of small applications. In 2011 Proceedings of the 34th International Convention MIPRO, pages 458-462. IEEE, 2011. Google Scholar
  47. Zhanyong Wan and Paul Hudak. Functional reactive programming from first principles. SIGPLAN Not., 35(5):242-252, May 2000. URL: https://doi.org/10.1145/358438.349331.
  48. Allen Wirfs-Brock and Brendan Eich. JavaScript: The first 20 years. Proc. ACM Program. Lang., 4(HOPL), June 2020. URL: https://doi.org/10.1145/3386327.
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail