Skip to main content

Too much abstraction

Development tools, frameworks and high level languages are great when they work. They make developing new software much faster and easier. But at their complexity they are also fragile and inflexible.

The possibilities they offer can also become a limiting factor. If they don't offer something out of the box, a less experienced developer might not be skilled enough to do something outside their scope. Even the seniors struggle to understand what is going on under the hood.

The complexity also brings bloat. All the dependencies needed, and even those not necessarily needed are all bundled together. It's hard to optimize the application size for example when you don't know what is actually needed.

Of course this all is necessary in todays software development. There is constant need for more advanced software. And without multiple level of abstraction they would be impossible to grasp by any software engineer no matter how skilled.

While this lowers the barrier for more people being able to create software it also leads to software that os using unnecessary amounts of resources and is not stable enough.

Even in the professional development the speed of delivery often goes before the lightness and stability of the code.