好的软件知道何时停止。
Good software knows when to stop

原始链接: https://ogirardot.writizzy.com/p/good-software-knows-when-to-stop

这篇内容反思了“功能蔓延”的危险以及软件保持其核心目的的重要性。它以一个幽默的虚构场景开篇,标准`ls`命令被一个由人工智能驱动、过于复杂的“自适应列表系统”(`als`)所取代。 作者以此为跳板,论证反对仅仅为了创新而创新。他们借鉴了37Signals的《Getting Real》一书中的原则,提倡专注的产品设计:理解用户*为什么*需要某样东西,优先考虑核心功能,并拥抱约束。 作者警告当前将成熟工具重新命名为“人工智能”的趋势,仅仅是为了保持相关性。他们认为,维护一个可靠的标准通常比追逐“最新热门事物”更有价值。最终,好的软件知道自己的角色,并抵制成为对所有人都适用的一切的冲动。

一篇名为“好的软件知道何时停止”的文章引发了 Hacker News 的讨论,中心议题是人工智能日益融入软件以及其潜在的弊端。 用户们讨论了未来开发者可能花费更多时间来规避人工智能的伦理限制,而非实际编写代码,以及保护像 Linux 发行版这样的“非人工智能化”软件,作为应对潜在人工智能相关中断的保障。 对话还涉及当前人工智能炒作周期,以 Oracle 将其数据库更名为“Oracle AI Database”为例——一些人预测随着人工智能普及,这一举动将被逆转。一个反复出现的主题是担心实用功能正在被牺牲,以换取营销和内部晋升。最终,评论反映了对人工智能在软件开发未来中所扮演角色的既着迷又担忧。
相关文章

原文

it’s 9AM, you’re ready to upgrade your favorite Linux distribution and packages to their latest versions, the process goes smoothly and after a reboot your machine is now up-to-date. You start going as usual about your day and then when trying to list the content of a directory on your machine, something strange happens, the routinely boring behavior you’re used to of ls surprises you, and not for the best :

javascript

$ ls

┌──────────────────────────────────────────────────────────────────────┐
│                                                                      │
NOTICE: The legacy utility `ls` has evolved.                        │
│                                                                      │
│         _       _                                                    │
/ \   __| | ___                                               │
/ _ \ / _` |/ _ \ │      / ___ \ (_| |  __/                                              │
│     /_/   \_\__,_|\___|                                              │
│                                                                      │
│              AI-Powered Directory Intelligence™                      │
│                                                                      │
│  Hello.                                                              │
│                                                                      │
│  The classic `ls` command has reached the end of its lifecycle.      │
│  For decades it faithfully listed files.                             │
│  But listing is no longer enough.                                    │
│                                                                      │
│  The filesystem deserves to be *understood*.                         │
│                                                                      │
│  Introducing:                                                        │
│                                                                      │
│        █████╗ ██╗     ███████╗                                       │
│       ██╔══██╗██║     ██╔════╝                                       │
│       ███████║██║     ███████╗                                       │
│       ██╔══██║██║     ╚════██║                                       │
│       ██║  ██║███████╗███████║                                       │
│       ╚═╝  ╚═╝╚══════╝╚══════╝                                       │
│                                                                      │
│                       Adaptive Listing System                        │
│                                                                      │
│  `als` doesn't just show files.                                      │
│  It predicts which ones you meant.                                   │
│  It ranks them.                                                      │
│  It understands you.                                                 │
│                                                                      │
│  Your current `ls` binary will remain functional for:                │
│                                                                      │
│                        30 days                                       │
│                                                                      │
│  After this period:                                                  │
│      • `ls` will be deprecated                                       │
│      • updates will cease                                            │
│      • directory awareness will be disabled                          │
│                                                                      │
│  You can begin your transition today:                                │
│                                                                      │
│      $ als --trial                                                   │
│                                                                      │
│  (30-day free evaluation period)                                     │
│                                                                      │
│  Thank you for participating in the future of file awareness.        │
│                                                                      │
│                         — The `ls` Team                              │
│                           (now part of ALS)                          │
│                                                                      │
└──────────────────────────────────────────────────────────────────────┘

Fortunately, this does not happen… Good software knows the purpose it serves, it does not try to do everything, it knows when to stop and what to improve.

One of the most counterintuitive, for the maximalist human psyche we have, is to know the role and place your software fits in and to decide when what you want to do next fits with, what you nowadays call the “product vision”, or if it’s just another project, another tool.

For the oldest amongst us this kind of lessons came from 37Signals, the founders of Basecamp’s (the project management tool) books Rework and Getting Real - two books I’d recommend and especially Getting Real for product design, whose lessons I could sum up by :

  • Constraints are advantages — small teams, tight budgets, and limited scope force better decisions
  • Ignore feature requests — don't build what users ask for; understand the underlying problem instead
  • Ship early, ship often — a half-product that's real beats a perfect product that's vaporware
  • Epicenter design — start with the core interface/interaction, not the edges (nav, footer, etc.)
  • Say no by default — every feature has a hidden cost: complexity, maintenance, edge cases
  • Scratch your own itch — build something you yourself need; you'll make better decisions

At the time where Minio becomes AIStor and even Oracle Database becomes the Oracle AI Database, I think a little reminder that not everything has to change drastically and that being the de facto standard for a given problem has more value than branding yourself as the new hot thing no-one expected.

联系我们 contact @ memedata.com