Hacker News new | ask | show | jobs
by mike_hearn 1326 days ago
You can have both. GUIs were a breakthrough because they enabled much better discoverability, allowed images in the UI and so on. But they were also designed to be fully keyboardable and low latency.

Web tech broke all that:

- UI was/still is very high latency. Keystrokes input whilst the browser is waiting do not buffer, unlike in classical mainframe/terminal designs. They're just lost or worse might randomly interrupt your current transaction.

- HTML has no concept of keyboard shortcuts, accelerator keys, menus, context menus, command lines and other power user features that allow regular users to go fast.

We adopted web tech even for productivity/crud apps, because browsers solved distribution at a time when Microsoft was badly dropping the ball on it. That solved problems for developers and allowed more rapid iteration, but ended up yielding lower productivity than older generations of apps for people who became highly skilled.

2 comments

Well browsers solved multiple other issues too: cross platform apps, updating all clients in a single place, sharing data between devices, and the most important for many developers - switching software from an ownership to a rental model, killing piracy, and easy access to user metrics and data.

All of these (except logging on to the same data from all my devices, which is nice) benefit the developer at the expense of the user.

> All of these (except logging on to the same data from all my devices, which is nice) benefit the developer at the expense of the user.

Glad you pointed that out. And, in the most prevalent application of Conway's law[0], those changes enabled and are entrenched by the "agile" practices in software development. Incremental work, continuous deployment, endless bugfixing and webapps fit each other like a glove (the latex kind that's used for deep examination of users' behavior).

It also enables data siloes and prevents any app from becoming a commodity - making software one of the strongest supplier-driven markets out there, which is why the frequent dismissal of legitimate complaints, "vote with your feet/wallet", does not work.

----

[0] - https://en.wikipedia.org/wiki/Conway%27s_law

Yes, "updating all clients in one place" is what I meant by distribution. Windows distribution suffered for many years from problems like:

- Very high latency

- No support for online updates

- Impossible to easily administer

Cross platform was much less of a big deal when web apps started to get big. Windows just dominated in that time. Not many people cared about macOS Classic back then and desktop UNIX didn't matter at all. Browsers were nonetheless way easier to deal with than Windows itself.

Agree that killing piracy was a really big part of it. Of course, you can implement core logic and shared databases with non-web apps too, and the web has a semi-equivalent problem in the form of ad blockers.

You missed privacy. The user lost privacy with webapps.
I figured that came under "easy access to user metrics and data", but I did consider some kind of rhyme linking piracy to privacy but it was a little early in the day to commit that sin. It's probably worth mentioning twice anyway.
> HTML has no concept of keyboard shortcuts, accelerator keys, menus, context menus, command lines and other power user features that allow regular users to go fast.

HTML has had a limited concept of accelerator keys for years, but it's not pretty:

https://developer.mozilla.org/en-US/docs/Web/HTML/Global_att...