Update
This commit is contained in:
parent
f0c3f6aecf
commit
e54040171b
24 changed files with 159 additions and 23 deletions
8
gui.md
8
gui.md
|
@ -1,12 +1,12 @@
|
|||
# Graphical User Interface
|
||||
|
||||
Graphical user interface (GUI) is a visual [user interface](ui.md) that uses images; basically this includes icons, colors, shapes, mouse cursor, windows, buttons, pictures etc. This stands in contrast with [text user interface](tui.md) (TUI) which is also visual but only uses text for communication.
|
||||
Graphical user interface (GUI) is a visual [user interface](ui.md) that uses graphics such as images and geometrical shapes. This stands in contrast with [text user interface](tui.md) (TUI) which is also visual but only uses text for communication.
|
||||
|
||||
Expert computer users normally frown upon GUI because it is the "noobish", inefficient, limiting, hard to automate way of interacting with computer. GUI brings [complexity](complexity.md) and [bloat](bloat.md), they are slow, inefficient and distracting. We try no to use them and prefer the [command line](cli.md).
|
||||
Expert computer users normally frown upon GUI because it is the "noobish", inefficient, limiting, cumbersome, hard to automate way of interacting with computer. GUI brings [complexity](complexity.md) and [bloat](bloat.md), they are slow, inefficient and distracting. We try no to use them and prefer the [command line](cli.md).
|
||||
|
||||
GUIs mostly use [callback](callback.md)-based programming, which again is more complicated than standard polling non-interactive I/O.
|
||||
|
||||
## How and When to Do GUI
|
||||
## How And When To Say Yes To GUI
|
||||
|
||||
GUI is not forbidden, it has its place, but today it's way too overused -- it should be used only if completely necessary (e.g. in a painting program) or as a completely optional thing build upon a more [suckless](suckless.md) text interface or [API](api.md). So remember: first create a program working without GUI and only then consider creating an optional GUI [frontend](frontend.md).
|
||||
|
||||
|
@ -17,3 +17,5 @@ The ergonomics and aesthetic design of GUIs has its own field and can't be cover
|
|||
- Don't have too many elements (buttons etc.) at the screen at once, it's confusing as hell and drives noobs away.
|
||||
- Things must be intuitive, i.e. behave in a way that they normally do (e.g. main menu should be at the top of the window, not the bottom etc.).
|
||||
- Just use your brain. If a button is important and often used, it should probably be bigger than a button that's used almost never, etc.
|
||||
|
||||
The million dollar question is: **which GUI framework to use?** Ideally none. GUI is just pixels, buttons are just rectangles; make your GUI simple enough so that you don't need any shitty abstraction such as widget hierarchies etc. If you absolutely need some framework, look for a suckless one; e.g. [nuklear](nuklear.md) is worth checking out.
|
Loading…
Add table
Add a link
Reference in a new issue