David Mertz (mertz@gnosis.cx)
Accidental ideologue, Gnosis software, Inc.
David Mertz introduced six Python integrated development environments and compared their features, platforms, and stability. He found that-perhaps just inadvertently testing the open source code module-free products seem to be superior to commercial products.
In the past few weeks, I had the honor to have a brand new trial (or first trial) on some Python development environments ). This will probably involve trying the "best text editor, appending command lines" method to Python development, and for more complex Python integrated development environment (IDE) the Python discussion website contains detailed content.
I came to a somewhat surprised Conclusion With My overall impression of Python IDE. This may be a common sense or a coincidence. In general, I found that free tools are better than paid commercial tools.
Python Introduction Python is a free and advanced interpretation language developed by Guido van rosum. It combines clear syntax with powerful (but optional) Object-oriented semantics. Python can be found on almost all the computer platforms you work on and has strong portability between platforms. |
Written outside evaluation
First, I must point out some of myNoOpportunity tool, you can evaluate by yourself:
- PythonwarePythonworks pro 1.1It looks promising. Please refer to the screen of its demo version. It includes
Tkinter
Form Designer, new editor, debugger, and beautiful screen interface. It is applicable to Linux, windows, and Solaris. Pythonworks pro is expensive: $400. During this evaluation, I failed to obtain the final version for the evaluation.
- BOA ConstructorIs an open-source Python ide with excellent interfaces. It includes the wxwindows Form Designer. It also has excellent editors, debuggers, project managers, and some other components. BOA constructor runs on Win32 and X11 (wxwindows must support the appropriate platform ). Unfortunately, its home page claims that the program is still in the "pre-Alpha" stage. Although the screen snapshots are excellent, I think it is still impossible to recommend such a tool that is still in the early development stage.
- Of course, the last class of untested tools is dozens of excellentText EditorWith a variety of Python-friendly features, such as syntax label highlighting, execution windows, code merging, macro functions, and many or even the best ide functions. These tools are beyond the scope of this discussion, but there are still a lot to talk about for your favorite (and familiar) text editors.
Horizontal comparison
There will always be more or less standard and free Python code development tools. In general, these tools are stable, robust, and well-designed. On the other hand, standard free tools are not necessarily so flashy.
IdleIs used in a pure Python EnvironmentTkinter
A fairly basic IDE. In general, idle is a standard Python release, or even written by Guido van rosum (at least most of the original version ). You can run Python andTK
Run idle in any environment. Open idle and an enhanced interactive command line interpreter window appears (with better cut-paste and back-to-line functions than the basic interactive command prompt ). In addition, there is an editor for python (without code merging, but with syntax label highlighting and Automatic Code Completion), browser-like and debugger. The menu is separated by TK; that is, clicking the dotted line of any drop-down menu at the top will promote the menu to its own permanent window. Especially for the "edit" menu, it is very practical to "rely on" it in the corner of the desktop. The idle debugger provides breakpoint, step-by-step, and variable monitoring functions, but it does not have its memory address or variable content storage, or it provides excellent synchronization and other analysis functions. Of course, my debugging style includes some scatteredprint
Command, but your method can be different from me.
Some minor issues in idle-at least in version 0.6. In my win95r2 system (also the idle system I tried), the pop-up template will always stay on the screen to block what I want to input. More seriously, it is easy to cause the idle to stop responding when an error script is running. For example, the Codewhile 1:x=1
It will inevitably cause the idle to be forcibly disabled rather than executing the code. Obviously, no one will intentionally write this code first, but even in the oldest Python interaction session, Ctrl-C can be used to close it (it is undeniable that there is a session with this function ).
PythonwinIt is superior to idle in many aspects. Of course, as shown in the software name, this tool is for Win32 users. The easiest way to get pythonwin is to download the activepython 2.0 release, which is quite good (I installed build 203 for this column ). ActiveState Python includes a series of excellent additional modules, and some (suchNumPy
AndPIL
In the installation process, you can select as an additional download. There are other additional modules; one is pythonwin (idle is also included), and the other is a series of useful pythoncom extension components for Windows scripts. ActiveState has a non-Windows release, but some components do not match windows.
Pythonwin is very handy (as comfortable as windows ). It has an easy-to-use Editor, including code merging, syntax tag highlighting, and Automatic Code completion. Like some ides, pythonwin does not contain any form designer, but it provides an excellent debugger, it has functions such as monitoring, code check, interactive debugging window, breakpoint, and other debuggers. Most importantly, pythonwin is very stable, although sometimes it is strange to "stop responding" when used on the win95r2 system ". On the interface, pythonwin is relatively simple, but very attractive. It makes good use of embedded and docked elements (I prefer idle-style "customized windows everywhere ", it is also used by many other IDES ). Pythonwin also integrates Python instructions for htmlhelp of ActiveState and pythoncom.
Macpython ideSimilar to pythonwin, it is only applicable to different platforms. Similar to idle and pythonwin, macpython ide appears with the standard release for its platform and is a free software (written by just van rosum ). After installing macpython, we recommend that you first try to obtain the advanced editor patch (see references after the column ). The first installation was a bit strange, but the third installation was successful (I don't know where the original problem was ); install this patch to obtain the syntax label highlighting and help functions of some context-sensitive functions or modules. Except for the standard version, I don't know if any other ide can work with python on the Mac platform. Fortunately, the tool compiled by just van rosum is very similar to Python and has a software style similar to Mac.
Macpython ide contains Python command line windows (MAC itself does not have a command line, so multiple steps are required), editors, debuggers, and even descriptors. In its environment, there is a function jump list, a module browser, and some other tools. The debugger is excellent, but there is no monitor. The editor "not included in the standard release" is relatively original, but the patch is highlighted with syntax labels. However, there is still no code merging or code automation (but there is a context function documentation line after the patch is installed ). The built-in descriptors are functions not available in most ides, which is also the advantage of macpython.
Vertical Comparison
KomodoIs a new commercial IDE. (This evaluation uses the updated beta version. See the screen ). Komodo is an ActiveState multi-language, multi-platform IDE. An interesting decision made Komodo build based on the Mozilla framework. It seems that Web browsers do not need so much code useful to IDE, but ActiveState makes full use of this (Mozilla tries to become a "Platform" instead of just a browser, this is true ). Komodo is priced at $295 a year, and the free beta version is quite disappointing. Moreover, ActiveState seems to be in violation of the spirit of Mozilla's Public License (which may be different from the original article) from the Komodo code ). I want ActiveState to decide to change the license regulations to comply with open source code practices (Technical Support and automatic updates are charged ).
The Beta 1.3 I tested supports the development of Python, Perl, TCL, JavaScript, and XML, and supports syntax labels highlighted in dozens of other languages (but not in more languages ). Python support is currently the strongest. A beta version that supports Win32 and Linux is available and will support other platforms one after another.
In my opinion, Komodo is more like a superset of pythonwin. As far as I know, it does not share most of the same Code libraries, but it feels similar. Thanks to Mozilla, Komodo is the software I tested.InterfaceThe best one, because it is also the slowest to run for the same reason. I do not recommend using Komodo on older machines. I tested it on the 366 MHz win95r2 system and found it can run but it is not fast. Although the debugger and Editor interface is similar to pythonwin, You can edit many other languages, debug Perl and python, and run Komodo in Linux. Komodo's "code check" function is extremely intelligent and unique. It works like the spelling checker of many recent word processing software: When you enter, there is a problem with the Code following a curve sign; you can continue to enter, and it will always mark until you return and correct the problem, it is also a good prompt. KomodoNoTry to build any Form Designer or graphic programming. In addition, it is good as a beta version.
In-depth internal
Now let's analyze how to purchase Python IDE. People generally think that commercial products provide additional functions and are worth the money to purchase. This is true in some ways.WingideIt is priced at $100.BlackadderThe price is $80 (for personal systems only) and $400 (for distribution of Blackadder running components to others ). Unfortunately, I found that these two products are not stable enough to be recommended for actual development. If the IDE cannot be used for actual development, there are not so many common functions. We hope these two products can be improved through new versions or patch fixes.
BlackadderIs a QT-based development environment in Linux and Windows. See the screen. In the product mentioned in this column, this product is the only one with a Form Designer, and the Form Designer itself is doing very well (usedPyQT
Programming ). Like Delphi, Visual Basic, and similar tools, you can place gadgets on the panel and adjust attributes and behaviors in the "attributes" form. The icon of the element is a little dull, especially when it turns gray, but it is not very important to be beautiful. The source code editor provides code merging and syntax label highlighting, but there is no automatic Code Completion prompt. Blackadder has a very good debugger, which is similar to other free tools except for the lack of monitoring functions.
Unfortunately, I encountered some serious usage problems in testing V1.0 beta 2. I tested the Mandrake, slackware, and Windows packages (but did not test Debian and RedHat, although I think the Linux variants are just different software packages ). Various problems are everywhere (probably partly because the correct operating system version and revision version must be relied on ). For example, the default font is too small to be read in Linux and Windows. Changing the font of the editor requires you to monotonically modify the font of 20 syntax markup elements (there are not many other "inherit font" options in the editor and IDE ). Worse, in the mandrake 7.1 and custom slackware 7.1, the python interpreter "unexpectedly terminated" When Blackadder was started ". You can edit files but cannot run them in IDE. My attempt to change the python path-pointing to Python 2.0 or Python 1.5.2-successfully changed the error message but did not solve the problem. In addition, some Python scripts in Windows cannot be opened in Blackadder, and the prompt is "X is not a valid Blackadder File ". There is no obvious rule for this information. You may solve this problem through some efforts-but if you spend $400 to buy the product, you will not be able to debug it.
WingideIs a good ide; see the screen. Its Editor contains syntax labels highlighted in many languages, although it is only a python-oriented tool. The source code browser is very useful for browsing projects or modules (as shown in the navigation source code and document line summaries ). Although there is no monitor, the debugger is well designed. The editor has excellent command auto-completion and function jump list, but no code merging. The project-oriented IDE is very useful for large products (in this respect, it is better than Komodo in most free IDES ). The overall interface is like an enhanced idle, which uses a "Multi-Window" arrangement similar to many TK and XWindow interfaces. I like to use docking and embedding (this is not due to the excessive use of MS Visual Studio), but different developers may like forms of different styles. Wingide is a promising development environment.
Blackadder and even wingide-versions 1.0 and 1.1b3 I tested-cannot be recommended for major development due to problems. There are a lot of annoying things, such as the license key setting process and the odd-probably missing-toolbar prompts. There are also many small errors, such as the lack of the "open recent file" menu item. Therefore, when the program runs (not just test code), you can only open the interactive command line interpreter window. However, these problems are all minor issues. The fatal problem is that wingide randomly generates a split error in my Mandrake 7.1. Once this happens, everything is done, and you will lose any ongoing work. "Save frequently" is a good suggestion, but it is not enough to make wingide fully available.
Summary
For programmers who like structured programming and development environments, some excellent ones -- some promising but not very good ones -- can be obtained by Python ide now. Try it out, because even commercial products have demo versions. You will find that these ides are a good way to speed up the development process. At the same time, pay close attention to the latest articles in this column. We will also evaluate the improved versions of some other IDES and tested products.
References
- Please understand pythonware's pythonworks pro 1.1
- Take a look at BOA constructor, which is based on wxwindows/
wxPython
Screen Builder and development environment
- Activepython 2.0 (win32) of ActiveState includes Mark Hammond's pythonwin IDE and many other good tools (including Linux and Solaris ).
- ActiveState's Komodo multi-language ide now provides Win32 and Linux versions.
- Learn about macpython.
- Download the advanced editor patch and other macpython ide enhancement components.
- Refer to the Blackadder homepage of kompany.
- Read the official wingide information of archaeopteryx.
- In additionDeveloperworksFor more information, see "Linux ide comparison" and "Python TK programming ".
Related author David Mertz is a lazy and impatient person. His famous saying is that arrogance should not be confused with arrogance or male. Contact David through a mertz@gnosis.cx; his energy is fully invested in http://gnosis.cx/publish. You are very welcome to provide comments and suggestions on this or future column. |