[Idle-dev] Erik Thompson's opinions on IDLE

Kurt B. Kaiser kbk at shore.net
Wed Dec 6 23:26:46 CET 2006

"Tal Einat" <taleinat at gmail.com> writes:

> Nothing too extraordinary, but things we're hearing to often:
> * would like tabbed browsing of windows

Tk8.5 incorporating Tile may support this (ttkNotebook), along with
improved native look-and-feel.  Enhancements to tkinter would probably
be required.

For those on Linux or BSD, try using the Ion window manager.  This gives
you drag and drop Tabs.  When using Ion, I usually divide my screen into
two (or four) panes with the Shell on the left and a tabbed pane on the
right containing the code I'm working on.  (Reference code gets put in
the Shell pane as a Tab.)  The key point of Ion is that overlapping
windows are a fundamental GUI design mistake (though Ion3 allows them
:).  Tab switching is done by keyboard command as well as mouse.
Multiple desktops are supported; I put my browser fullscreen on a
different one.

If you're not using Ion, just minimize the windows you are not
currently using.  It's easy to have too many windows open; close them
and use Recent Files when necessary.

> * hasn't found the "recent files" feature

Recent Files is right there on the File menu, and can be torn off
for continuous visibility if the tabs in your window system don't
give you what you need.  Even better, the Windows menu can be torn
off and will update when you open or close windows.  The Zoom entry
allows you to toggle the height of the selected window.

> On the same note, What do you guys think of re-organizing our to-do
> list, asking around the Python community and see which feature requests
> rise?

We could do that.  But remember that IDLE is intended to be minimalist
in appearance (but not in functionality - the essential goodies should
be there for the experts to find) so that it won't be intimidating to
beginners, especially in an education environment.  Note that IDLE is
now suggested as an alternative to emacs for the MIT introductory
computing course.  MIT is switching from Scheme to Python for some


The first link leads to the Python IDLE page, which could really use
some updating!  Also, Daryl Harm's introduction is getting dated.  This
link will be many people's first taste of IDLE.

If you put out a call for features, you will get many requests, often
from people who haven't used Python or IDLE very long and are just
missing features they used in other environments.  Once they get used to
Python the need for these features diminishes.  For example, I rarely
use the debugger because print statements are usually faster given
IDLE's quick F5 turnaround.  Using the debugger can be fun, but I find
it's a rare case where in retrospect it was the most efficient solution.
(Not that our debugger couldn't be improved :)

When trying code folding I usually find that it gets in the way more
than it helps.  Use smaller modules or use the Class browser.
Incremental seach would help here, though the existing search is pretty
good.  I try to keep modules under 1200 lines.

It's a matter of drawing a distinction between what's useful and
practical for routine pure Python coding, and what's just bells,
whistles, 'would be nice to have', or copies of Visual Studio
or Eclipse features.

There are many Python IDEs and editors with a development policy of
adding lots of features.  In fact, most of them do this, since it keeps
the development team amused and differentiates them from the
competition.  Over time this leads to a very busy interface with
complicated menus, rows of buttons, and multiple status and side bars.
Some even incorporate GUI editors.

IDLE is perhaps the sole representative of an alternative approach and
therefore occupies an ecological niche!  It's a lot more powerful than
it appears to be.

It would be nice if we had an enhancement to the Options dialog which
provided an extension configurator.  Then we could easily add more
features for those who need them without cluttering the GUI.  Also, IDLE
extensions could be provided as third party contributions with a central
repository somewhere.

So the question is, what *essential* features are missing from IDLE?
What improvements in usability could be made to the ones we already have
without making the interface noisy, confusing, or chewing up valuable
screen space?  People often say they prefer other 'editors', but is there
really something missing from IDLE or are they just drawn to 'flash'?

My top items:

Incremental search (in a text entry widget in the bottom status bar).

Display/modification of sys.argv, probably in the status bar, or maybe
in a separate status bar which would appear when activated.

A solid way to copy code from the Shell to an edit window (smart
copy/paste doing tab conversion where necessary?).

A way to cut text in the shell without restarting it when it gets too
full (You lose the history when you restart the shell.  Maybe save
history across restarts?)

Any comments or votes on the above?


More information about the IDLE-dev mailing list