I Underestimated The Importance of Tooling

August 13, 2022

Over the last year I experimented with different IDEs. One of my tasks at work is maintaining a react application, which tempted me to use VS Code for developing it - writing Typescript in an IDE written in JavaScript felt like a good fit.

A pegboard lined with woodworking hand tools — planes, chisels, and files, each in its place.

The development experience I’m having since is vastly superior out of the box compared to my previous neovim setup, which I’ve spent hours tuning.

Similarly, I recently started using PyCharm writing code for my research. I work with a rather sizeable codebase. When I get wrong states, it is almost impossible to debug them without a debugger.

Previously, when I developed with neovim, I would debug with python -m pdb main.py, manually setting breakpoint()s or using set_trace() to get an equivalent behavior in jupyter lab. Then I learned about PyCharms integrated debugger. Which provides a nice graphical interface. It shows all variables‘ values at a given breakpoint. It lets me move up and down the callstack. And it spawns a python repl which lets me experiment with the program in a given state.

I have no idea how I was able to work without this tooling before. I still love neovim. Working in the terminal gives me comfort, I feel productive and at home. And using neovim to quickly edit files in that environment is a great fit. The startup is almost instant, and I know all shortcuts really well. But whenever I write complex code, I don’t want to miss the benefits an IDE provides me with.

Photo by Barn Images on Unsplash