A text editor is all very well for simple notes, but for programming the basic text editor will quickly become very tedious. For example, Python uses code indentation to indicate ‘blocks’, using tabs or spaces (4 spaces recommended for each level of indentation). It will help a lot if the editor you use ‘knows’ Python! It will help not only with indentation but also guide you in your programming. They range from lightweight editors to sophisticated Interactive (or Integrated) Development Environments (IDEs). At this stage you’ll find a fully-featured IDE confusing, they have lots of buttons and tabs and panes. Like the cockpit of a Space Shuttle rather than the dashboard of a car!
The boundary between editor and IDE is very indistinct and I’m not going to try to be formal about it other than saying that the more of these features it has, the more it qualifies as an IDE:
- syntax colouring
- code completion
- code folding
- version control
- code repository (e.g. github) integration
- code refactoring
- source code editor
- build automation
- intelligent code completion
I spent a considerable amount of time researching Python editors & IDEs. I had to eliminate many based on how difficult it was to get them to use Python 3 instead of 2, and how complex or cumbersome they might be for people who aren’t computer professionals, such as students & teachers. The following, in my opinion, are all suitable for the classroom or beginning programmers of any age. Try them all if you can, and do please let me know in the comments how you got on, or if you know any others I should consider including. They are all free, except Sublime Text, which has an infinitely long ‘evaluation period’. All of them welcome contributions!
IDLE is the Python IDE built with the tkinter GUI toolkit. IDLE has the following features:
- coded in 100% pure Python, using the tkinter GUI toolkit
- cross-platform: works on Windows, Unix, and Mac OS X
- multi-window text editor with multiple undo, Python colorizing, smart indent, call tips, and many other features
- Python shell window (a.k.a. interactive interpreter)
- debugger (not complete, but you can set breakpoints, view and step)
Geany is a text editor using the GTK2 toolkit with basic features of an integrated development environment. It was developed to provide a small and fast IDE, which has only a few dependencies from other packages. It supports many filetypes and has some nice features.
gedit is the GNOME text editor. While aiming at simplicity and ease of use, gedit is a powerful general purpose text editor. Features:
- Full support for internationalized text (UTF-8)
- Configurable syntax highlighting for various languages (C, C++, Java, HTML, XML, Python, Perl and many others)
NINJA-IDE (from the recursive acronym: “Ninja-IDE Is Not Just Another IDE”), is a cross-platform integrated development environment (IDE). NINJA-IDE runs on Linux/X11, Mac OS X and Windows desktop operating systems, and allows developers to create applications for several purposes using all the tools and utilities of NINJA-IDE, making the task of writing software easier and more enjoyable.
Spyder is an open source cross-platform IDE for scientific programming in the Python language. Spyder integrates NumPy, SciPy, Matplotlib and IPython, as well as other open source software. In comparison with other IDEs for scientific development Spyder has a unique set of features – cross-platform, open-source, written in Python and available under non-copyleft license. My personal choice.
Sublime Text is a cross-platform text and source code editor with a Python application programming interface (API). It natively supports many programming languages and markup languages, and its functionality can be extended by users with plugins, typically community-built and maintained under free-software licenses. Sublime Text is proprietary software.
PyCharm used to be my IDE of choice, but I found start-up too slow, and being project-based it creates extra files, and has lots of features (and thus tabs & buttons & panes) I didn’t want. But it’s a very strong favourite among professional developers, with good reason. Check it out after all the above!
[welcomewikilite wikiurl=”http://en.wikipedia.org/wiki/Integrated_development_environment” sections=”Short description” settings=””]