In Praise of IDEs
Posted on 2020-11-26 11:25:00 in Technology
At one time, I was not a believer in IDEs or "Integrated Development Environments." I learned how to use vim, which I still love, and my early work was on PHP. There were web developers back in the day that bragged that all they needed was notepad. Now, that's extreme, but isn't it better use open source software to develop open source software? A great friend tried to sell me on PHPStorm, but even when I got a free copy at a meetup, I didn't use it.
It was Java that taught me to use IDEs. I told my co-workers, where I was tasked to start doing some Java dev, that I would continue to use vim by itself, and one of them said, "If you do that, you will be very sad." It is true, that Java is just one of those languages that just seems to be made for an IDE. An editor by itself can be powerful, but it is unlikely to be able to scan libraries and automatically populate import statements for you. So your choices are to learn where things are so well that you don't even think about import statements, or to think about them ... ugh. I reluctantly started using an IDE for Java.
Something happened, then, as I went on. Java is strongly typed, and so there were many, many errors that the IDE was catching for me that used to slip by my editing. I found that debugging got quicker, and it was more often that deploying code, it just "worked" the first time.
Now, even when working on a loosely typed language like Python or Javascript, I find that my code is cleaner. Where the IDE shines, though, is in a highly structured language like Scala. I have lost count of the number of times that the IDE nudged me to a better way of doing something, just by doing inspections on my code. Just the act of developing in the IDE has improved my Scala coding.
My personality is one that doesn't like to ask for help. Maybe that's why I resisted the IDE for so long. I'm sold now, though. And I don't mind paying, either. My auto mechanic uses great tools, and he pays for them. Why shouldn't I?