Skip navigation
  • Home
  • Browse
    • Communities
      & Collections
    • Browse Items by:
    • Publication Date
    • Author
    • Title
    • Subject
    • Department
  • Sign on to:
    • My MacSphere
    • Receive email
      updates
    • Edit Profile


McMaster University Home Page
  1. MacSphere
  2. Open Access Dissertations and Theses Community
  3. Open Access Dissertations and Theses
Please use this identifier to cite or link to this item: http://hdl.handle.net/11375/29073
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorAnand, Christopher-
dc.contributor.authorArumugasamy, Akshay Kumar-
dc.date.accessioned2023-10-16T17:07:14Z-
dc.date.available2023-10-16T17:07:14Z-
dc.date.issued2023-11-
dc.identifier.urihttp://hdl.handle.net/11375/29073-
dc.description.abstractThis thesis examines trends in the academic and professional literature around immutable data and its relationship with declarative User Interfaces (UIs). Immutable data types are preferred by academic authors due to their increased safety, and commercial languages are increasing their support for them over time. More recently, declarative UIs are an exploding topic in industry, and these are related, although not as closely as one would expect. Declarative programming tries to focus on highlevel requirements, not low-level details. It is easier to do this if functions have no side effects, and immutable data is a guaranteed way of achieving this. To highlight this property, the declarative UI framework Flutter advertises “stateless widgets”, but their existence puts in highlights the lack of this property in most widgets. Consequently, we ask whether it is feasible to build a Graphical User Interface (GUI) toolkit using purely immutable data structures. To accomplish this objective, a purely immutable GUI toolkit is sketched and partially developed using Elm, a purely functional language in which all data structures are immutable. To understand the requirements of a GUI toolkit, we categorize and put in historical context, different design paradigms for UIs and relate them to core software-design principles. Leading toolkits allow developers to visualize and manage multiple views of their interfaces, including the view hierarchy, layout, interface to business logic, and focus management. By creating a concrete example, the research aims to provide insight into the limitations of utilizing purely immutable data within a GUI framework and suggests future work to mitigate these.en_US
dc.language.isoen_USen_US
dc.subjectImmutabilityen_US
dc.subjectImmutable dataen_US
dc.subjectSeparation of concernsen_US
dc.subjectElm programmingen_US
dc.subjectWidgetsen_US
dc.subjectWidget librariesen_US
dc.subjectDeclarative programmingen_US
dc.subjectDeclarative UIen_US
dc.subjectGUI programmingen_US
dc.subjectPurely immutable dataen_US
dc.subjectFunctional programmingen_US
dc.subjectStateless widgetsen_US
dc.subjectHistory of GUI programmingen_US
dc.subjectModel-view-updateen_US
dc.subjectArchitectural paradigmsen_US
dc.subjectStructural sharingen_US
dc.titleDo Widget Libraries Need Mutable Data?en_US
dc.typeThesisen_US
dc.contributor.departmentComputing and Softwareen_US
dc.description.degreetypeThesisen_US
dc.description.degreeMaster of Science (MSc)en_US
Appears in Collections:Open Access Dissertations and Theses

Files in This Item:
File Description SizeFormat 
Arumugasamy_AkshayKumar_finalsubmission2023August_MSc.pdf
Open Access
1.35 MBAdobe PDFView/Open
Show simple item record Statistics


Items in MacSphere are protected by copyright, with all rights reserved, unless otherwise indicated.

Sherman Centre for Digital Scholarship     McMaster University Libraries
©2022 McMaster University, 1280 Main Street West, Hamilton, Ontario L8S 4L8 | 905-525-9140 | Contact Us | Terms of Use & Privacy Policy | Feedback

Report Accessibility Issue