Definição de uma IDE:
"Um sistema que oferece toda a infraestrutura necessária para desenvolver software para uma plataforma específica."
Esta definição é propositalmente vaga, mas precisa. 'Sistema' pode ser qualquer coisa: uma única aplicação ou uma combinação de aplicações. Da mesma forma, 'infraestrutura' pode incluir qualquer coisa, desde um editor de texto, compiladores, até seja lá o que for preciso para por exemplo, rodar um programa na IDE Scratch. Finalmente, 'plataforma' também pode ser qualquer coisa: uma linguagem, um sistema operacional, uma arquitetura, ou até mesmo um sistema complexo, como a Web.
Com esta definição, podemos desenvolver uma taxonomia para categorizar os IDEs.
-
IDEs de Propósito Específico:
Exemplos: XCode, Quartus.
Características: Fornecidos para uma plataforma. Necessários quando a plataforma é fechada (como produtos Apple) ou tão complexa que não vale a pena tentar alternativas (como FPGAs da Altera). Podemos incluir aqui os produtos da IntelliJ? -
IDEs de Propósito Geral:
Exemplos: Visual Studio, Eclipse.
Características: Funcionam imediatamente para um alvo específico, mas podem ser adaptados para outras plataformas com infraestrutura adicional. -
IDEs Customizadas:
Exemplos: VS Code, Vim, Emacs.
Características: Inicialmente mais simples, apenas com editores de texto e terminais, mas que podem ser expandidos com plugins e extensões para atuar como IDEs completos para praticamente qualquer plataforma. -
IDEs Online:
Exemplos: Codespaces, Repl.it.
Características: Estas IDEs representam a forma final da evolução dos ambientes de desenvolvimento, onde instalações ou customizações não são necessárias.
Espero que está definição e taxonomia seja útil!