7GUIs – A Notational Usability Benchmark for GUI Programming
github.com
github.com
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
[2]: http://tomasmikula.github.io/blog/
[3]: http://www.eugenkiss.com/b/overview-of-reactive-gui-programm...
[edited for grammar]
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.
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.
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.
- UIKit with AutoLayout (iOS, Mac OS)
- JS/HTML/CSS with Flexbox and/or React (web)
- XAML/WPF (Windows 8, Windows Phone, Xamarin.Forms)
- implementing a text editor
- implementing a rich text editor
- implementing a web browser