Jayant Godse

I Hate Green Play Buttons

16-06-2026

Oh I have never done it that way, I have always used the Run button in Visual Studio…

These were the words that killed me a little on the inside when I first heard them. Here I was, banging my head on a wall, trying to debug why some convoluted system, with multiple different containerized parts is not working. Trying to piece together some archaic Docker compose files that seemed as though they had been written in pig latin. I finally relented and went to go ask my senior what they were doing with this stuff that I was looking at? Why can I not seem to run any of the tools that I am trying to run? Why is this one service not spinning up on startup?

Just use the Green Play Button.

I knew right there that I was probably never going to be able to write this feature that I had been tasked to do. I suppose it’s one thing to make a complex application with relatively no documentation. I have been guilty of doing the exact same in the past. However, not knowing how the things you are writing get built, is just a whole different kind of ‘out of touch’ that I couldn’t handle.

Fuck GUI Build Systems

The green button scares me. It scares me because it hides things. It refuses to show you what it’s doing in the background to get your program to run. I have already praised CS50 for its approach to telling you how to build your applications. Everything being very clearly done through the terminal, using commands that do exactly what you tell them to do. This method is not devoid of its flaws. It’s a bit slower, you have to remember a bunch of boilerplate things along with all the feature flags1 but, you have complete knowledge of what you are doing in order to run your program.

I was told that as I mature in my career as a developer, I will find magic buttons much more appealing, however I just can’t see that happening. There simply could be no universe where I’d be willing to give up the control that I get from running something from the terminal. Especially if it purposefully goes behind my back, making magic links between binaries, and pulling packages without my knowledge to slap together an app that I don’t understand.

Please Make Building Things Simple

When you are writing a piece of code, especially in a commercial setting, I believe you have a responsibility to ensure that the code you are writing is easy to contribute to for other people.

This is something that is already enforced in the OSS community, since doing anything otherwise would stop people from contributing to your project at all. However, it seems like this isn’t the case in corpo. You pile together hack after hack, building a working product, but never considering that there will be other people who may be onboarded to your project.

Perhaps my principle gripe with these kinds of build systems is in fact the people who turn to them. The people who never took the time to look at how programs are compiled/ran in their tool of choice. From first principles. People who saw the green play button do what they wanted, and never looked further. People who still don’t want to look further.

They are the ones who end up making things that neither they understand, nor can explain. And this leads to issues for anyone downstream.


Footnotes

  1. This is easily remedied by using aliases and other scripting tools like Just