
Modernizing Python's IDLE - markroseman
http://www.tkdocs.com/tutorial/idle.html
======
jamesdutc
I've recently seen a lot of demand in Python corporate training.

High-quality corporate training hinges on maximizing student engagement. This
typically means having students spend time in class writing programs. (In one
four day class, I've had students write >20 programs.)

IDLE is a surprisingly good tool for this.

It's cross-platform and in the standard library. It postpones questions about
which is the best editor/IDE. It avoids the tab/spaces problems. In fact, it's
just about the simplest tool for teaching interactive development (i.e.,
coding with access to a REPL.) (I should note that this style of programming
is distinct from how quants and data scientists work: they write more analyses
than programs/scripts. When doing corporate training for quants and data
scientists, Jupyter Notebook is the only way to go.)

By the end of the class, most students are pretty tired of using IDLE. It's
not a very good editor; only barely better than Notepad. As the article's
screenshots show, it just looks ugly. It's not even close in functionality to
an IDE or a `vim`/`emacs`+plugins. The REPL is extremely clumsy to use in
practice (especially compared to `bpython` or `ipython`.) In fact, I would be
shocked if anyone actually uses IDLE as part of their regular job.

That said, it's a great teaching tool, and I'm glad to see someone putting
effort into improving it.

~~~
rdtsc
Yap first experience with Python for me was via IDLE.

Remember reading about it, downloading, installing, launching IDLE, typing the
first program and running it. Granted it was 16 years ago but that was very
helpful and I remember being wow-ed by how easy, fast and simple everything
was.

After I had quickly switched to emacs for actual coding, but that initial
impression made a huge difference.

------
tomswartz07
Gang:

Here's a relevation that I only, just now, realized.

Python is named after the Monty Python gang. This I knew.

IDLE is a play off of Eric Idle. How have I never realized this before?

~~~
akrolsmir
Something else that blew my mind: Jupyter was named after JUlia, PYthon, and
R.

~~~
techdragon
And the Calysto Jupyter kernel project is based on the fact that the Jupyter
logo is missing one of the Galilean moons. Naming is fun.

------
japhyr
I teach Python to high school students on a regular basis, and I'm really
looking forward to seeing this project completed.

Most of my students start out with zero technical experience, and simple
things like installing a text editor just become one more hurdle they need to
get past in order to start programming. Having a decent, usable text editor
bundled with the language itself will be really helpful for absolute
beginners.

------
dbalbright
Of course a friendly REPL is part of any good IDE, but I could not have
learned Python as fast as I did without DreamPie[1]. It's basically an IDLE
that separates the input from the output—color highlighted as well. It seems
small, but at least for me it really made a big difference.

[1] [http://www.dreampie.org/](http://www.dreampie.org/)

------
jaflo
I am really looking forward to an improved IDLE. If anyone is interested in
contributing to the project (it is written in python), here's a link:
[https://docs.python.org/devguide/](https://docs.python.org/devguide/)

------
michaelsbradley
I have found memories of playing around in IDLE while reading through _How to
Think Like a Computer Scientist_ , back in 2003/4.

[http://www.greenteapress.com/thinkpython/html/index.html](http://www.greenteapress.com/thinkpython/html/index.html)

~~~
theandrewbailey
My mom recently dug out my printed copy of that when I was learning Python
during that time. For the past few months, I've been helping one of my friends
in a Python based CS class (using 2.x, I think). I'm not sure how useful that
hard copy would be.

------
witty_username
Tk is just too old and bad. It doesn't support Unicode rendering properly of a
lot of characters and lacks a lot of features of any modern GUI toolkit like
Qt or GTK.

~~~
mangecoeur
True... but the crazy thing is the other options aren't hugely better. GTK has
poor OSX support, while QT is massive and the bindings situation is still
unclear - it's workable for building an app, but would you want to have it
included in the default install? Kivy is neat but comparatively immature and
doesn't have native theming. WxWidgets can look good but doesn't seem to have
Python3 support.

I was really surprised by this actually - I wanted to create some simple GUI
apps and assumed there would be something clean, small, and modern to replace
TK... but nope. And all the documentation (including for python tk) is pretty
terrible. The most realistic suggestion I've seen is... write you GUI in HTML
and Javascript and use python for the backend server. Not a great situation
when the best way to write a good looking GUI for Python is basically not to
use Python...

~~~
moonchrome
>GTK has poor OSX support

Is it really that bad ?

I was really impressed the last time I did GTK+ (was a linux app small content
pipeline frontend for designers) at how fast I got things done, the docs were
simple and to the point [1], Glade was buggy but still usable (I had to reload
after some time because it would get progressively slower as I would
add/remove elements - probably a leak somewhere) I got an app with complex
tree view/table/filtering etc. running within two days from 0 previous GTK+
experience.

I liked that it was a straight GUI toolkit - reminded me of VB - just create
GUI elements with RAD tool and hook up callbacks in good old python - no fancy
MVC, IOT learning QML and w/e. - exactly the kind of thing that lets you do
apps of this size fast IMO.

[1] [https://python-gtk-3-tutorial.readthedocs.org/en/latest/](https://python-
gtk-3-tutorial.readthedocs.org/en/latest/)

~~~
mangecoeur
From what I could see, the Quartz backend isn't complete, and generally Mac
doesn't seem to be a high priority. Some apps like Inkscape still require to
install X11 for mac (which is slow, and makes for a very clunky ux), except
for experimental builds with GTK native. In short, not really a plug-and-play
experience.

------
wslh
In the meanwhile I use Python Tools for Visual Studio:
[https://www.visualstudio.com/en-us/features/python-
vs.aspx](https://www.visualstudio.com/en-us/features/python-vs.aspx)

~~~
tehstone8
Discovered this the other day, it's pretty decent imo.

------
stuaxo
Have you got python itself running in a separate process so it can't stop IDLE
?

~~~
markroseman
The separate process stuff has been in there for a very long time. There is
still an option to run as a single process but it has long been deprecated
(and hopefully disappearing soon too).

------
lighthawk
Wondering if an optional file list/tree could be on the left in window
integration, similar to most other modern editors?

Other than that, all looks good!

