The IDE vs Text Editor Battle

AUG 9, 2016 • Written by Catalina De la cuesta

There are 10 types of programmers: those who use an IDE, and those who think that the ones who use an IDE are not real programmers.

I’ll start by making it clear that I belong to the first group and do care a little bit about the other group’s opinion. So I decided to dig a little deeper and collect opinions about this topic. The choice was either to become a real programmer and switch to a text editor, or to reinforce that I am a real programmer who uses an IDE!

Since I started programming, I’ve always used IDEs. I can program faster with the code completion or code insight features, which also helps me avoid typos. I find and fix problems sooner because the IDE highlights syntax errors, unused variables, and suspicious code. And I have access to templates, refactoring help, tools integration and much more, which really increases my productivity.

It seems, however, that all the super experienced software developers never use IDEs. They know all about the command line, all the keyboard shortcuts – so they almost never need a mouse –, and they love adding and writing plugins to a plain text editor. A regular “mere mortal” user would rely on the graphical user interface to navigate the computer to find files, rename files, create folders, but a “real” developer will open a terminal, type in commands and not rely on a graphical user interface at all!

If these super developers use text editors, could it be that it really is better to not use IDEs? Do I use them just because I don’t master all the shortcuts and tricks that let “real” programmers keep their hands on the keyboard? Perhaps. But with IDEs, I can do everything I can on a text editor and so much more. Right? So could the real reason behind sticking to text editors be that more senior programmers are stuck in their ways and too stubborn to learn a new tool? Could it also be partly some form of snobbism where “real developers” would not be caught dead using a graphical user interface?

I was on a mission to find the truth behind it all. Ok, I’ll confess: I really was out to prove those dinosaurs wrong (I know, I was being a little harsh on those zen programmers). Let’s see where this research took me.

I reached out to some developers to find out what they thought:

  • I do think I can edit faster in VI than with a mouse-based backspacing editor.

  • I feel that bash will never let me down.

  • Recently, I’m starting to see the value of using WebStorm and RubyMine, though I do still think they’re a little slow and consume quite a few resources on my computer.

  • With the same text editor that I use locally, I can work remotely when I connect to a server via SSH.

Extracting the data from my informal survey, I discovered that indeed most senior developers use text editors. But I do think some of the arguments to use them are not completely valid.

Let’s keep score:

An IDE is too slow

Argument: The IDE is too slow and uses up too much computer resources.

Counterargument: It’s cheaper to buy a good computer with enough resources than lose the extra productivity that an IDE can give you.

Score: IDE Coders 1 - Text Coders 0

Learning curve

Argument: I would lose productivity learning to use a new tool.

Counterargument: At the beginning, yes, but you will definitely gain it back – and more – later.

Score: IDE Coders 1 - Text Coders 0

VI is always available

Argument: There are times when I’m not working on my computer and I don’t have access to IDEs.

Counterargument: Yes, that’s true, but most of the time you program on your own machine where you can have all the tools you want.

Score: I’ll call this one a tie: IDE Coders 1 - Text Coders 1

Typing is faster

Argument: I can edit code much faster using shortcuts than by relying only on the mouse.

Counterargument: That’s true.

Score: IDE Coders 0 - Text Coders 1

Connect remotely

Argument: When I connect to a server via SSH, I have to rely on the command line.

Counterargument: Also true.

Score: IDE Coders 0 - Text Coders 1

Customization

Argument: I can customize and add plugins to my text editor.

Counterargument: You can do that with an IDE too. And you might not even need to because the IDE probably already has what you need!

Score: IDE Coders 1 - Text Coders 0

I am in charge

Argument: I really know what’s going on under the hood because I don’t have an IDE hiding it, and I learn more because I rely on my memory and not on the computer’s memory.

Counterargument: I have to admit that it is really important to understand what’s going on, and also to exercise our memory.

Score: IDE Coders 0 - Text Coders 1

An IDE is not completely bad

Argument: Yes, IDEs do have some features that can help you be more productive.

Counterargument: I told you!!

Score: IDE Coders 1 - Text Coders 0

Score Recap

Argument IDE Coders Text Coders
     
An IDE is too slow 1 0
Learning curve 1 0
VI is always available 1 1
Typing is faster 0 1
Connect remotely 0 1
Customization 1 0
I am in charge 0 1
An IDE is not completely bad 1 0
     
Total Scores 5 4
     

Did my side win??? Well… actually, after doing this research, I now believe that things are not quite that black and white, and both sides have valid reasons to use one or the other. I realized that there are situations when we absolutely cannot use an IDE and/or don’t even have a graphical interface, so we need to have a decent level of proficiency using the command line. I also accept that, many times, it is faster to not use the mouse but know the keyboard shortcuts. I also acknowledge that I am not always as in touch with what is going on under the hood and that, because I rely heavily on the IDE, I don’t really learn some things.

All things considered, where does this leave me? Bottom line is I am a real developer and I will without a doubt continue to use IDEs whenever possible. They are an amazing tool. Why wouldn’t I want to make my life easier if I can deliver the same – or better quality – product? But… I will definitely invest more time in learning to use the command line better, mastering as many keyboard shortcuts as possible, make sure I understand how things work and what exactly the IDE is doing for me, and exercise my memory. That way, I can take advantage of IDEs, yet still be ready if, for some reason, I have to work without my beloved IDE!