Previously we started looking atIntegrated Development Environments (IDEs) for Python. But some examples are code editors and not IDEs so here we compare the two and the areas between.
You can find a list of the most popular IDEs / Editors at pypl.github.io/ide.html
Features of a Code Editor
Text / Source Code Editors are primarily about writing, reading and editing code. In it's most basic form even something like Notepad would count. Editors can be part of an IDE but the ones referred to here are stand alone.
Potential features supported by code editors include syntax highlighting, indentation, source control integration, and autocomplete. They also include some way to run a compiler, interpreter or debugger.
You've probably used at least one of the following
- Emacs (Linux / Windows / Mac) Open-source family of editors around for decades.
- Kobra (Online) Collaborative code-editor with free and pro version.
- Notepad++ (Windows) Open-source lightweight text editor with many available extensions.
- Sublime Text (Linux / Windows / Mac) Built in Python, this paid editor has many configurations and extensions/
- Vim (Linux / Mac) Very popular in the Linux world with heavy use of the command line.
- VS Code (Linux / Windows /Mac) Released in 2015, this open-source editor is growing rapidly in extensions and language support.
Reasons for Using an Editor
You might decide to use a code editor if
- You prefer a simple interface and environment to code in
- You only need to read some source code
- You have a small number of files to work on
- You don't want the complexity of a full-on IDE
- You are working somewhere without the resources for an IDE.
- You prefer to do things the hard way without some of the support of an IDE
Features of an IDE
An IDE will include a code editor and much more, providing all of the tools to write, run, test and debug your chosen language or platform. Essential features of an IDE include a text editor, debugging and build automation Potential features included in IDEs include compilers, interpreters, object browsers, a GUI, code navigation, dependency importing, test runner and refactoring
You've also probably used one of these:
- Android Studio (Linux, Windows, Mac) Free IDE specifically designed for android development.
- Cloud9 IDE (Online) A cloud-based editor supporting many languages. Open source with paid versions.
- Eclipse (Linux, Windows, Mac, Cloud) Iconic in the Java world, this popular open-source also supports other languages.
- PyCharm (Linux, Windows, Mac) Free or paid versions, primarily for python but supporting other languages this is the first IDE we're looking at.
- RStudio (Linux, Windows, Mac) Open source and specifically for R which we mentioned in another article.
- Visual Studio (Windows) Free and paid versions of popular IDE known for .NET but supporting other languages.
Reasons for Using an IDE
You may prefer an IDE if - You don´t want to switch to lots of different tools for writing, building, debugging and testing your code - You have a large and complex project to navigate - You are starting out and want lots of tasks done for you - You find having integrated and focused tools to support your development improves your productivity - You work in a corporate environment where your choice of tool is mandated.
Blurring the Lines with Plugins
There is also another option, as many Code Editors have extensions to them which add support for things found in IDEs.
Many developers like to take a more lightweight editor such as Sublime Text or VS Code and customise it with many extensions into the IDE that they like.
So try some different options and find what works for you.
Your Preferred IDE?
So what's your preferred tool for development? Leave a comment or tweet @DuncanThom!