HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
eugenkiss
7guis
JavaScript2015–2021
eugenkiss / 7guis

7guis

7GUIs is a GUI programming usability benchmark.

8Distinct people
8Mentions
0Explicit recommenders
921GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

7GUIs is a GUI programming usability benchmark.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year8 dated mentions

Observed mentions: 2015-02-14 19:18:41 UTC to 2021-10-14 08:01:17 UTC.

0122015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 2 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2021

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC110
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC220
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC110

What Hacker News says

8 sources
graderjs·Oct 14, 2021Submission

Show HN: A New Implementation of the Seven GUIs Benchmark

7GUIs: https://github.com/eugenkiss/7guis My implementation: https://i5ik.github.io/_____/7guis/ I built this after seeing Brad Woods' work on Show HN. I wanted to do it because it was different to the other GUI benchmarks I had seen before such as RealWorld and Todo MVC. I liked how the original author wrote the description of the tasks and the challenges they were supposed to try to address and I appreciated that design and usability thinking, as well as the chance to flesh out and test a framework for how it could handle this. I also knew that GUI programming was one of my weaknesses so I wanted to push myself to learn more. The most challenging was Cells, and I procrastinated for a bit before getting into it. But actually the scripting side of that challenge was not as hard as just getting the markup right. I was also building a web c
Read the rest
omponents framework at the same time and using these challenges to develop and test the features of that framework. The most challenging thing there was figuring out how to get a good load time without displaying partially loaded GUI components. Basically this man keeping track of a components subcomponent dependencies and and marking the ancestor component as loaded only when all it's dependents and it's uncontent was loaded. In the case of cells which calls for 99 rows and 26 columns it ended up producing around 10,000 nodes which took quite a while to render in the browser and in my framework. It was a good chance to try to push the performance of that framework as far as it could go. A lot of time was spent in the performance tab of devtools. Something else that was important was getting a good load time while maintaining responsiveness on the main thread render across a range of devices. This was challenging because providing that responsiveness for lower end devices unavoidably sacrificed load time for higher spec devices that may not have had any lack of responsiveness at all. But I decided that I wanted responsiveness to be the priority and then to maximize the achievable load time given that constraint. I achieved this by splitting up the work of the big render using a function to insert asynchronous sleeps between bundles of work. The sleeps allowed the main thread to maintain some low frame rate of responsiveness while it completed the off screen rendering of the large component, without taking too long. The current version of the demo uses a small Cells component just to save time. This will be my only comment on this thread, if you want more info you can check out the framework repository: https://github.com/i5ik/_____
4 points · Open discussion
Taking a brief look at the react code [0] and comparing it with the svelte code [1], it appears the svelte code handles much less. For example the react example handles the following among others: - programmed to handle arbitrary conversion targets (probably the most verbosity here) - handles input validation - handles labels for inputs And some others. It would be very easy to spin up a similarly terse react example which doesn’t have that much bloat... I imagine it would also get bloated for Svelte as you handle more and more cases. I’d be interested to see a more complex Svelte example and a simpler react example. The WinForms example [3] would be super difficult to scale at any level because you’re hardcoding the location everywhere. I’d be interested to see a more modern UWP app on there to compare :) I do really enjoy the abstractio
Read the rest
ns React provides. I never experienced something quite like it in my time developing native iOS, Android, or Windows apps. I think bloat on the web is horrible for users for sure, but part of that is a lack of a better target for web development. You’re effectively stuck with some flavor of interpreted JS if you intend to build a complex interactive application on the web. It’d be nice if there was a compiled alternative. Plus, way too many people try to make their simple websites dynamic. If it’s static, render it server-side. - [0] React code for temperature conversion (https://github.com/andreasgruenh/7guis/blob/master/src/scree...) - [1] Svelte code for temperature conversion (https://github.com/sveltejs/v2.svelte.dev/blob/master/conten...) - [3] WinForms C# code (https://github.com/eugenkiss/7guis/blob/master/C%23-WinForms...)
In 7GUIs: A GUI Programming Benchmark (2018)
Red and Rebol already came up, which is what I answered with, to a question on Quora a couple years ago: https://www.quora.com/Why-is-using-a-GUI-in-most-of-all-prog... In that answer I link to the 7 GUIs project from Eugen Kiss: https://github.com/eugenkiss/7guis which I think tried to answer your question from an evaluative, example-based approach. What I like about it was that it kept the requirements simple, but moved beyond Hello World, so it's a bit more fair to systems that have a higher lower bound for minimal GUIs. For the last part of your question, think in terms of generality vs a DSL-based approach. A GUI system that is completely general, and can't make any assumptions, is naturally going to require more information for a given output. Once you narrow down the possibilities, and include defaults and the ability to configure
Read the rest
things for re-use (e.g. widget styles and themes), you can dramatically reduce the effort needed. Constraint based systems (e.g. Cassowary) are another way to go.
In Ask HN: Where are the GUI libraries that aren't bloated?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.