1

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)

top 5 comments
sorted by: hot top controversial new old
[-] coloredgrayscale@programming.dev 2 points 8 months ago

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.

[-] jvisick@programming.dev 3 points 8 months ago

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.

[-] jjjalljs@ttrpg.network 1 points 7 months ago

Is your question "what does an ide do that a text editor doesn't"?

Auto complete is very nice.

Find usages is necessary.

Syntax highlighting. The yellow squiggle for when it thinks you maybe messed up. (Like when you typo = instead of ==)

Refactor: rename. Smarter than find replace

Refactor: move. Also smart

Using an interpreter in docker is nice. It can find all the sources without me installing anything on the host machine. Being able to cmd click to view the library code is huge.

I don't really use the debug tools because I'm fine with the command line pdb, but they're very useful for people who like them.

[-] onlinepersona@programming.dev 1 points 8 months ago* (last edited 8 months ago)

They are not bloatware, IMO.

When I see people inserting printfs into their code just to be able to debug, I can't help but cringe. Proper IDEs make debugging so much more easy.

Also people who manually go-to source by a "Ctrl+Shift+F" (or grep or ripgrep or whatever), have code completion without context (as in suggestions of words that exist in the file, but have nothing to do with what it should be completing), refactor by "Replace All", and then claim they are more efficient than IDEs, ... I'm not sure they have ever bothered learning how to use an IDE instead of cram a bunch of arcane emacs or vim shortcuts into their brain to achieve what a simple button press in an IDE could do.

Good IDEs also have stuff like code coverage indicators (run tests and show which parts of your code are covered), "go to that broken test", "go to the line in the stack trace", "execute the remote debugger on another system", database browsers with stuff like query execution analysis, GUI builders, "show me the documentation of this item", and so much more.

I find it extremely hard to go back to using a dumb editor (be it notepad, sublime, vim/nvim/lunarvim/astrovim/..., emac/spacemacs/..., Kate, etc.) after having experienced the ease of development I get from an IDE.


But back to your question: "what can be considered bloat". Well, all the things you don't use can be considered "bloat". If you don't use a database, well loading the database functionality in an IDE may be considered useless. If you don't use a debugger and like being a printf cave-man, then the debugger is useless. If you want to click on a stack trace and be taken to the source code, then that can be considered bloat. If you use git (or whichever VCS you use) manually, then a commit dialog with rebase support might be useless. And so on an so forth.

Also, if all the development you do is on a remote server with exclusive terminal access, then a GUI IDE might be bloat.

Or if you have a machine with 4GB of RAM and can only open Chromium with a few tabs, then sure, opening an IDE might seem like bloat.

Or if you want to have a startup time of milliseconds, but spend more time hitting K or the down arrow to find that symbol instead of just "go-to source", sure then an IDE is bloat.

But most importantly, if you IDE doesn't support the language you're using and has no syntax highlighting, then it is downgraded to an editor.

[-] thtroyer@programming.dev 0 points 8 months ago

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)

this post was submitted on 23 Oct 2023
1 points (100.0% liked)

Ask Experienced Devs

1064 readers
1 users here now

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS