Code Editor or IDE?

Code Editor or IDE?

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

enter image description here

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.

Noteworthy Editors

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

Noteworthy IDEs

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!

Author

Duncan Thomson

A Remote Software and Database Contractor specialised in Umbraco, Duncan works from wherever he finds himself. He is the co-organiser of the Python Exeter and Data Science Exeter meetup groups and speaks about Remote Working, Umbraco, Python and .NET Outside of work he is keen on travel, random generation, foreign languages and good food.

comments powered by Disqus