Previously:<p>2009 - 13 comments - <a href="https://news.ycombinator.com/item?id=600799">https://news.ycombinator.com/item?id=600799</a><p>And a dozen other submissions over the years including the first submission 17 years ago:<p><a href="https://news.ycombinator.com/item?id=8120">https://news.ycombinator.com/item?id=8120</a><p>With a single comment:<p>> This is possibly the best article on software design I have ever read. I would go as far as suggesting that it gets added to the YC recommended reading page.
My favorite insights:<p>- Most software design should focus on information graphic design, not interaction design<p>- The case study of Amazon’s book listings drives that point home<p>- Try using sentences to describe settings rather than have a list of toggles (illustrated with his BART widget)<p>- Instead of requiring interaction, make decisions for the user based on context
Hopefully on-device LLMs can use private history to predict user context.<p><i>> .. information software that learns from history is still rare. Typically, users can only hope for last-value prediction, if that. Most software wakes up each day with a fresh case of amnesia ... software that doesn’t learn from history dooms users to repeat it. And repeat it they will — tediously explaining their context, mouse click by mouse click, keystroke by keystroke, wasted hour by wasted hour. This is called interactivity.</i>
I don't find the division into categories Information software, Manipulation software, and then supposedly Communication software = Information software + Manipulation software that helpful. For me, creating is developing a model of something and making it explicit; I don't see this adequately represented in any of these three categories.
Great podcast episode on the paper <a href="https://futureofcoding.org/episodes/060.html" rel="nofollow">https://futureofcoding.org/episodes/060.html</a>