The Lindy Effect for Software

It’s not obvious when you begin a career in software development, but over time it becomes increasely clear that our industry is fad driven. Those who are riding the wave often have the sense that their fad is particularly innovative, groundbreaking even, but time usually tells a different story.

As I’ve gotten older and gained more experienced I’ve become increasingly partial to the idea of “time as a filter” of quality. This is largely due to the observation that most things don’t last and things which survive in changing context tend to have properties that make them robust, or even anti-fragile.

Sometimes this is expressed as the “Lindy Effect” which states that the life expectency of a thing is proportional to it’s age. This sounds odd at first but makes some intuitive sense in that we have more certainty that things that have been around a long time will continue to stick around, while things that are popular now might be forgotten in a few years.

It’s interesting to consider how this might apply to software development, which is a very young industry comparitively. We have also have a very high churn of ideas, languages and frameworks compared with other industries.

Given how young many technologies are it’s hard to say how Rust, Kotlin, Julia, React, Svelte, microservices and NoSQL will fair in 10 years time. That being said, I think there are technologies that we can expect to still be relevant in 10, 20 or 30 years. In this list I’d include:

Looking through this list there is an obvious C/Unix and internet influence. It’s interesting that Nginx, Redis, SQLite and PostgreSQL are all implemented in C and not C++, given the argument that C is generally less safe than C++.