The word *editor* and IDE (integrated development environments) are often mistakenly used interchangeably. However, there are some big differences between the two. The extra functionality you get with an IDE can provide significant time savings, reduce context switching and make coding much easier for you.
Here are just five (the list is long) important differences why editor users should consider an IDE:
Stop using `print()` or `console.log()` or even `echo` commands to debug! Coding and bugs go hand-in-hand. Since your code will probably have a bug in it (especially if you’re new to programming), the faster you find it, the sooner you can fix it. Printing variable state is an exhausting, tedious means of figuring out program state.
The debugger is a tool for analyzing programs on a line-by-line basis, monitoring and altering variables, and watching output as it is generated. The debugging features included in Komodo IDE (such as breakpoint and spawnpoint control, remote debugging, stepping, watching variables, viewing the call stack, etc.) make what is a tedious (and sometimes frustrating) part of programming software a breeze.
**2) Unit Testing**
With the success and resurgence of test driven design (TDD) in software, and writing quality code in mind, developers know it’s important to conduct proper unit testing. Your editor needs to be able to support major frameworks for your language in order to do this (e.g. PHPUnit, Perl TAP, Python unittest, and Ruby’s rake test.)
**3) Code Refactoring & Profiling**
Some editors include some basic code intel (such as calltips and auto-complete), but code refactoring and profiling are more advanced features that you usually only find in an IDE. Code refactoring makes it easier to perform global code changes, saving time compared to making changes manually.
As well, IDEs can provide you with code profiling. Code profiling lets you analyze your code performance on a function-by-function basis, allowing you to quickly detect bottlenecks. The code profiler tracks which function calls are made, how many times those functions get called and how long the calls take to complete.
**4) Source Code Integration**
When performing most of the Version Control System (VCS) tasks, you don’t typically need to be running complicated commands. An IDE should (and most do) facilitate most necessary commands (push, pull/update, commit, history, etc.) that allow you to keep up to date with your team and vice versa without having to run another tool. Komodo IDE supports Subversion, Mercurial, Git, Perforce, Bazaar, CVS.
**5) Development and Release Tool Integration**
The most important thing an IDE should do for you (and to be fair, this goes for Editors too, and some do it really well) is allow you to *easily* integrate tools that the software created didn’t cover, then allow you to *easily* access them. Staying in the zone is of critical importance (as you well know!), so whatever existing integration your IDE can provide through addons, the more productive you’ll be.
IDEs differ in how easily they integrate with other systems. The integration should be so seamless that you shouldn’t need to leave your IDE to perform tasks. (Those who use gulp, Grunt, PhoneGap/Cordova, Docker or Vagrant can take advantage of these technologies without ever leaving Komodo.)
A few of features that help with coding include spell-checking, track changes and database integrations with the database explorer. And, if you’re part of a team, you may want some of the team features only an IDE can provide.
So if you’re a new to programming, you may gravitate toward an editor because you get a lot of the functionality *and* it’s free. But if you’re looking to save time and be even more productive while coding, try Komodo IDE and see the difference.