Menu

What's the difference between a text editor and an IDE?

What's the difference between a text editor and an IDE?

A common question that I often is why do I use Visual Studio 2019 instead of VS Code? Good question. Complex answer. Let's get into it.

The truth is that I use both depending on the situation. Because they are both two completely different things. Why do I eat food and also drink water? Because depending on the situation, I might be thirsty or I might be hungry. Sometimes both at the same time.

The same holds true for using an IDE vs a text editor. Sometimes you just need a quick way to read files and make a few updates, and other times you need to update an API model and recompile and republish to the cloud server.

What is a text editor?

There are a number of popular coding editors these days that pretty much everyone has used at least once. Those include:

- VS Code
- Notepad++
- Sublime
- Atom
- Notepad

All of these are text editors. They let you type, modify and save text based content. And that's pretty much it. You might say "Well, VS Code highlights and color-code's my text". That is true. But it really only is a visual thing. It isn't actually transforming your code in any way. It's just showing it to you differently so that you can make less mistakes.

But they are getting more and more features added every year. Aside from color coding, certain languages offer autocomplete and intellisense features built into the editors. There is also support for source control in a number of these, such as VS Code.

But they are still limited to mainly editing text and organizing it. You can't for example build an Android application in Atom. For that you might use something like Android Studio, which is the official Android IDE that runs Java and has built in emulators to run your code. And it's big in file size. Just the download for Windows will run you almost 1GB.

You can, however, edit any coding file in these editors. You can edit .aspx pages for example, which are proprietary files for building an ASP.NET Web Forms application. You just can't run and test the output to see if they work. This is also why most coding text editors are only a few MB's in file size. Whereas most IDE's will typically run you anywhere from 500MB to 10GB's in size.

What is an IDE?

An IDE is an Integrated Development Environment. It's a full development environment that can create databases, model data, compile code, run test cases, measure CPU performance and publish your projects to a server. You get the idea. It's pretty much required for any type of large scale project.

Here is a quick list of some of the more popular IDE's out there today:

- Visual Studio Community
- Visual Studio 2019
- Visual Studio 2017
- JBuilder
- XCode
- Eclipse
- Netbeans
- Android Studio

And believe me there are plenty more. The IDE that you end up using will mainly depend on the programming language that you are using. Visual Studio for example is designed with .NET languages in mind, such as C#, VB.NET, F# and Q#. As of late however, you can also build Android applications and iOS applications in Visual Studio using the cross-browser framework Xamarin. Which I will cover in a future article.

While you can code in C# in other IDE's, it just doesn't really make sense to do so. Particularly since Microsoft maintains both the C# language and Visual Studio and both are free to use and kept up to date.

As mentioned above, these IDE's are heavy duty high resource applications. My current Visual Studio configuration probably sits around 10GB of install files. Were I to include other libraries, such as for Unity game development, I could be looking at a few more GB's added as well.

And that's again because you are getting a tremendous amount of extra software added to help supplement development in each of the mentioned languages. You don't just build a Unity Game in a text editor, at least not just yet.

Having said that, thanks in part to the latest front-end JavaScript based frameworks, such as React and Angular, the requirement for needing to use an IDE is less and less. It is very much possible today for an experienced senior developer to rely solely on a VS Code based environment if they are working with such frameworks in a very JAM stack environment.

Using both

As mentioned, I do use both text editors and IDE's in my work. If I'm logging in to server and just need a quick look at a code file, VS Code is the app for the job. If I'm doing any form of non-server work, such as designing a simple webpage with only HTML, CSS and JavaScript, in which case the browser will act as the IDE in a sense, then I will also use VS Code solely.

But if I'm working on any type of server-side code, such as with a ASP.NET MVC or Web Forms project, then I use Visual Studio 2019. And that's so that I don't break anything in the process. Before the IDE is closed for the day, I ensure that my code still compiles and that it is error free.

And if I have any file changes, then I can sync to my GitHub repo with a single click pretty much. Visual Studio 2019 also includes various continuous deployment tools, in which case I can have the latest functional code running a production environment without any extra work.

VS Code cannot compile my .NET MVC project because it does not include a compiler for that framework.

It's important to the use the right tool for the right job though. So again, don't think that you have to have the latest IDE's all installed and running simultaneously on your machine, as I used to have.

The future might just be more suited for low-resource and cross-platform development that can be coded from anywhere.

Walter G. author of blog post
Walter Guevara is a Computer Scientist, software engineer, startup founder and previous mentor for a coding bootcamp. He has been creating software for the past 20 years.

Get the latest programming news directly in your inbox!

Have a question on this article?

You can leave me a question on this particular article (or any other really).

Ask a question

Community Comments

No comments posted yet
Ad Unit

Current Poll

Total Votes:
Q:
Submit

Add a comment