Truly Integrated Development Environment

stereobooster - May 5 '19 - - Dev Community

When people say IDE most of the time they mean just glorified text editor, sometimes with the debugger, sometimes with autocompletion. In my opinion, the text editor is not enough to qualify as a development environment. As well we will need:

  • a compiler (or interpreter, or transpiler, etc)
  • an automation tool (make or similar)
  • a package manager (bundler, yarn, cargo or similar)
  • probably a version switcher (rbenv, nvm, rustup or similar)
  • a language server for more intelligent autocompletion (solargraph, typescript, flow, gocode or similar)
  • a linter or a type checker (rubocop, eslint or similar)
  • a formatter (prettier, gofmt or similar)
  • maybe a shell (bash, zsh or similar) and git

Solution

Recently I found a potential solution for a truly integrated development environment: Docker + "cloud IDE" (in-browser IDE). We can pack all tools in Docker container and some "cloud" IDE and configure all tools to work together, then you would use one command to run Docker container and fully working editor will be available in the browser.

I wasn't the first one to come up with this idea, so there are some options:

Theia:

docker run -it -p 3000:3000 -v "$(pwd):/home/project:cached" theiaide/theia
Enter fullscreen mode Exit fullscreen mode

Coder:

docker run -it -p 127.0.0.1:8443:8443 -v "${PWD}:/home/coder/project" codercom/code-server --allow-http --no-auth
Enter fullscreen mode Exit fullscreen mode

Eclipse Che:

docker run -ti -v /var/run/docker.sock:/var/run/docker.sock -v /local/path:/data eclipse/che start
Enter fullscreen mode Exit fullscreen mode

What would you expect from IDE? What it should provide out of the box?

Photo by NESA by Makers on Unsplash

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .