Hi experienced devs , I am a beginner programmer. I mostly use code completion and go-to source , and rename function and objects, code-pretty. Other features not so much. What features do you use often And what features are not that useful in an IDE and can be considered bloat? P.S.- Which is that one feature that you can’t live without?( sorry for sounding like tiktok wannabe)
The tight Integration of the debugger is a huge benefit over what a text editor would provide.
Sure you possibly can add all the stuff to some text editors too, if you spend enough time / energy.
The thing about an IDE is how tightly integrated all of the tools are.
If you list the features individually, surely there’s a way to add most of them to your text editor of choice - but the downside is that they’re now all fairly independent features, may not work as thoroughly or covertly, and you might end up with a slower editor altogether.
Not to say IDEs are the peak of performance - but they tend to provide more robust tooling than is (easily) available in e.g. VSCode/emacs/neovim/whatever.
It’s like using a specialized power tool - it’s not the right tool for every job, it’s probably a bulkier package, but if you know how to use it an IDE can make your life a lot easier for the right workload.
I’m reluctant to call much “bloat”, because even if I don’t use something doesn’t mean it isn’t useful, to other people or future me.
I used to code in vim (plus all sorts of plugins), starting in college where IDEs weren’t particularly encouraged or necessary for small projects. I continued to use this setup professionally because it worked well enough and every IDE I tried for the main language I was using wasn’t great.
However, I eventually found IDEs that worked for the language(s) I needed and I don’t have any interest in going back to a minimalistic (vim or otherwise) setup again. It’s not that the IDE does things that can’t be done with vim generally, but having a tool that understands the code, environment, and provides useful tooling is invaluable to me. I find being able to do things with some automation (like renaming or refactoring) is so much safer, faster, and enjoyable than doing it by hand.
Features I look for/use most often:
- Go to (both definition and usages)
- Refactor tooling (renaming, inlining, extracting, etc).
- Good warnings, along with suggested solutions. Being able to apply solution is a plus.
- Framework integrations
- User-friendly debugger. Ability to pause, drill in, and interact with data is immensely helpful with the type of applications I work on.
- Configurable breakpoints.
- Build tool integrations. Doing it on the console is… fine… but being able to set up what I need easily in the IDE is preferable.
Features I don’t use or care so much about? Is there much left?
- My IDE can hook up to a database. I’ve tried it a few times, but it never seemed particularly useful for the apps I work on.
- git integration. I have a separate set of tools I normally work with. The ones in my IDE are fine, but I usually use others.
- Profiler. I use it on occasion, but only a few times a year probably.
I do code in non-IDE environments from time to time, but this is almost always because of a lack of tooling than anything else. (Like PICO-8 development)