TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Bugs and Battleships (2011)

12 点作者 gklitt大约 5 年前

1 comment

hyperman1大约 5 年前
A bit of a tangent, but I notice a bit of a problem with the definition of a good program: Having a long lifespan is the hallmark of a bad program, not a good one.<p>Compare a good program and a bad program: The good one is easy to adapt, and to decouple. The bad one is an incomprehensible mess with tentacles sprawling in all kinds of weird directions.<p>This means over time it is very easy to change and decouple the good one, causing it to morph to a worse state or shrink. The bad one will resist these tendencies and stay unmodified in its place. Hence, the only way for a good program to survive is becoming worse.<p>This happens especially in enterprise environments: Every few years, someone enters and decides to change everything. This tends to happen irrespective of the value of the software.<p>It always turns out replacing horrible software will cost way to much, cause huge downtime, and the only person who stil dares touching it has no reason to change the situation and every reason to defend the fiefdom. Meanwhile, good software almost nevers survives the new manager syndrome or the hordes of fresh externals descending on it every few years to rearchitect and refactor it.<p>As a bonus, good software is by its nature a good training grounds for newbies, which rarely ends up making it better.<p>The end result is an evolutionary process where survival of the fittest ends up selecting for the worst of the worst software.