Some thoughts about text editors, IDEs, specialized or general-purpose applications.
|Several languages||Other tasks||Plugins|
|Specialized text editor||No||No||?|
|General-purpose text editor||Yes||No||Yes|
The above table summarizes how I view the text editors and IDEs field.
A specialized application focus only on one programming language, or several languages used together. A general-purpose application can support completely different programming languages and platforms.
A text editor focus only on editing text or source code, while simplifying as most as possible the writing of this code. An IDE integrate other features like building the source code, running it, writing commits, integrate a debugger, and so forth.
For obvious reasons, a general-purpose application should have a plugin system. For a specialized application, the need for plugins is less obvious.
The general-purpose IDE with plugins is one extreme. The user interface must be generic enough to suit plugins and different programming languages. And it takes more time to learn and configure the application.
The specialized text editor without plugins is the other extreme. The developer has full control on the user interface, so the application has a potentially better usability. The application requires less time to learn and configure. Ideally, it should Just Work.
Not reinventing the wheel for specialized applications
Write libraries for the common features! Or at least ensure that your code is reusable. This is not limited to text editors and IDEs, I’m sure you can apply the same principles on your favorite field.