Before we move onto writing programs in Python, we will be needing an Editor to write the source files. But many of us will be having a confusion here, whether to choose an IDE or a Text editor. With dozens of fancy editors and IDEs out there for the beginners probably its nightmare to select and stick to one where one of your friend suggests you to use vim and other says don’t get your head banging with vim or emacs go for simple GUI’s like IDLE. Not only choosing IDE or text editor is a big decision to make but customizing it to your need is another important step to take after you have chosen of them. Now lets us look at available IDE’s and text editors which are mostly used here. By the end of the post you might be, well you should be able to decide which one you are going to stick with.
Well, a Text editor can be used to create and edit text files. There are few text editor which are specifically built for writing programming languages that has some special features like Syntax highlighting , automatic editing and Compilation and Execution Commands.
IDE stands for Integrated Development Environment, they have mostly all the features of a Text Editor. The idea behind an IDE is to encompass everything a Python programmer could want to do in one application. Theoretically it should allow them to develop Python programs faster. A IDE contains many features like:
Automatic code completion: while typing any Python code, the IDE will give a list to chose from which will make the work easier if the code has to be repeated.
Optimization: While developing python codes the complexity may increase, IDE may help in increasing the speed and efficiency.
and many more. When you get to the point where you need to juggle dozens of source files and link them together, that’s when I recommend an IDE.
So let me list the most used, more user friendly and the best of IDE’s and Text editors.
IDE(Integrated Development Environment)
When asks for which is the best IDE for Python, there may be many questions which will pop-up.
What OS? Your definition of an “IDE”? Do you just want an editing environment with say class browsing capabilities or do you want an integrated debugger and such? And many more may be…
I have prepared a list of IDE’s which has unique properties from other:
1.Stani’s Python editor
→ Stani’s Python editor (SPE) named after the IDE’s author. SPE is another free IDE written in Python, and it requires at least Python 2.6 to run, which is the version of Python I’ll be working on.
→ In windows, It cannot be started as such from the Start menu, it has to invoked from command line.
→ The SPE editor includes code completion, call tips and compile checking, compile checking is optional.
→ One of SPE’s unique features is its ability to integrate with Blender, the free, commercial-grade graphical rendering and animation system. (It would be impossible to adequately describe Blender in this small space, see the Blender website for more info.) You can actually run SPE inside Blender, which can be scripted with Python.
→ Website: http://pythonide.blogspot.in/
→ Komodo Edit, a text editor developed by ActiveState, is a powerful text based editor that so happens to be free and open source. This cross platform, Python based text editor is available for use on Windows,Mac OS X and Linux.
→ Auto-complete on keywords and functions(Code completion).
→ Syntax highlighting and checking.
→ Multiple features on indentation(incremental searches, code folding, and code commenting, auto-indent, block selection, line ending and special character handling…)
→ Very easy to use , so for beginners this can very handy.
→ Support for multiple languages.
→ Website: http://www.activestate.com/komodo-edit
→ IDLE has most of the nice touches you want in a Python editor: commenting/uncommenting blocks; indenting/dedenting; regular expression searches; jump to line; and converting tabs to spaces or the reverse. IDLE starts out as an enhanced interactive shell window(with a bit better cut-and-paste, scroll-back, etc. than the basic interactive prompt).
→ Bold color choices in the syntax highlighting.
→ Drawback:This is a minor drawback yet, most of the menus have to be worked on with mouse only.
→ In Ubuntu terminal: sudo apt-get install idle-python2.4
→ Which stands for Ninja-IDE Is Not Just Another IDE, NINJA-IDE allows you to work with single scripts as well as manage complex projects consisting of multiple files and libraries.
→ code completion and syntax coloring as well as error warnings where error warnings are like detects and highlights common formatting problems like excessive or missing white spaces, incorrect indentation, long lines, etc.
→ Hovering the mouse over a specific code will give the briefing about the data.
→ It has an embedded python console which enables you to run the scripts.
→ Website: http://ninja-ide.org/
→ PyDev is a Python IDE for Eclipse, which may be used in Python, Jython and IronPythondevelopment. Important feature of this is Code completion,
→ Pre-requisites: Eclipse SDK 3.7.0, Git and Java 5.0 (note that other versions of those should work too but details may differ a bit)
→ Drawbacks: Code completion will not work unless you
→ Website: http://pydev.org
→ Wingware’s Wing IDE is available in three editions: Professional, Personal, and Wing IDE 101. All versions will run on Windows, Mac, and Linux, and all support the 2.x versions of Python, as well as Python 3.0 and 3.1.
→ The Wing IDE layout is straightforward, with the editor window being its central fixture. Supporting panes, source browser, runtime output and debug panes and so on, are arranged on the periphery. In the lower right is the eminently useful Source Assistant pane, the Wing IDE’s answer to call tips.
→ Code Completion and matching.
→ Wingware’s debugger one of the best feature of Wing IDE, which is highly configurable and supports remote debugging.
→ Website: http://www.wingware.com/
→ With many features like syntax-highlighting, Auto-completion,Multiple document support and many more.
→ Another amazing thing to know is with all these features the developers of the program (Nick Treleaven, Enrico Troger and Frank Lanitz) managed to keep the size so small.
→ Website: http://www.geany.org/Main/HomePage
The list of Text Editors is made in view of Extensibility(whether the editor supports plugins, extensions),Speed(Rates the startup time,performance),Cross-platform(multiple OS),Power(Features, Editing modes) and Beginner friendliness.
→ Released in 1991 this versatile and powerful editor gained a massive following in the open source world.
→ Light and fast
→ Goes over ssh very well
→ Simple configuration
→ Lots of flexibility
→ It is open source software and comes preinstalled on most Linux systems.
→ Website: http://www.vim.org/
→ Drawbacks : This is definitely not for Beginners, my advice to them is learn to use VI/Vim which is very useful and can be learnt using Vimtutor.
→ Development of Emacs started in the 1970 and is said to be one of the first to implement implement syntax highlighting, support for multiple programming languages and automatic indentation.
→ Quick execution, transparent functionality and customisable.
→ The Org-mode addon in Emacs gives a superhero powers to it, the powers are task management ,connect with other applications( HTML, latex beamer, google calendar) ,table creation and Good for draft/notes preparation, etc.
→ Emacs is free and open source software
→ Website: http://www.gnu.org/software/emacs
→ A cross-platform code editor, which supports multiple selections, code folding, keyboard bindings, macros, split screen editing and projects.
→ Fullscreen and distraction-free modes, which look great on big displays.
→ It runs on Linux, Windows and OSX.
→ A proprietary software.
→ Eclipse is a kind of universal tool platform – an open extensible IDE for anything and nothing in particular.
→Syntax highlighting to allow for easy location of code segments with just a glance.
→ Search/Grep feature of Eclipse to search through your python source code modules.
→ Eclipse bookmarking and create task bookmarks inside the eclipse python editor.
→ Eclipse offers powerful code hinting, built in documentation and real-time syntax checking.
→ Eclipse is free and open source.
→ Drawbacks:Eclipse has frequently been reported for being slow on large projects.
→ Aptana Studio is based on Eclipse.
→ It comes in both a Stand-alone Version and as an Eclipse Plug-in. The stand-alone version is quite a large file (130.7 MB for Windows), so I would recommend getting the plugin if you already have Eclipse 3.5 or higher. Both editions are available for the Mac OS X, Windows (x86 – x64 Compatible), and Linux operating systems.
→ Very helpful for web developers.
→ It has Git integration, ability to deploy your application to remote servers and bundles of useful code snippets and actions for every language.
→ Aptana is free and open source.
→ Website: http://www.aptana.org/
→ A free, open-source Integrated Development Environment for software developers.
→ Speciality of this superhero lies in Java development though
→ It runs on Linux, Windows and OSX.
→ Website: http://www.netbeans.org/
→ Drawbacks:Netbeans has frequently been reported for being slow on large projects.
→ Created by a closet UNIX geek who was lured to the Mac platform by its ease of use and elegance, TextMate has been referred to as the culmination of Emacs and OS X.
→ Extensive support for macros and bundles, code folding, snippets, shell integration, clipboard history and project management.
→ Completion of Words from Current Document.
→ Proprietary software.
→ Website: http://macromates.com/
→ I will rate this as most user friendly Text editor, which is very easy to use.
→ The editor also has support for split screen editing,an FTP browser, macros and powerful text editing capabilities.
→ Notepad++ is a free (as in “free speech” and also as in “free beer”).
→ Website: http://www.notepad-plus-plus.org/
Further Readings:IDE http://wiki.python.org/moin/IntegratedDevelopmentEnvironments Choosing an editor http://www.ibiblio.org/g2swap/byteofpython/read/choosing-an-editor.html NINJA- IDE: http://www.linux-magazine.com/Online/Blogs/Productivity-Sauce/Do-Python-Coding-with-NINJA-IDE/ Komodo Edit: http://www.brighthub.com/internet/web-development/reviews/85090.aspx SPE review http://review.techworld.com/applications/3238831/spe-review/ IDLE review http://www.ibm.com/developerworks/linux/library/l-cpyide/ We convered how to install python and you should have got an idea on which IDE will suit you to get started writing python codes.
This is going to be a continuous series of python tutorials. If you want to learn python with us subscribe to our newsletter and get update as soon as we make a post.