The Python IDE Manifesto
I've been discussing over the past few days at c.l.py the state of the Python IDEs. Other threads have popped out on this same very subject since I resumed reading the mailing list a few weeks ago. To put things into perspective, IDEs are also a hot topic at one well known magazine. It's hard to keep the discussion from becoming religious. I'l try my best to respectfully put my own opinion here. However, it's a manifesto. It's meant to be opinionated and passional. Be warned.
Over the past weeks I've been looking for a good IDE to support my Python programming activities. My search has led me to literally dozens of products of varying degrees of quality. Many are broken. Some are incomplete. A few are working, but still missing some important features. After this long search, I'm still missing it somehow. I need a good, solid IDE.
What is an IDE? The acronym means "Integrated Development Environment". Any of the three words has a broad meaning of its own. The resulting expression also does have a broad meaning. I'm going to narrow it here, to put things as I understand them. For all purposes of this manifesto, an IDE is a well integrated software suite that allows a developer to do all the tasks related to his programming activities in productive environment. There's one more thing in my definition that takes IDE apart from code editors: A good IDE must provide a foundation for a RAD style of development, automating many of the tasks related to project management, and providing a high level framework for application development.
Good IDEs are a productivity tool. Bad IDEs are distracting, and that's a good reason why many programmers swear by their combination of console-based editing and programming tools.
Good IDEs are simpler than the sum of its parts. It's supposed to remove complexity, not to bring more complexity.
Good IDEs work at all levels of abstraction, from project management to simple coding tasks. It makes easy to locate and work with all the files in a project. It makes navigating the file system unnecessary for most maintenance tasks, removing a lot of clutter out of the view. On the other end, it supports all the functionality you would expect from a code editor: syntax coloring, code completion (possible even in Python), class browsers, and regular expression support, to name a few.
Good IDEs support Rapid Application Development, and that means that they are able to automate much of the stuff that is neede to make a simple project take off. That's probably the main difference between code editors and professional IDEs -- at least, that's something all the top commercial IDEs support. It goes beyond the edit-compile-run cycle. The IDE must work closely with the application framework, automatically generating parts of the code that are needed to integrate the pieces. This is essential for the visual part -- the form designer -- but by no means limited to it; it's also useful to write modules, packages, or any other stuff that is going to be integrated with the rest of the project.
Up to this point, I've been talking about good IDEs. But there's something better. The perfect IDE supports more than one style of development. Some people do network programming. Some people do scientific programming. Others do business stuff, and that's mean database access. Each type of software imposes a different approach to the development cycle. For example, a good interactive shell is a must for scientific programming, but it's not nearly as important for business app development. The debugging needs vary considerably. Each style also imposes its own framework and supporting libraries, and the perfect IDE seamlessly support them all with sound abstractions for each need.
Closing words
The perfect IDE is still a distant dream. But there's something that I need, and that I was still not quite able to find. It's a good IDE for business application development. There are some promising tools here -- Boa Constructor and PythonCard deserving special mention. But both fail to some degree, specially when it comes to the framework (or lack thereof), including the database support. And that's where the main weak spot of Python's library is today. Although a lot of tools are available, there's no integration, each one being designed and coded to solve some particular problem. It's a difficult problem to solve without a central vision. It's no wonder that the best IDEs available are all commercial offerings that include their own frameworks. It's not as if the open source community can't do it; it's probably because nobody with the required skills ever bothered to tackle it himself. But the open source community has already shown what is it capable of doing, and it may be only a question of time until it gets done.
14 Comments:
At September 15, 2004 at 8:23 AM, Anonymous said…
Can you give an example of what you do consider to be a good IDE?
I like Eclipse (for Java development), but in fact, if's just a glorified text editor by your definition. You need *another* tool for setting up the framework of a project - something like the wonderful AppFuse. And GUI building you do yourself also, though I gather that there are plug-ins available for this.
Cheers,
Simon B,
simon.brunning@gmail.com,
http://www.brunningonline.net/simon/blog/
At September 15, 2004 at 9:23 AM, Unknown said…
Well, the definition of "good" depends a little on when it was released. What was good yesterday is not as good today, and may be laughable in the future. Taking this into consideration, Borland's Delphi 2.0 was the best IDE of all time -- considering the technology available at the time. There was an API that allowed for third party tools to work integrated inside the environment. There was a toolset called GExperts that added features such as project backup (using automatically named zip files), source code control, and a lot of other niceties. Unfortunately, VB took a larger market share despite being an awful language, only because it was "MS+Basic", not "someone else+Pascal". I selected 2.0, because as time went by Borland somewhat messed up Delphi's clean architecture.
For today's market, I think that Delphi is still ahead of MS Visual Studio -- for the simple reason that MS's offering has to work with several different languages, and so loses a bit of focus in the generalization. For all that I know from some close friends there are some great Java IDEs also, but I'm not a Java programmer, so I can't be absolutely sure about it.
At September 24, 2006 at 12:35 PM, Anonymous said…
Great work!
[url=http://cfpzqxac.com/pnvn/vudz.html]My homepage[/url] | [url=http://zsqxnuhu.com/yhzg/evls.html]Cool site[/url]
At September 24, 2006 at 12:35 PM, Anonymous said…
Thank you!
My homepage | Please visit
At September 24, 2006 at 12:35 PM, Anonymous said…
Good design!
http://cfpzqxac.com/pnvn/vudz.html | http://iahzoxtn.com/skqg/jrnc.html
At August 18, 2007 at 12:35 PM, Anonymous said…
Great article! Thanks.
At August 18, 2007 at 6:11 PM, Anonymous said…
Thanks for interesting article.
At September 10, 2007 at 9:37 AM, Anonymous said…
Excellent website. Good work. Very useful. I will bookmark!
At March 4, 2016 at 8:41 PM, Anonymous said…
ninest123 16.03
prada outlet, nike outlet, longchamp outlet, burberry outlet, gucci handbags, ralph lauren polo, cheap jordans, louis vuitton outlet, louis vuitton outlet online, oakley sunglasses, uggs on sale, louis vuitton outlet, tiffany jewelry, replica watches, ralph lauren outlet, michael kors outlet, longchamp outlet, cheap oakley sunglasses, ray ban sunglasses, michael kors handbags, replica watches, michael kors outlet online, oakley sunglasses, uggs on sale, louboutin shoes, christian louboutin, ray ban sunglasses, uggs outlet, nike free, christian louboutin, uggs outlet, tiffany jewelry, nike air max, oakley sunglasses, longchamp bags, uggs on sale, michael kors outlet online, michael kors outlet online, nike air max, louis vuitton handbags, oakley sunglasses, louis vuitton, ray ban sunglasses, louboutin uk, michael kors, tory burch outlet, burberry factory outlet, prada handbags
At March 4, 2016 at 8:42 PM, Anonymous said…
lunette oakley pas cher, nike roshe run pas cher, lululemon outlet, hollister uk, jordan pas cher, coach purses, lunette ray ban pas cher, nike tn pas cher, hogan sito ufficiale, abercrombie and fitch, new balance, longchamp soldes, nike blazer pas cher, true religion outlet, true religion outlet, michael kors, replica handbags, michael kors, sac guess pas cher, ray ban uk, nike air max, mulberry uk, vans pas cher, abercrombie and fitch UK, louboutin pas cher, nike air max pas cher, coach outlet store online, nike free pas cher, true religion jeans, polo lacoste pas cher, true religion outlet, nike air max uk, ralph lauren pas cher, kate spade outlet, longchamp pas cher, nike air force, polo ralph lauren uk, hermes pas cher, michael kors uk, north face uk, timberland pas cher, vanessa bruno pas cher, nike free, michael kors outlet online, coach outlet, nike air max uk, burberry pas cher, north face pas cher, converse
At March 4, 2016 at 8:43 PM, Anonymous said…
swarovski jewelry, coach outlet, links of london uk, canada goose, canada goose pas cher, moncler, barbour, ugg pas cher, louis vuitton, supra shoes, converse, wedding dresses uk, pandora charms, canada goose uk, karen millen uk, ugg,uggs,uggs canada, canada goose outlet, louis vuitton uk, pandora uk, replica watches, moncler, moncler pas cher, ugg,ugg australia,ugg italia, moncler, swarovski uk, canada goose outlet, canada goose jackets, moncler, converse shoes outlet, bottes ugg pas cher, barbour jackets uk, canada goose jackets, hollister, marc jacobs, thomas sabo uk, ugg uk, toms shoes, moncler uk, sac louis vuitton, sac louis vuitton, gucci, pandora jewelry, moncler jackets, juicy couture outlet, pandora jewelry, montre pas cher, juicy couture outlet, canada goose, louis vuitton, moncler outlet, ray ban, lancel
ninest123 16.03
At May 25, 2017 at 10:44 PM, ronaldphillips said…
the app likewise offers added behance.net/ alternative to cleanse the scrap files and also official guide your tool cache. If your gadget is How to Install Tutu Helper App for Android, iPhone & Windows PC lagging while making use of tutuapp you can use TuTu App this option to get rid of the temp, scrap and also clear the storage TutuHelper as well as cache of the applications.
At July 6, 2017 at 3:37 AM, Anonymous said…
Open Kodi Addon software program wixsite.com/ as well as look for system setting.Currently Website open documents manager by following Mobdro App All Version Free Download For Android, iPhone, PC this course After that click on Include Source Mobdro button there.In Include resource choice, select None Mobdro App and also click OK You will certainly get an online.
At July 3, 2019 at 10:50 AM, jsminemie said…
http://echometer.com/UserProfile/tabid/61/userId/579403/Default.aspx
http://www.lipapromet.hr/UserProfile/tabid/43/userId/5286/Default.aspx
http://www.koenwilmaers.be/UserProfile/tabid/321/userId/954644/language/en-US/Default.aspx
http://dnn5.bevirtual.co.uk/UserProfile/tabid/229/UserID/2302607/Default.aspx
Post a Comment
<< Home