DEV Community

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

Collapse
 
lampewebdev profile image
Michael "lampe" Lazarski

I used Eclipse, NetBeans and some form of IntelliJ.

And I'm always coming back to a more simple editor like Atom or VSCode.

I'm a web developer and usually, the extensions VSCode and other editors can give you are enough for me.

IDE's tend to be slow and don't add for me the value of having such a big monster installed on my machine.

IDE's feel more like they slow me down and are in my way instead of helping me get stuff done.

Maybe if you have a Java project or other languages where the IDE can be more helpful it makes sense.

It really depends on what field you are working on.

Collapse
 
waterlink profile image
Alex Fedorov • Edited

I’m working always fullstack (no matter which stacks included), so often, I get to work with frontend (JS/TS/React or TS/Angular). I’ve worked in IntelliJ and VSCode, and I observed people working in IntelliJ and VSCode.

My three observations:

  • Manual import/export management in VSCode vs. automatic imports in IDE (expunging default exports fully contrary to community standard). Less time spent here.
  • Autocompletion in VSCode is dumber than autocompletion in IDE.
  • Refactorings in VSCode are almost non-existent and in IDE there are tons of them and they are safe (lead from GREEN test suite to GREEN test suite).

Now, you mentioned something about slow IDE. you probably didn’t increase the amount of RAM that you allow IDE to use. The default is just too small to index 20000+ npm packages and stay fast. I usually give 8-10GB to my IntelliJ Idea and it gives me back 5-10x boost of productivity because I rely on automated imports, smart completion, and refactorings all the time. Nice ROI. RAM is (supposed to be) cheap.

Collapse
 
lampewebdev profile image
Michael "lampe" Lazarski

I just have 8GB in total on my machine.

point 1 and 2 work great for me also in VSCode with the right plugins.

I just type something and then press tab and it will be imported.

I'm working on nodejs code and the autocompletion is pretty great

I just type spa and I get spawn or spawnSync and then I press enter and it imports the right thing from 'child_process'.

I would rather say that your problem is that you are having one project with 20000+ npm packages. I try to keep my services small.

This also helps with refactoring.

So yeah maybe if you're working on one big monolith app with a lot of dependencies everywhere it makes sense.

So yeah if your refactoring this amount of dependencies then for me something else is not correctly setup but yeah. No judgment here just guessing.

Thread Thread
 
waterlink profile image
Alex Fedorov

I would rather say that your problem is that you are having one project with 20000+ npm packages. I try to keep my services small.

Welcome to frontend ;)

Thread Thread
 
waterlink profile image
Alex Fedorov

You can get these numbers just when you bootstrap a new empty codebase…

Thread Thread
 
waterlink profile image
Alex Fedorov • Edited

I’m not refactoring any of the NPM package dependencies. You’re too much focused on that. This is normal in frontend projects.

I’m talking about refactorings that I need to do in the normal course of the proper TDD workflow: write a failing test, make it pass with a simplest (but perhaps dirty) implementation, refactor to make the design cleaner, and then repeat over and over again.

It would be wonderful to be able to point to a YouTube (or Vimeo) video of half an hour of someone doing these amazing refactorings that one should do 20 times per hour as a part of normal development flow. It’s called continuous refactoring. But I don’t know of any at this moment. (maybe I should ask on Twitter if anybody has such a video)

Otherwise, it’s like we’re talking about different worlds.

Thread Thread
 
waterlink profile image
Alex Fedorov

I have 16GB on personal. And at work, I have 32GB. The cost of this RAM is much lower than the potential sacrifice of developer’s productivity.

Thread Thread
 
lampewebdev profile image
Michael "lampe" Lazarski

I mean this are all valid points but at the end people are different. So if it works for you good more power to you.

I just like to think first about the how I will do stuff. Even on paper and then execute. So maybe that's why I like normal editors more.

Thread Thread
 
waterlink profile image
Alex Fedorov

Makes sense!

 
lampewebdev profile image
Michael "lampe" Lazarski

I'm doing frontend now for over 8 years ;)

Thread Thread
 
waterlink profile image
Alex Fedorov

And I do 7. A little bit less than you, I guess. In the past the proliferation of packages and dependencies was not as much…

Thread Thread
 
lampewebdev profile image
Michael "lampe" Lazarski

That's true.

I also try to prevent to load to much packages. When I can I just take the one functionality it of the package and just put it into the project ;)

Thread Thread
 
waterlink profile image
Alex Fedorov

That’s a good tactic :)

Collapse
 
qm3ster profile image
Mihail Malo

Not sure when you last tried it, but for me VSCode works very well in terms of TypeScript refactorings. And the autocompletion is great.
What specifically did you find lacking?
An example of a refactor would be perfect.

I will be honest, I don't understand the first point at all. What does "expunging default exports fully contrary to community standard" mean? There are automatic import features in VSCode, but I don't use them. I don't find that any sort of automatic import management to be a productivity improvement.