amyjko / user-interface-software-and-technology

A book surveying the literature on user interface software and technology.
56 stars 8 forks source link

Architecture interfaces critique Winter 2020 #109

Closed greglnelson closed 3 years ago

greglnelson commented 4 years ago

Critique: After reading Chapter 6, I really like how you’ve drawn a sketch of the buttons with the different states and I think the paragraph describing it is very clear. I was wondering if it might also make sense to allude to how this is somewhat similar to the way in which designers need to design components with different states. It might not be relevant but that’s the analogy my brain made when I read this section. Additionally, I noticed a potential typo/sentence improvement that could be made in the section where you discuss event propagation - the first bullet for “mouse.” You say: “All of these are emitted as discrete events to operating system.” Maybe this could be rewritten as: “All of these are emitted as discrete events to the operating system.” The final thing I think might be improved about this chapter would be to have images or drawings of the descriptions for both the mouse and keyboard bullets to make it more clear what this actually looks like in real life. I found these ideas to be a little abstract and had a hard time visualizing how an event may be propagated to its parent when using a mouse for example. — I found this chapter interesting because the discussion of states helped me understand more deeply why programming needs to account for so many possibilities - there are different ways to interact with an element, and each one of those sends a message of some kind to the system. I also finally understand why many things are referred to as “events” in some programming languages. Here are some unsolicited suggestions that I’d like to submit in lieu of a quiz:

  1. Definitions: I felt that knowledge of a few technical definitions beyond what I had was assumed in this chapter. State machine: I would have liked a definition for “state machine” apart from simply an example of one. I wish I had more information about what exactly makes something a “state machine.” Is it simply the act of having multiple state possibilities? Object: Similarly, when discussing the model/view/controller concept, the “text field object” is mentioned. A note on what an object means in programming might be helpful here…is it a reference to object-oriented programming and an ‘object’ in that sense? Or, does this refer to a literal object/item as humans think of them? Root and Container: Finally, what makes something a “root” widget/object? The example of the window as a root object could cause confusion with the concept of a container, especially for someone with little programming experience.  
    1. Copyediting suggestions: • Paragraph 9: “One can think of MVC as a division of responsibilities between storing data, showing data, and manging the interaction between the storage and the display.” -> ‘Managing’ is misspelled here. • Paragraph 9 (after the images of model, view, and controller): “(In many user interface toolits, this wouldn't be stored in a separate database, but in the text field object in memory).” -> ‘Toolkits’ is misspelled here.
    2. Model/View/Controller: Towards the end of the chapter, we learn that model/view/controller is a universal paradigm across interfaces, including VUIs. I would have liked more examples of how MVC applies to other parts of interfaces - for example, what is the controller in a VUI doing?