-- Leo's gemini proxy

-- Connecting to gemlog.blue:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

User Interfaces

What ARE User Interfaces?

These are programs that allow humans and computers to interact.


We can reassert the widely acknowledged as user interfaces:

Terminals: Text input, text output. It doesn't get much more basic than this.

Graphical menus: Clicks and screen taps as input, images and shapes as output.

However, we can also consider more things to be user interfaces:

Compilers: The source code is the input, and, indirectly, the result of the machine code running is the output.

Drivers: By my (perhaps overly generous) definition, a driver would fit the description of a program that allows human-computer interaction, in that it is what allows the computer system to 'read from' and 'write to' peripheral devices.


In fact, a large proportion of all the software that runs on a computer concerns communication with humans, and so could be considered a user interface, since computers wouldn't be much use to us otherwise.


Comparisons

> The best user interface should allow the most efficient transfer of information between man and machine.

-- Me, 2021.


This provides an interesting model to think about how different user interfaces compare.

If a user interface allows the same meaning to be conveyed with less effort either for the human or the computer, it could be said to be 'better'.


Consider programming, for example.

Most programming languages are textual, for all kinds of unspeakably obvious reasons.

As such, we need a user interface for a human to input that text.

If we work based on the rule of thumb of maximising meaning whilst minimising effort, the user interface should allow the human to most easily perform the most common task: editing. Due to humans, unlike computers, being fallible and prone to making mistakes, we will most often want to change existing text, and not just within code.

Additionally, programming languages have precisely defined and well-documented structure to them, and we may wish to make changes based on this structure.


This is where I start to talk about Vim. 5 stars if you saw it coming...


Vim allows its user to combine key-strokes to convey abstract changes they wish to make highly efficiently.

For example, say I have a string in my program and wish to change its value:

string protocol = "http";

Supposing my cursor was magically at the start of this line of code, what do I want to do?

1. Move to the value of the string.

2. Change that value.


With Vim, I can express each of these actions with just a few key presses:

1. To move to the value, we 'find' 'quote-mark': f "

2. To change the value, we 'change' 'inside' 'quotes': c i "

string protocol = "gemini";

Even this example is contrived and sub-optimal, but without the power of Vim, one might:

1. Move the mouse cursor to the string's value,

2. Drag across it to select.

3. Delete the old text.

4. Finally enter the new value.


Using Vim allows the same change (or meaning) to be made more quickly, and with fewer inputs (minimising effort), meeting the criteria for a 'good user interface'.


Incidentally, I used Vim to edit this gem log!


Colour Schemes

> Studies show that light theme makes text more readable.

-- Spurious claimant, 2021.


Seriously, look it up and ignore the stigma.

I've even started using Discord light theme!


This was just the first result when I searched for 'dark theme vs light theme readability' on the web:

https://www.nngroup.com/articles/dark-mode/

-- Response ended

-- Page fetched on Sun Jun 2 10:57:36 2024