In order to ship features we use different programming languages. Sometimes we use multiple ones, depending on the phase we’re in and sometimes we use different languages at the same time for different problems (hammer meet nail?). Independently of which language you’re using—and there may be a number of reasons to prefer to one over the other—you are using the programming language in a certain way or style: if you are a Java developer, you might use (directly or indirectly) Maven or Gradle to build a JAR-like artefact. You may be used to wait, say, two odd minutes until you can launch that JAR and see the effect of the source code change of your latest iteration. If you’re, on the other hand, using Python or Node.js you’re kinda used to see the updated behavior in your code immediately, like, right after you hit the save button?

My point being that no matter which programming language you’re using, you’ve got a certain flow. Let me expand on this point a bit …

The Baseline

We typically spend some time to set up and customize our editor or IDE to our liking, from font size to integrations like source control such as Git or the preferred set of keyboard shortcuts. Once we feel “at home” with the programming environment—the editor or IDE and the programming languages—a certain flow emerges. For example, this flow may be: 1. add some lines of code, 2. save source code (potentially at this point also unit tests run automatically), 3. the resulting artefact is re-executed (depends on the language here, might be a hot-reload in case of an interpreted language, might need to kill and relaunch a binary), 4. see the result of the code change in action and/or debug code.