DEV Community

Vicki Langer
Vicki Langer

Posted on

ELI5: What is IDE or an IDE?

I'm rather new to coding. My experience starts about 15 years ago, with a tiny bit of HTML on MySpace, but I didn't do any coding after that. So, this year, I started teaching myself to code. So far, I've found answers to most, but I'm still stuck on this.

I have no clue what is being referred to when people mention IDE.

TL;DR ELI5: What is IDE or an IDE?

Top comments (4)

rcb profile image

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.

dmfay profile image
Dian Fay

It stands for "integrated development environment". An IDE is a glorified text editor with a built-in compiler and other tooling, with the idea that you should be able to write, test, launch, and package your code all from the same application. They're convenient but the convenience tends to hide a lot of what's going on.

IDEs usually focus on development in one or a few languages. Eclipse and IntelliJ IDEA are IDEs for Java, Visual Studio is an IDE for Microsoft's .Net language family, PyCharm is an IDE for Python, and so on.

sandeepbalachandran profile image
Sandeep Balachandran

I got a relative example i guess.

Consider washing your clothes, For starters you have to get a bucket (class) to put your clothes . You need to turn the water supply on . You gotta keep powder if you are using powder or just soap according to your routine. Then you gotta start wiping out all the stains from last night(syntax errors). At the end you have to use fresh water to clear everything from clothes or whatever you are washing cat, anything (bug fixes). Eventually you need sunlight. (Emulator)

Now consider washing machine (IDE). At first you have no options not to do anything or skip anything. Now you got options!! You dont have to wait for the water to fill the bucket (Auto complete syntaxes,Auto generated classess) or no need to think water-powder ratio(cant remember any relative coding related examples) . You can just press a button and have snacks during the process(compilation). At the end ,, if and only if the machine fully automatic your clothes (codes) will be A okay for the day.

TL;DR-- If you wanna start learning how to wash use washing machine once or twice in a week. Otherwise keep using your hands to wash.

sun6eal profile image
sun6eal • Edited

IDE is some heavy softwares that have many buttons and menus that you can click, sometimes you can even draw ,to produce code for you. Compare to editors, you have to type by yourself.