re: Why Are Some Developers so Allergic to IDEs? VIEW POST

TOP OF THREAD FULL DISCUSSION
re: 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...
 

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

 

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.

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 :)

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.

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.

code of conduct - report abuse