4 ms·
7GUIs – A Notational Usability Benchmark for GUI Programming
- mmatants 12y agoVery interesting, although it took me a second reading to understand that it is about dev framework (source code) usability, not the resulting task interface UX usability itself. Given how "usability" as a word is conventionally applied to end-user experience and not developer workflow, I wonder if "productivity" is a clearer term to use instead. [edited for grammar]
- paulojreis 12y agoI agree. Talking about "Usability" in a GUI context clearly points to something else.
- ricardobeat 12y agoThe term usability is correctly used. GUI programming mostly consists of manipulating APIs - emphasis on the "I". They are not user-facing but still are interfaces.
- doorhammer 12y agoI don't think the parent is saying that the title is definitionally/grammatically incorrect. I think they're saying that it's not the typical/idiomatic use of the word when used in the context of a GUI. I got the same misimpression when I initially read it. I don't think it's bad or crazy, or says anything about the project at all (it looks like a cool project). I mostly say this to note that the parent wasn't the only one that was a little confused by the title.
- omaranto 12y agoAren't developers the end-users of GUI frameworks?
- acbart 12y agoWhat about GUIs that need to dynamically create and destroy components at runtime?
- blt 12y agoThis is a very good idea. Similar to Rosetta Code for GUIs. They do a good job explaining the task specifications and the attributes of the framework that each task intends to test/reveal. I think they should add a task where events outside the user's control can affect the GUI state in non-trival ways. For example, a control panel for a piece of hardware that could be disconnected at any moment, or a remote file viewer where the server can take away the user's rights to view a file while they are viewing it. This makes GUIs more challenging in my experience.
- ww520 12y agoThese are pretty good criteria for evaluation. I found myself using 5 of the 7 patterns from time to time in implementing UI.
- amelius 12y agoHow about: - implementing a text editor - implementing a rich text editor - implementing a web browser
- zefei 12y agoNone of these are related with GUI frameworks (such as Swing, QT). They rely on lower graphic constructs, and are suitable at showing off graphic libraries (such as Cairo, Skia).
- columbo 12y agoGreat idea! I understand there are only seven options (hence the name) but I'd suggest adding a music playlist as an item. It's easy to describe and would cover multiple GUI elements: button groups (forward,back,start,pause), display list (what is in the playlist, what is currently playing) and interactivity (drag and drop to re-order).
- miguelrochefort 12y agoSome additional GUI toolkits with which 7GUIs could be implemented: - UIKit with AutoLayout (iOS, Mac OS) - JS/HTML/CSS with Flexbox and/or React (web) - XAML/WPF (Windows 8, Windows Phone, Xamarin.Forms)
- miguelrochefort 12y agoI was just reading this thread [1] this morning, and spent the rest of the day looking for layout languages, GUI toolkits, and common layout examples/patterns online. I was effectively looking for some sort of "Rosetta Stone of UI patterns", and there this lands on HN's home page. The timing couldn't have been better. I'll watch this repository closely, hoping for an unusual solution to wow me. At the moment, I feel like Elm is the most unusual of the bunch. [1] https://news.ycombinator.com/item?id=7986612 https://news.ycombinator.com/item?id=7986612
- newgame 12y agoVery cool to see my master's project here on hn! Let me give you some background information. The idea for 7GUIs was born while I was writing my master's thesis Comparison of Object-Oriented and Functional Programming for GUI Development[1]. My advisor and I first agreed to compare Java7/Swing and Clojure/Seesaw. That's the reason why you see these implementations in the repository. Over the course of writing the thesis we changed the scope to compare JavaFX in Java and Scala as well as some novel FRP-inspired frameworks and all that with a GUI _programming_ usability benchmark which I named 7GUIs. I received great input from my expert reviewers, especially Tomas Mikula[2]. Anyway, 7GUIs is work in progress although nowadays I have much less time to work on it (not studying anymore but working). Not all implementations are complete (e.g. Android/Elm) and I'm sure the existing ones can be improved. So I'd be very happy if others would help to extend 7GUIs with more implementations or analyses. I still want to try out other approaches myself and compare them with 7GUIs but again time is limited sadly. You can find much more information in the thesis[1] if you're interested. I've also written a short overview blog post[3] that deals with Reactive GUI Programming. [1]: http://www.eugenkiss.com/projects/thesis.pdf http://www.eugenkiss.com/projects/thesis.pdf [2]: http://tomasmikula.github.io/blog/ http://tomasmikula.github.io/blog/ [3]: http://www.eugenkiss.com/b/overview-of-reactive-gui-programming/ http://www.eugenkiss.com/b/overview-of-reactive-gui-programm...
- davedx 12y agoI'd love to see Om implementations!