Link Search Menu Expand Document

Editors

Code editors provide tools to create, edit, and save plain text files. Compared to word processors, they lack the tools for formatting the text. On top of that, most code editors offer additional features, such as:

  • syntax highlighting - presenting commands and comments in different colours
  • syntax checking - highlighting coding errors
  • code completion - auto-completing certain tags
  • automatic code formatting - code indentation
  • powerful text manipulation and scrolling tools

Some code editors or IDEs only offer the additional features for one or a few programming languages. For example, PyCharm is a full-featured IDE for Python that also supports Python debugging and source control. A number of code editors also provide a file explorer that allows you to navigate through the files and directories of your project and manage them effectively. Compared to an IDE, code editors are usually smaller and quicker, but often with fewer features.

Vi editor was developed starting around 1976 by Bill Joy, who was then a graduate student at the University of California at Berkeley. Joy later went on to help found Sun Microsystems and became its Chief Scientist. Later, in 1991, Vim, short for Vi Improved, was developed. GNU Emacs is the most popular version of a family of text editors, called EMACS for Editor MACros, created by Richard Stallman for the GNU Project. It is one of the first free and open-source software projects. Vi/Vim and Emacs are the oldest text editors that still have a strong user base. While both of these text editors are command-line software and have a steep learning curve, they are fully programmable and customizable, making them the choice of professional users. While Vim and Emacs have many similar strengths, the way you use them is quite different. Vim is modular, meaning that it has two different modes. In the normal mode, all keystrokes navigate the screen. In the insert mode, you can enter text. If you open Vim, you can close it by entering :q. Emacs is chord-based and you can enter commands by holding down a combination of keys. Emacs and Vim are built before many conventions, like using modifier key with Z, X, C, and V for undo, cut, copy, and paste, and use their own terminology. If you are looking for a user-friendly text editor in the terminal, Nano, available on Unix-like systems, is a good option. macOS. The features presented in TextMate became staples in every popular text editor that followed. In 2008, Sublime Text is released in 2008 and popularized the minimap and multiple cursors. It is also cross-platform, running on Linux, macOS, and Windows. The biggest impact of Sublime Text was expanding the capabilities of extensions and allowing more sophisticated integration of extensions with graphical components with the text editor. It is reported as the most popular text editor available on MAc from 2015 to 2017.

Atom is called the “hackable text editor for the 21st Century” and is developed by GitHub, thus offering easy built-in integration with Git and GitHub. Atom offers a built-in package manager and popularized the convention of using animated GIFs to illustrate functionality. It is fast, small, and open-source, supports all platforms, and provides a marketplace for extensions.

Visual Studio Code aka VS Code was released in 2015. It is an open-source code editor built on Electron and developed by Microsoft. It is the most full-featured code editor in this list, closest to an IDE. Extensions in VS Code are so powerful that some extensions start to look like applications. VS Code is robust but consumes more resources compared to other lightweight editors. VS Code has many built-in features and is very extensible, making it a popular choice for beginner programmers. Currently, more than 70% of respondents to the latest Stack Overflow survey chose VS Code as their first choice for writing and editing code.

Computational Notebooks

A computational notebooks is a virtual environment used for writing programs that matches more closely with the way humans think. Apache Spark and iPython were early staters. Now, there are computational notebooks and computing resources available online for free.

Jupyter notebooks are first built for Python development, a learning tool accessible as a web application. They provide an easy-to-use and interactive environment and are currently available across various programming languages. They support Markdown, allowing you to add comments and reports to the code. You can export the code or the report later. While they are a good choice for testing ideas or developing small projects, they are not suitable for building bigger projects.

The Pacific Institute for the Mathematical Sciences, Compute Canada and Cybera built a project called Syzygy to bring Jupyter notebooks to researchers, educators and innovators across Canada. UBC students can write and run Jupyter Notebooks in Python 3 and R hosted by Compute Canada on UBC Syzygy.

Google Colaboratory is a free and online tool built by Google that offers free CPU and GPU for developing Python code in Jupyter Notebooks. It is a great choice for beginners to learn Python development or run small projects and access them on all their devices.


Table of contents