Source: /cirosantilli/integrated-development-environment

= Integrated development environment
{wiki}

= IDE
{c}
{synonym}
{title2}

IDEs are absolutely essential for developing complex software.

The funny thing is that you don't notice this until someone shows it to you. But once you see it, there is not turning back, just like <Steve Jobs customers don't know what they want quote>.

Unfortunately, after the https://movingfulcrum.com/the-fall-of-eclipse/[Fall of Eclipse] (https://web.archive.org/web/20190824081229/https://movingfulcrum.com/the-fall-of-eclipse/[archive]), the IDE landscape in 2019 is horrible and split between:
* highly buggy but still feature rich Eclipse
* many may many other feature lacking options using possibly more trendy and forward lasting implementations like https://en.wikipedia.org/wiki/Electron_(software_framework)[Electron]
* awesome cross-platform proprietary https://en.wikipedia.org/wiki/JetBrains[JetBrains] IDEs
* the God-like Windows-only proprietary language-lacking Visual Studio

Programmers of the world: unite! Focus on one IDE, and make it work for all languages and all build systems. Give it all the features that Eclipse has, but none of the bugginess. Work with top project to make sure the IDE works for all top projects.

Projects of the world: support one IDE, with in-tree configuration. Complex integration is often required between the IDE and the build system, and successful projects must to that once for all developers. Either do this, or watch you complex project wither away.

Build tool maintainers: make it possible for IDEs to support your tool! E.g., implement https://clang.llvm.org/docs/JSONCompilationDatabase.html[JSON Compilation Database] output so that IDEs can read the exact compiler commands from that, in order to automatically determine how files should be parsed! Or better, just use libllvm in your IDE itself as the main parser.

Ciro is evaluating some IDEs at: https://github.com/cirosantilli/ide-test-projects