Featured image of post Retarded programming

Retarded programming

Agile programming is dead. The era of retarded programming is upon us.

Is it me or have programming tools recently become bloated and unecessarily complicated?

Hear me out, I am not talking about AI becoming mainstream and young programmers learning to rely almost exclusively on AI. This is a good thing. It means that us older folk will have guaranteed jobs until retirement. I was getting worried there for a minute.

No, I am not talking about AI. I am talking about software projects procuring a gun, squarely aiming at their feet and happily pulling the trigger.

Yes, I am looking at you, front-end devs. I will no longer tolerate your insane takes on software development and practices. You clearly don’t know what you’re talking about. It’s Saturday, go invent another library / framework.

The amount of times I have been bitten in the ass by my framework of choice is so damn high I wish it was my bank balance. The modern JS framework makes no god-damn sense.

I originally started with Angular 1. It had just come out and a colleague of mine had difficulties with it. I tried to help them and in the process i learned some Angular. It seemed nice. A simple tool to abstract the common things that you usually deal with. But then Angular kept changing and changing. It felt like every month we had to maintain our codebase and upgrade all libraries. It was so hard to keep up with the changes. Don’t get me started on the f*cking documentation. Oh the humanity. 1000 versions and updates later it is impossible to search for documentation regarding an issue you are having or even some basic guides on how to structure / do stuff. There are 1000 websites offering examples for all the versions it is impossible to find the one you like.

And then Angular did it. They overstepped their boundary. While looking up how to do i18n I came across Angular’s way of internationalizing content which made no sense to me. I felt that the framework had made a design decision for me and I hated it for it. This was about Angular 14 or close to that.

I then decided to dump Angular and learn ReactJS.

After the initial shock of “you just write methods”, which is the most retarded thing I have encountered in my professional experience, and effects, which is about the most retarded way to model what happens in the browser, I learned enough to have a blueprint on how to develop. It was quick and efficient and the framework did not overstep its boundary.

Then, for some strange reason, they decided to switch to using NextJS. Why? we will never know. Then came the server-generated stuff. Remember the 00s? We have solved this problem before. Oh, you weren’t alive back then. I get it. A simple google search would convince you that you are headed towards a place you don’t want to be. What? you want to sell idiot front-end developers back-end hosting? Oh, now it makes sense!

So now you have created the problem and the solution. Smart.

This post was inspired by my disdain of front-end programming but does does not exclude other software practices.

What? You use neovim? You dedicated 25 man days to set up your development environment just because ThePrimeagen uses it? That’s kinda retarded if you ask me.

What? You are a Java developer and only write completely unreadable code with streams?

What? You have 100% code coverage? What good does that do your retarded little project?

What? You use Agile methodologies? Does it help you at all? Have you measured it? Or are you doing it so that your company can employ 5 other people that contribute nothing at all?

I have worked at various orgs that have undergone the “Agile transformation”. At this point it’s the same org but another company was paid millions of euros to change people’s titles from “Project Manager” to “Product owner”.

Your programming language, your editor, your framework and software methodology should make sense to you. You are the one that is going to be developing / maintaining this thing. Your colleagues are going to be the ones reaping the benefits of these practices or suffering the consequences. You insist on producing obscure non readable code, which warrant all those beautiful comments that you always brag about.

Let me tell you something buddy, we are both programmers. I should be able to read your code and understand what your code is doing. Clean, concise code is self-documenting. The compiler / interpreter / runtime will happily read and execute your shitty code. I am the one that is going to suffer in order to read and maintain it.

It is your duty to your colleagues to produce clean, consise, self-documenting code. Name things correctly. Variables have meaning and my brain has a tiny buffer assigned to short-term memory. I simply cannot fit your shitty variable and method names into my brain and remember what they are trully supposed to do. You don’t pay by the byte. Stop acting like it.

Stop adopting every Youtuber / Influencer opinion as your own. They make money by getting you to listen to them. You don’t. You will benefit from a codebase that is stable.

As a rule of thumb do the following:

  • Keep things simple.
  • Be verbose. Name things appropriately. Don’t comment on what but on the why.
  • Do not abstract code if you don’t need to. You don’t need 10 layers of abstraction to do 1 thing. You may feel mighty but i am your colleagues are wishing you ill.
  • Keep your build system simple. You don’t want to be working on your build system but rather your project.
  • Figure out your deployment strategy before going live. Have automation ready for both CI and CD.
  • Pin software versions. You will thank me later.

While we’re at it, let’s address Spring Boot here. I want to be very clear: “Fuck convention over configuration”. Please quote me on that.

I recently started developing a solo personal project. While determining the technology behind the project I made the decision to use Python with Flask instead of Spring Boot. I am so happy with that decision now. I absolutely love developing in python. The whole ecosystem around Python, Flask etc. feels good. Small implementation libraries that you can opt to use to achieve a specific task. They are not bloated. They don’t force you into a specific paradigm; this is your job.

While I love python I am exclusively working with type hints. I find it maddening that programmers don’t rely on types when programming.

Moreover, while developing the front-end for this project, I wanted to use a SASS framework that I had used before: TailwindCSS. It is so needlessly complicated to download, install and configure a damn CSS framework nowadays. I now rely on Grok to produce a css-reset and basic layout / design system. I do most other things by hand. CSS is not hard. You don’t need 100kb of CSS framework and integration with your build system in order to add padding and center a fucking div on screen.

And when your build system decides to act up, you will not be able to deploy.


I realize I used the word retarded a lot. I don’t mean to cause any offence to anyone suffering from any kind of mental retardation. This is meant to be a humourous look into modern software development.

Built with Hugo
Theme Stack designed by Jimmy