The Invent with Python Blog

Thu 20 November 2014

IDLE Reimagined

Posted by Al Sweigart in python   

(Update: I've recorded a copy of a talk I gave at PyCon 2015's Education Summit about IDLE Reimagined and posted it to YouTube.)

I've started a wiki for an IDLE redesign project:

If you would like to help, please join the mailing list:!forum/idle-reimagined/

IDLE Reimagined mockup screenshot

From the wiki:

IDLE Reimagined is the code name for a redesign for Python's default IDLE editor with focus as an educational tool. IDLE's chief utility is that it comes installed with Python, making it simple for newbies to start programming. But professional software developers don't use IDLE as their IDE. Instead of turning IDLE into a sophisticated IDE for professional software developers, it can be tooled with features specifically to make it friendly to those learning to program.

Prime Directives for the new design:

  1. IR is designed not for experienced developers or those new to Python, but specifically for those new to programming.
  2. IR is meant to be a drop-in replacement of IDLE, and be installed with the default Python installer.
  3. IR's code will use the tkinter GUI toolkit (unless a better GUI toolkit is bundled with Python).
  4. IR is fully-featured offline, but also has features for finding help or sharing code online.
  5. "Simple is better than complex."

These are the features that will distinguish IR and make it a good candidate to replace IDLE:

  1. Single window design, with file editor on the upper pane and interactive shell on the lower pane. (No more confusing separate windows for shell & file editor.)
  2. Tabbed file editor.
  3. Foreign language support. (Though Python's keywords and standard library will still be in English, IDLE itself can be multi-lingual.)
  4. Tutorial plugin system for Codecademy-like tutorials.
  5. Integrated pip installer.
  6. Integrated pastebin feature. (Easily share code with those who can help you.)
  7. "Plain English" error message translations. Instant Google-search for error messages.
  8. Detects and warns if you are trying to run Python 2 code on Python 3.
  9. Lightweight real-time lint tool that will point out missing variables and syntax errors. (Checks for errors, but does not check for style or PEP8.)