
3 min read
AI is not abstraction
The concept of abstraction has been applied to software engineering. But it never made sense. Software is flexible. Software can be changed even after it has been put into production.
Software is flexible 🌊
The layer of abstraction in software is always moving. The definition of software abstraction has nothing in common with the definition of abstraction in engineering a physical product.
Software is fluid, always changing, often hard to reproduce, it is configurable, riddled with bugs and most of all - it has to be made sense of. As the code base changes you always have update your inner model of the how the software works.
We intend to write more code than less. We tend to make software more complex than simple. We add more and more features than deprecating them. Everything is done under the umbrella of increasing productivity.
However, developing software does not have to be more productive - it has to be contained.
The bloat is real 🍔
Once you start engineering software with help of AI you will experience a productivity gain. Not for the overall production of software, but for solving defined problems in a well known domain. Problems such as bug fixing, commenting, documenting, boiler-plating and explaining are straightforward tasks for AIs.
As a developer you get hooked on running agents in your code base. Solving multiple problems at once. Trying new strategies like git work trees to run multiple agents at the same time.
The sense of productivity and squishing those bugs overwhelms you. This works until you hit the ceiling. The context window, the amount of token to burn through, the invoice, the dependency juggling, the agent getting lost, these are hard limit and put a stop to the trip.
But what is really happening here? Lets take a step back and have look. Actually you are not improving the software product, you are bloating the code base! It gets bigger and bigger. There are not limitations for adding new features. The computing resources are are limitless. Of course this makes sense, you are getting paid to produce new features, not to write smart code.
So this apparent level of abstraction and productivity gain in reality is just bloat. A waste of resources.
Environmental resources 🏭
Producing software with Big Tech services has now a direct link to environmental damage. It is well documented that their data centers are not not sustainable and are not using sustainable energy sources. They have become an environmental hazard.
In regards to the climate crisis you have a moral obligation to not use their data centers.
So what if we treat AI as what it is. An environmental hazard.
Safety procedures ☢️
Read this part if you failed to contain the AI and a agent chain reactions has destroyed your code base.
In case your code is radiating and has been polluted by AI-written code, it is time to run the contamination protocols and safety procedures.
First, isolate the AI-written code. Containerize the application and sandbox the execution environment. Add warnings and comments that can be understood year after. Treat your software the same way as you would treat legacy systems.
Once contained bury the code the deepest /dev/null you can find. Never touch, but also never forget. Future generations of coders might be able to untangle and decompose the mess you have created.
Tags: llm , artifical , intelligence , bloat , abstraction , environment
Edit this page
Show statistic for this page