软件领域的林迪效应
The Lindy effect in software

原始链接: https://www.clemsau.com/posts/the-lindy-effect-in-software/

“林迪效应”(Lindy Effect)认为,某事物存在的时间越长,它未来可能持续存在的时间就越长。在软件工程中,这意味着像 SQL 或 C 语言这样成熟、“无聊”的技术,通常比最新潮的替代品更安全、更可靠。 虽然创新必不可少,但选择成熟技术具有显著优势:经受过考验的稳定性、成熟的生态系统、可预测的性能以及更广泛的人才储备。依靠“林迪效应”验证过的基础,可以降低与未经检验的新事物相关的风险,例如潜在的隐蔽漏洞或不确定的长期支持。 为了有效地应用这一原则,工程师应在现代演进与可靠性之间寻求平衡: * **审慎采用:** 在投入使用前,评估新工具的长期可行性。 * **坚实基础:** 基于既定、经受时间考验的技术构建核心架构。 * **渐进式变革:** 优先选择演进式更新,而非风险极高的革命性大修。 通过偏向于长寿而非“最新”,开发者能够构建更具可持续性、可维护性和可靠性的系统。在一个以快速变革为特征的行业中,林迪效应是区分短期潮流与持久稳健基础设施的宝贵准则。

Hacker News 最新 | 过往 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 软件开发中的林迪效应 (clemsau.com) 4 点积分,由 ankitg12 发布于 1 小时前 | 隐藏 | 过往 | 收藏 | 1 条评论 | 帮助 Chu4eeno 11 分钟前 [–] 我觉得 Rust 才是新的 Java,而不是 Go。 不仅如此,大家还在用这种时髦的、内存安全且号称可移植的语言重写一切,在你的个人微基准测试里,它甚至比(写得烂的)C 语言还要快。 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

The longer a piece of clothing has been in trend, the safest it is to say it will last and stay in trend.

In the same fashion, if a book has been read through the last decades or centuries, it is unlikely it will become irrelevant soon, especially compared to the more recent books.

These are explained by a theory I find fascinating, the Lindy effect. It is a concept that suggest that the longer something has already existed or survived, the longer it’s expected to continue to exist or survive in the future.

What does the Lindy effect in software could mean ?#

Transposing it in software could mean that the longer a technology has been around, the most robust it could be and hence the better it is to bet on it in comparison to recent trendy tech.

Yes, I get it, software is not that old in the time of humanity, or at least not as old as watched or books. It IS great that both hardware and software are both evolving, and we obviously have to embrace change (those new Apple Silicon processors are indeed very sweet)

That doesn’t mean that this new tech that comes up with some groundbreaking benchmark is THE think you should migrate all your applications to, obviously not.

To be more explicit, when you choose boring tech, the benefits you get are among the followings:

  1. Stability and Reliability: Older technologies and programming languages that have withstood the test of time often offer greater stability and reliability. Bugs and vulnerabilities have been discovered and addressed over the years, making them more robust choices for critical applications.
  2. Mature Ecosystem: Established technologies typically boast a well-developed ecosystem with extensive documentation, libraries, and community support. This wealth of resources can be invaluable for software projects, streamlining development and troubleshooting processes.
  3. Predictable Performance: Older technologies have been battle-tested in numerous real-world scenarios, making their performance characteristics more predictable. This predictability is essential when building systems with strict performance requirements.
  4. Industry Acceptance: Technologies that have endured over time often enjoy widespread industry acceptance. This means that professionals proficient in these technologies are easier to find, making it simpler to build and maintain software using these established tools.
  5. Reduced Risk: Novelty in technology comes with inherent risks, such as undiscovered bugs, scalability challenges, or uncertain long-term support. Older technologies have a proven track record, reducing potential risks associated with adopting the latest fads.

The Lindy effect in software The longer a tech has been around, the more robust it is seen as compared to more recent ones, we often talk about a technology’s maturity The C language SQL has been around for a while, https://antonz.org/fancy-ql/ JS libraries seem to come and goes

I am personally all for going with Go instead of Java for an enterprise grade backend, but I understand how big software companies play the safest bet by choosing the latter, as they have been using it for decades.

SQL has been around since 1989, and it won’t leave us anytime soon (At least, I hope it has not when you read this).

C itself has been created in 1972, and people still using it in 2023 makes me confident in its projected relevance through time, whether other low level programming languages rise or not.

Applying the Lindy effect to software engineering#

This concept could become handy for software engineers to find to strike a balance between adopting new technologies and embracing time-tested ones. Some practical steps to incorporate this principle into your development process could be:

  1. Prudent Adoption: Evaluate new technologies carefully before incorporating them into your projects. Consider the potential benefits, risks, and long-term viability of the technology.
  2. Stick to Proven Foundations: Rely on established technologies and best practices for the core components of your software. These foundations will provide stability and form a reliable backbone for your application.
  3. Plan for Longevity: When designing software architectures, consider the impact of technology choices on the project’s long-term viability. Prioritize maintainability, compatibility, and sustainability.
  4. Embrace Evolution, Not Revolution: Instead of constantly rewriting or overhauling your software, aim to incrementally improve and update it over time. Evolutionary changes are often more manageable and less prone to introducing major issues.
联系我们 contact @ memedata.com