All Articles

I Underestimated The Importance of Tooling

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.

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 sizable 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.