DEV Community

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

Collapse
 
sudiukil profile image
Quentin Sonrel • Edited

I personally dislike IDEs. Or more precisely, I dislike using them. I don't dislike all IDEs in every single case but as a general rule I can say I prefer coding without one. My main reasons are:

  1. They feel bloated. Every time I use one I feel drowned by all the features and settings and the thousands checkboxes everywhere. All those things are sometimes so overwhelming that I end up being less productive with an IDE than without.

  2. Configuration and habit. There is no perfect IDE that can do everything and each IDE is different from the other. And I don't like that. I'm willing to learn a lot of different things when it comes to languages and techs, but when it comes to tools, I want to learn and configure one thing right and be done with it. No IDE can offer me that, but editors can, at the cost of a few features.

  3. I don't need one. IDEs offer a lot of features but sometimes you gotta keep things simple. When I code, the only thing I care about is how clean my code is and where I did mistakes. For the former there are linters, most linters work on most editors, no need for an IDE. For the latter, the language compiler/interpreter does this job, again, no IDE is needed. And that's all I need. I don't need (nor want) autocompletion, integral VCS integration, etc...

  4. They are bottom-less pits in terms of resource. Vim (with my config and plugins) runs everywhere I want to, from my shitty laptop to my remote server. IDEs don't. They are just eating my RAM and CPU away. I don't always work on a powerful desktop and when I don't IDEs are really painful to use.

Now, as I said, in some cases I use an IDE. When I do Java is a good example. Java and the typical Java processes and environments are something I'm not very fond of and that I'm not willing to learn too deeply (because I do Java only when I have to). So in that precise case, I enjoy using Intellij IDEA which is the only IDE I can tolerate. And I'm familiar with it from my Android Studio days. But beyond that, it still features a lot of the things I dislike about IDEs.

Collapse
 
waterlink profile image
Alex Fedorov

On point 1:

I agree with you, the learning curve is slow in that regard. Find action/find everything helps a lot to discover just the things you need right now. Also, no-mouse challenge helps tremendously.

On point 2:

I use IntelliJ Idea basically for the following list of technologies (and much more is possible):

  • Java/Kotlin for Backend/Android;
  • Javascript/ES6/Typescript for Backend/Frontend;
  • Python and Ruby for Scripting/Backend;
  • Objective-C/Swift for MacOS/iOS;
  • Golang for CLI/high-performance-backend.

On point 3:

How do you refactor? How often? What kind of refactoring you do? How much time does it take?

By the way, continuous refactoring is the best way I know to keep code clean. And linters won’t help you with software design and architecture of your application.

On point 4:

Depends on your ROI. I put 8-10GB of RAM into IntelliJ, and I get 5-10x developer productivity boost because I refactor and transform code all the time, instead of typing it too much. Saves me time, and protects me from RSI syndrome. I think this is a great deal. RAM is cheap.

On the final point, you should try to use IntelliJ with other languages that you use. It works great for the ones I listed above (and +some).

Collapse
 
sudiukil profile image
Quentin Sonrel

How do you refactor? How often? What kind of refactoring you do? How much time does it take?

I refactor by hand, that's how I actually learn how to do good code by myself, I don't need an IDE to tell me what to do.

By the way, continuous refactoring is the best way I know to keep code clean.

Indeed, but you don't need an IDE for that, just some common sense and knowledge. People did good code before IDEs even existed.

And linters won’t help you with software design and architecture of your application.

Even so, IDEs don't bring anything new to the table, they are just an aggregation of tools and good practices you can use/apply via other means/by yourself.

Depends on your ROI. I put 8-10GB of RAM into IntelliJ

10Go is what I allocate to the Virtual Machine I work with daily. 10Go for an editing program is simply insane, no desktop software should take as much. Ever.

RAM is cheap

That's irrelevant, I work with the hardware I'm given, I don't buy nor choose what's in my enterprise computer.
(And actually, RAM pricing is through the roof since several months, so "cheap" might be relative)

On the final point, you should try to use IntelliJ with other languages that you use

I just explained why I don't. I'm not trying to convince you of anything, just stating why I personally don't like IDEs. I've been coding for nearly 10 years and tried several and always preferred editors over IDEs, I think it's pretty safe to say it works pretty well for me.

Thread Thread
 
waterlink profile image
Alex Fedorov • Edited

I refactor by hand, that's how I actually learn how to do good code by myself, I don't need an IDE to tell me what to do.

I don’t let my IDE tell me what refactoring to perform too. In fact—it doesn’t have such a feature.

It only automates what I would otherwise have done by hand. And it’s faster this way after you already learned about the refactoring and can do it by hand.

Especially, it’s quite good when you want to perform a complex refactoring that consists of 10-15 simpler refactoring steps, you have two choices:

  • write the new code and remove the old code,
  • perform each single simple refactoring step in a sequence.

With a simple editor, I’d be skewed towards the first option. The problem is that this would cease to be a refactoring by definition of the word refactoring. It’s going to be a rewrite, and it can lead to small hard-to-notice mistakes that will leave me debugging for minutes/hours.

With IDE, I’d be skewed towards the second option, because it’s easy to perform these simple steps—they are at the tips of your fingers. And this would be a true refactoring because it performs small simple steps that go from one GREEN step to another GREEN step. The likelihood to need debugging after such refactoring goes down to ~zero.

I just explained why I don't. I'm not trying to convince you of anything, just stating why I personally don't like IDEs. I've been coding for nearly 10 years and tried several and always preferred editors over IDEs, I think it's pretty safe to say it works pretty well for me.

Sure, no problem. I think my original question is imbuing too many assumptions about refactoring and how people (should) program. With these assumptions, it just doesn’t make sense to not use IDEs when they are present.

Maybe I ought to ask questions about how people program first :)

Thread Thread
 
sudiukil profile image
Quentin Sonrel

Maybe I ought to ask questions about how people program first :)

Your question was ok (and I hope my answers didn't seem too... curtly, I just tried to be concise) but these kind of things are indeed related to how people code more than just whether or not IDEs are good and why (because they are of course, they are awesome tools).

Also, even though IDEs can indeed increase productivity, that's a relative thing. Some will get a huge productivity boost, some others won't (for various reasons). The fact is: most people who code are also passionate about it, so they need to actually enjoy it. I know I enjoy more coding with my preferred editor rather than IDE and I want to keep it that way simply for the sake of it, I don't care about the potential (and most likely small) productivity loss.

Thread Thread
 
waterlink profile image
Alex Fedorov

Also, even though IDEs can indeed increase productivity, that's a relative thing. Some will get a huge productivity boost, some others won't (for various reasons). The fact is: most people who code are also passionate about it, so they need to actually enjoy it. I know I enjoy more coding with my preferred editor rather than IDE and I want to keep it that way simply for the sake of it, I don't care about the potential (and most likely small) productivity loss.

Thank you for reminding about this!

Everyone is passionate about their own things. My passions force me to find ever-more efficient, cleaner and successful ways to develop high-quality software. This is what brings me joy.

Others find joy in other things. Very well, thank you, I’ll keep this in mind.