IDE or Separate Tools?
An integrated development environment or just IDE is a great tool that helps lots of developers write a code, debugging and reviewing it, managing the version control system, etc. However, many developers prefer to use separate tools instead of the IDE to perform their duties. Why do they do that?
Simplification
Most separate tools have a smaller and simpler user interface and can often be called directly from the command line. On the other hand, IDE usually requires lots of clicking in the interface to do the same operation. Need to say that IDE also often offers a shortcut for such operations to make the developer's life easier.
It is also a common situation when IDE does not offer the tool's full capabilities and provides integration only with basic or most commonly used features. It may satisfy 80% of users, but others have to reach the original tool to do what they want.
Separate tools also often offer their logging and debug tools not exposed to IDE. These things may give a developer a hint on where the issue is and save a lot of time.
Automation
One of the significant advantages of separate tools, especially ones that support CLI, is writing scripts and executing several commands to automate internal processes and organize integrations with external services. Some IDEs allow to run such scripts or even support internal macro language, but they are usually not that flexible.
The obvious disadvantage of such automation is the requirement to know some programming language (python, shell, go) that can be used to write such scripts, and code writing itself also takes time. However, it is usually beneficial in the long run as it saves time every time the script is called.
Integration
It would be best to remember that remote server environments ofter has only CLI interface with a simple UI interface, so IDE can not be used there. However, custom CLI scripts can work there too, and continue helping the developer automate his work. They can run Continuous Integration checks (tests, code style), deploy code to the remote servers, work with the version control systems, etc. The disadvantage is the same — developer has to have suitable qualifications and enough experience to organize such a process.
So, the conclusion is simple — a good developer has to know how to use both IDE and separate tools to benefit both approaches. IDE is better for the local environments and typical use cases, while separate tools can save time for tricky issues and external environments. Know both sets of tools, and you can work efficiently under any circumstances!