2 ms·
Complex applications are the worst of both worlds. They don't do things intuitively, they invent unconventional UI paradigms, and they are extensively configura
by chipsy 11y ago
Complex applications are the worst of both worlds. They don't do things intuitively, they invent unconventional UI paradigms, and they are extensively configurable, so they need a manual that begins with "how to read this manual".
The workshop analogy builds on a false premise of low configuration equating to underpowered function. A pro will use a lot of different speciality tools that have no or minimal configuration, vs. a Swiss Army Knife that is mediocre at everything. In the same way, Unix-style workflows are very "shoot yourself in the foot" stuff, but formal configuration of each tool is minimal.
The best thing a complex application can do is be a general-purpose programming API at its core, with common workflows surfaced as a polished, simpified UI. Each of those workflows is its own application, with internal developer documentation to orient someone who wants to hack on it. Then the 80% cases are solved by default, and the 99% cases("this thing doesn't let me configure x") are solved by copy-pasting the application code and modifying a single line based on a Stack Overflow answer. And everything beyond that, you had to code anyway, so you enjoy a real programming environment with documentation instead, and hopefully a hook into the broader ecosystem so that the API is available throughout different coding environments.
Sadly, almost no application intentionally evolves in this way.
- KayEss 11y agoAutoCAD always has. The GUI is really nice, in that it understands how to build the LISP commands that actually implement the system. You can put in a template LISP command and tell it where you want a 2d point, or a distance and the GUI collects these and fills in the values. It can even do embedded calls to generate these from other things. It's extremely flexible and allows you to arbitrarily build new commands that are easy to use. I automated a workflow for a drafting studio I worked at in 1989 and reduced the time taken to complete a drawing from three days to three hours just by writing new LISP commands for all of the most common things we did and wiring them up to the menu on the tablets we had.