Losing Control of Code with AI and High-Level Abstractions

“When code is written using artificial intelligence, you completely lose control of your code,” say some developers.
I’ll give you one slide for our internal presentation as an example.

If we look at the approximate historical periods of change in software engineering, we see transitions where first we wrote assembly instructions, then high-level programming languages emerged. It would seem that this uses processors so inefficiently, because now, when you write in a high-level language, you don’t control the number of processor directives passed to it. This means it receives many unnecessary directives.

A little more time passed, and we developed object-oriented programming and started using frameworks. Here, too, we can say that you lose control of your code, because you begin using even higher-level abstractions. The purpose of these abstractions is to speed up development, but the developer doesn’t always know what’s actually happening within these frameworks or the reused code.

Then another ten years passed, and millions of mid-skilled employees began entering software engineering because new programming languages eliminated the need for manual memory management, which was one of the most difficult barriers to entry for anyone into programming. Manual memory management required a deep understanding of how a program worked in the operating system’s memory.

And so, operating systems began cleaning up after programmers, and programmers quickly stopped worrying about how memory was spent. Not to mention that no one remembered how many unnecessary processor directives were sent to the processor.

Today, we are moving on to the next stage, where we are interested in the end result. And it’s not that we remember the number of processor directives; we’re completely indifferent to how the code is written. The end product of any software engineering project is a working application or service, and it doesn’t matter how it’s written internally, as long as the way it’s written and the documentation that’s created around it allows future models to further develop that product.