Software is becoming increasingly effective

Software is becoming more and more effective ... but!

We all love bar charts where one bar is bigger than the other ;). But it's not just on (marketing) paper that software is becoming more and more effective. But what are the consequences of this for the sustainability of software?

In software development, there is a constant optimization of technologies that seems to have no end. Technologies that serve as a basis for other technologies have a particularly large effect. For example, new programming languages such as Zig or Rust have ensured that many technologies such as databases are rethought and implemented in these languages. The result is a new generation of software with fewer bugs and more effective use of resources. If existing standards and interfaces are adhered to, the changeover only involves a small amount of effort. Here are a few examples:


Bun is a new platform for Javascript applications and thus competes with Deno (second generation) and Node.js (first generation). Bun is developed with the Zig language.

Requests per second - Deno vs Node
https://deno.land
Requests per second - Bun vs Deno vs Node
https://bun.sh

Dragonfly is a Redis-compatible key-value database that is designed to perform millions of queries per second. This is achieved by Dragonfly making better use of available resources such as CPU and memory.

Queries per second - key value databases in comparison
https://github.com/dragonflydb/dragonfly

TigerBeetle is an accounting database that can perform over one million transactions, enabling new business models that previously required more effort (e.g. microtransactions). TigerBeetle is developed with the Zig language.

Tigerbeetle advertises better efficiency
https://tigerbeetle.com

Unikernels are images that combine applications and a minimal operating system. The reduced overhead is intended to improve effectiveness and security.

Unikraft promises more power with fewer resources
https://unikraft.org
By omitting entire layers, Nanos aims to be more effective
https://nanos.org and https://nanovms.com

Of course, such comparisons often sound too good to be true and must always be taken with a grain of salt. In essence, this development solves many of our problems, but it also harbors dangers that we should be aware of. The increase in effectiveness usually goes hand in hand with the rebound effect.


Increases in efficiency often reduce the costs of products or services. This can lead to a change in user behavior: They consume more - the original savings are partially canceled out. This effect is known as a rebound. (source)


Java developers in particular are probably very familiar with this effect. The Java programming language and the associated ecosystem make it easy to develop all kinds of software without having to pay attention to things such as memory management. The result was many new applications with great functions. However, these applications were also known to use enormous amounts of RAM, which only became acceptable when RAM became available at low cost. This was not necessary to provide the actual functionality.

It is therefore important that a) we always bear this effect in mind and b) that we continuously counteract it, e.g. by questioning whether something is necessary at all.

Markus Hettich

About ME

All contributions from Markus Hettich

Learn more

Further information on our website and in our newsletter

Arrow up