DEV Community

Discussion on: ELI5: What is IDE or an IDE?

Collapse
 
rcb profile image
rcb

A text editor is kind of like a stripped down word processor (e.g. Microsoft Word). You can write text in it but you don't have all the fancy formatting options that a word processor would have. In coding, we don't really want those formatting options anyways. They tend to involve secret, hidden text characters that can mess up our programs and stop them from working. So we use editors that simply take our written code as is.

Code editors are like super text editors that contain extra features to make it easier to write code. Many code editors will do things like change the font color of certain lines of code to make it easier to read, automatically add opening/closing parentheses or curly braces, and maybe even offer to auto-complete some code when it recognizes which functions we're starting to write.

This makes code editors great for quickly writing code. To maintain that speed, however, code editors tend to lack more advanced features that bigger teams of programmers rely on for writing large-scale programs.

For example, programmers working at larger companies may want to use a debug to run their code one line at a time, which also allows them to peek into their variables and see what their values are at any given point in the program. They may also want to use a special tool to quickly refactor their code — i.e., change all occurrences of a function in the entire program with a single keyboard shortcut. If they're programming in a language like C++ or Java, they may want a special compiler to build their entire program without them having to compile every single program themselves (or write a complex build file).

Built-in servers, terminals, databases, testing suites, deployment pipelines — these are all important tools for creating large programs. Using them, however, can be a pain sometimes. You have to write your program in a code editor, then run all of these separate tools inidividually — often from a terminal or command line — outside of your code editor.

So to make it easier to build large programs using these tools, some companies have created Integrated Development Environments, also called IDEs. An IDE is simply a code editor that has many of the above tools built-in. This allows programmers to quickly and easily test, debug, refactor, and deploy their programs inside of a single application.

That all being said, the line between code editors and IDEs is starting to blur more and more these days. Editors like Atom and VS Code often have free plugins or extensions that add most, if not all, of the above tools to the editor. Depending on the language/framework you create your own software with, some of those tools may not even be necessary. The Ruby/Rails and JavaScript communities, for example, more often use code editors over IDEs.

TL;DR: A code editor is an application to write code quickly without providing more advanced development tools. An IDE combines a code editor with built-in advanced development tools to make writing large-scale applications easier and more convenient.