Text editors and integrated development environments (IDEs) are applications for writing code. These applications are the primary user interface for developers to create their own programs.
Vim is an example of a text editor implementation that can be expanded into a full Python IDE using configuration files and plugins.
Where will you write your code if you do not have a text editor? Your development environment must include a text editor so you can enter, edit and delete characters to create Python applications.
Preferrably your editor will have a monospace font. It will also get out of your way, so no "smart" correction or automatic letter capitalization. The more comfortable you become in your editor of choice the faster you can figure out how to implement that next feature in your application or squash that pesky bug that you just found.
IDEs contain text editors but many text editors, for example Notepad included with Windows, do not include IDE features. Many text editors such as Vim or Emacs have IDE features by default but then can be further customized to add file trees, syntax highlighting, line numbers and syntax checking that is commonly found in full-featured IDEs.
Open source provides an embarrassment of riches when its come to stable, extendable text editors. Some version of these editors, such as the original vi version of Vim, have been used for over 40 years! You can't go wrong with using one of the editors as your development environment foundation.
The following text editor implementations can be upgraded with configurations and plugins to become full-fledged IDEs when a developer wants that kind of functionality.
Vim is my editor of choice and installed by default on most *nix systems.
Emacs is another editor often used on *nix.
Mu (source code) is an open source editor intended for Python beginners.
Visual Studio Code by Microsoft provides spectacular Python support.
Editors built from the foundation up are not necessarily better than general-purpose text editors and IDEs like Vim and Emacs but they are typically much easier to configure for gathering code metrics, running unit tests and debugging.
PyCharm is a Python-specific IDE built on JetBrains' platform. There are free editions for students and open source projects.
Thonny is an open source Python IDE for new programmers. The tool bakes in syntax highlighting, code completion, a simple debugger, a beginner-friendly shell and in situ documentation to assist new developers who are just starting to code.
Wing IDE is a paid development environment with integrated debugging and code completion.
There are some editors that are closed source that developers are very happy using.
Sublime Text versions 2 and 3 (currently in beta) are popular text editors that can be extended with code completion, linting, syntax highlighting and other features using plugins. If you are considering using Sublime Text for Python development, check out this 2016 in review - likes and dislikes about Sublime Text post that summarizes many of the positives and negatives of using the editor.
Komodo is a cross-platform text editor and IDE for major languages including Python, Ruby, JavaScript, Go and more.
One great way to learn more about how text editors work is by building your own, even if it turns out to be a hacked-together proof-of-concept. These resources give walkthroughs on building an editor, or explain how existing editors work by digging into their source code.
Build your own text editor provides an awesome tutorial for creating a basic editor in the C programming language. This walkthrough is useful to break open the black box of how a tool you use every day as a programmer works under the covers.
A brief glance at how various text editors manage their textual data is a fun dive into the source code of vi, GNU Moe, Emacs, Scintilla and GNOME GtkTextView/GtkTextBuffer.
Xi: an editor for the next 20 years is an awesome technical talk about designing a text editor with the current (2018) set of tools available to a developer.
Building a Text Editor for a Digital-First Newsroom gives some wonderful insight into the New York Times' homegrown legacy text editor and why they started building a new text editor named Oak that is customized to the newsroom's workflow.
These resources provide comparisons of various editors and give some deeper insight into the IDE vs plain text editor debate.
EditorConfig (source code) is an open source tool for keeping many text editors and IDEs on the same code styles and configurations.
PyCharm vs Sublime Text has a comparison of several features between the two editors.
What is the best IDE for Python tries to answer a loaded question and gives some rationale behind choosing one application or another.
Why I Deleted My IDE; and How It Changed My Life For the Better contains some hyperbole but still has some solid reasoning why integrated environments are not necessarily for everyone depending on a developer's chosen workflow.
Text editing techniques every Front-End developer should know contains tricks that experienced developers use in their editor of choice. The author uses Sublime Text to demonstrate how the methods work but they can be used in just about any editor.