Discussion on: Why Are Some Developers so Allergic to IDEs?

waterlink profile image
Alex Fedorov Author

you are more interested in convincing people that they should be on an IDE, as opposed to a text editor, which that is a discussion/debate you are welcome to have, but doesn't seem as much an interest in the real reasoning

I thought I’m interested in convincing. Or rather I can’t put one and one together and understand just WHY someone wouldn’t use such a tool…

After a lot of comments I understood the following:

  • there are valid reasons (be it rational, or emotional)
  • now I want to convince people to do more refactoring in their day job: continuous refactoring. Without that IDE actually doesn’t provide enough value to make a painful steep-learning-curve switch.

And in other threads, I do learn a lot from people’s point of view, and I think I owe them to share my story and point of view. It’s up to them what to do about it.

You say that a paid tool can help me boost my productivity.. How? Because it has autocomplete? From my perspective, I think it says more about each of our own comfort and familiarity with the given choice that we have made. As someone who has used vim for countless edits and numerous years, I have a level of familiarity with it that goes beyond 'open file, save quit enter'.. I am familiar with the best way of managing plugins (for me, though it was actually added to vim with 8.0, so there might be some merit to it?), I have my leader macro mapped in a way that works for me. I know which plugins to use that suit my need, and I have used these plugins for a very long time. Tools like ctags? Yeah, vim supports that. Tools like git? Yeap, we have fugitive and magit too. Syntax highlighting? We have the newer python language servers, or we have classic syntax highlighting. Auto completion? Yeap, we can do that too. You can even setup color schemes based on file extension/type so that you have whatever setup you prefer. I know that there are refactoring tools for many languages in vim, but I have personally never used a refactoring tool with any of the languages I have used/written in.

That was my VIM experience for years as well, so I fully understand you.

I think, for me, there was a moment in time where I shifted my values. I started using more robust programming practices such as Clean Code/Architecture, Proper TDD, 100%-Pairing-instead-of-code-review, Real Continuous Integration, Trunk-based Development, and so on.

All these practices rely heavily on a lot of things, and one thing specifically: continuous refactoring. This is when you refactor the code every 2-5 minutes, and adapting the design of the software in the presence of new requirements is second nature to you, and it doesn’t take weeks of “pseudo-refactoring.”

Of course, if you practice continuous refactoring like this you need the tooling. For the language of my choice at a time, the maximum I could find was “rename refactoring.” Compare it to the set of automated refactorings that I’ve found later in the IDE: ground vs heaven.

It’s about goals, values and practices. Different tools can support different ones in different ways.