In my experience it HEAVILY depends on the language you’re using. Nothing beats Intellij for Java or Kotlin, but Rust and Go feel at home in any editor.
I know that LSPs and DAPs somewhat take care of these, but the following are often easier in IDEs:
Refactorings, including really smart language specific ones
Support for fancy frameworks. For example, Intellij can analyse all annotations for Dependency Injection or Spring stuff, and will then tell you exactly how everything connects on a higher “framework” level. Arguably, this is a solution to a problem Enterprise Java created
Debugging is easier
In general, stuff works “well enough” out of the box. As a fan of Neovim, I’ve definitely been frustrated a lot the first time I had to set something up
Fancy integrations, for example linking frontend code calling backend code directly, or an entire little Database Manager builtin, with magic SQL code completion
Its IDE is based on Scintilla. And it is very fast, even on an ancient PC it runs.
It is specific for the programming language.
And here some advantages it has compared to a simple text editor:
Autocomplete of all functions and many API functions of the OS
Hints about parameters
F1 Help for all functions by just placing the cursor on them
Jumping to errors in the code
Automatic backups of all the progress of your codes, no problem to backtrace even if you forgot to save or commit.
Manage Projects (Groups of source codes and different targets)
Well integrated debugger
I agree with you in many points. Most other IDEs I am forced to work with are horribly slow. Especially those which rely on electron. Sometimes they lack features every basic editor has by now.
This is to say: Good IDEs can exist and are a great benefit for the programmer. But modern IDEs often chase keyword features and use complex and bloated frameworks to achieve them. Sometimes even forgetting to add basic features which made IDEs a thing initially. An IDE should take almost no time to setup to your needs and should not hinder with complex operations which take seconds to run, it should only support in code creation and aim to make features like autocomplete show suggestions in milliseconds.
Jetbrains IDEs do a lot of indexing and caching so that operations that normally take a bit are faster. Full text search, find usages, identifying interface usage in duck types, etc.
But the killer feature for me is the refactoring tools. Changing a function signature, extracting an interface, moving code to new files or packages, etc. I pair with folks who use VS Code and its a bit tedious watching them use find and replace for renaming things.
I’ve never been able to benefit from an IDE in a way that make up for how much slower and more bloated they are.
That does sound legit if you have resource limitations. Thankfully I’ve always worked for corporations that hand out MacBook Pros like candy. Normal day for me is having two Jetbrains IDEs open with Chrome, Slack, Zoom, and a dozen containers. Still runs smooth.
A linter a debugger and a clean interface in general are all I need. And most text editors suffice for that.
I’ve never been able to benefit from an IDE in a way that make up for how much slower and more bloated they are.
I’d love to hear what some of the main benefits are though.
In my experience it HEAVILY depends on the language you’re using. Nothing beats Intellij for Java or Kotlin, but Rust and Go feel at home in any editor.
I know that LSPs and DAPs somewhat take care of these, but the following are often easier in IDEs:
Niche language, but try out PureBasic.
Its IDE is based on Scintilla. And it is very fast, even on an ancient PC it runs. It is specific for the programming language.
And here some advantages it has compared to a simple text editor:
I agree with you in many points. Most other IDEs I am forced to work with are horribly slow. Especially those which rely on electron. Sometimes they lack features every basic editor has by now.
This is to say: Good IDEs can exist and are a great benefit for the programmer. But modern IDEs often chase keyword features and use complex and bloated frameworks to achieve them. Sometimes even forgetting to add basic features which made IDEs a thing initially. An IDE should take almost no time to setup to your needs and should not hinder with complex operations which take seconds to run, it should only support in code creation and aim to make features like autocomplete show suggestions in milliseconds.
Jetbrains IDEs do a lot of indexing and caching so that operations that normally take a bit are faster. Full text search, find usages, identifying interface usage in duck types, etc.
But the killer feature for me is the refactoring tools. Changing a function signature, extracting an interface, moving code to new files or packages, etc. I pair with folks who use VS Code and its a bit tedious watching them use find and replace for renaming things.
That does sound legit if you have resource limitations. Thankfully I’ve always worked for corporations that hand out MacBook Pros like candy. Normal day for me is having two Jetbrains IDEs open with Chrome, Slack, Zoom, and a dozen containers. Still runs smooth.
VS Code absolutely has refactoring built in. Pressing F2 on a token renames it everywhere it’s referenced
Interesting. I’ll have to find some docs and share it with my co-workers because they definitely don’t use build-in refactoring. Thanks!
Huh. I’ve only ever tried jetbrains stuff for about five minutes. Got mad confused and angry and gave up.
I might give it another go. Thanks.