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.


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.

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.

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


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.


