IDLE: A cornicopia of mediocrity and obfuscation.

rantingrick rantingrick at
Tue Feb 1 06:13:06 CET 2011

On Jan 31, 4:17 pm, Kevin Walzer <k... at> wrote:
> Rick,
> I've spent a fair amount of time in the IDLE source tree, putting
> together patches for various Mac-specific bugs and submitting them to
> the Python tracker, and I agree the code is crufty and disorganized. It
> is certainly not an example of current best practices in Tkinter
> development. The code base has accrued over the years, has been touched
> by many, many different hands, and I think its current messy state
> reflects that legacy.

Thanks for admitting this. Some people refuse to see the truth!

> But, as I understand it, the purpose of IDLE is not to provide a
> pedagogical example of Tkinter programming practices, but instead to
> provide a lightweight development environment for those learning Python,
> to interactively explore different aspects of Python. For this it serves
> its purpose well. I use IDLE a good deal for my Python development work,
> and the cruftiness of the code under the hood is not an impediment to me
> getting my work done (unless the work is patching IDLE itself).

Yes. IDLE is first and foremost a tool to get work done. However we
should not ignore the fact that IDLE could also be a great learning
resource for Tkinter GUI's and other subjects. Why not clean up the
code base? We could start small. First, move the custom widgets like
textView, Tabbedpages, FindDialog, ReplaceDialog, and TreeWidget into
the lib-tk for others to use more freely. Then we can modify the
"event robbers" CallTips, ParenMatch, and ColorDelegator. Just small
steps Kevin. It all starts with babysteps. At least we would be doing
something. Currently we are sitting around waiting for a miracle to
happen, and problems are solved by methods, not miracles!

> Given this, I don't see any huge need to bulldoze IDLE to the ground and
> replace it with something else, or even do massive rewrites of the code,
> unless such a project also significantly improved the user-facing
> portions of IDLE as well.

Well some changes and improvements can be made to the UI as well.

More information about the Python-list mailing list