[Idle-dev] IDLE in UK Schools

Terry Reedy tjreedy at udel.edu
Wed Aug 5 04:43:32 CEST 2015


On 8/4/2015 6:53 AM, Chris Roffey wrote:
> Hi everyone. This is my first post to the list but I have been reading
> through the archives before joining.

Welcome.

> Python is now the most popular programming language in UK schools in
> 11-18 age group with something like 80% of GCSE Computer Science
> students now submitting code for these exams (at age 16) in Python.

Wow.

> I have a love of Python and IDLE similar to that described by Al
> Sweigart in his talk on re-imagining IDLE for education:
> https://www.youtube.com/watch?v=u58DiW_t2lM

I will get back to this.

> it would be fantastic if IDLE could be re-imagined with solely
> beginners in mind.

As a user of Idle for several years, and not a beginner, I disagree with 
'only'.  That aside, I consider it unnecessary and diversionary from the 
numerous known issues that will benefit *everyone*.

Back to I.R.,
https://github.com/asweigart/idle-reimagined/wiki
https://github.com/asweigart/idle-reimagined/wiki/Killer-App

 From my viewpoint, forking Idle would mostly be a diversionary waste of 
energy.  But Al has to decide for himself what he wants to do. As it is, 
I have applied 4 of his patches this year, soon after being posted. The 
5th one, renaming idlelib files to pep8 standards, is something I wanted 
to do a year or two ago and would have if it were allowed.

Most of the "features that will distinguish IR", so he claims, are 
issues on the tracker awaiting commit ready patches.

2. Tabbed file editor: 5 years ago, I asked on pydev whether we could 
use ttk.Notebook to do this, for both shell and editor, and opened
https://bugs.python.org/issue9262
Today I finally got a positive answer from Nick Coughlin after changing 
'replace with ttk' to 'add ttk as optional'.

1.a Single window with multiple simultaneously visible panes: I have 
floated this idea multiple times multiple places, which I believe 
includes other issues on the tracker.  There are people who like having 
a taskbar item per window, and will thereby oppose this and 2. above. I 
have not opened a tracker issue because 2. above has to come first.

1.b stacked vertically: a mini shell is inadequate for real exploration. 
I think horizontal stacking, with tabs in both panes, would be much better.

3. Foreign language support: better called non-English support, i18n, or 
  internationalization.  Again, approved in principle, but development 
work and patches needed. I and other devs commented extensively on 
https://bugs.python.org/issue17776

4. Autosave: issue already linked (https://bugs.python.org/issue19042)

5. Integrated PIP: see https://bugs.python.org/issue23551 to add a PIP gui.

6. Pastebin: nice idea, but use of the trademark initially confused me. 
codetrade.python.org would not be specific to Idle. Access to it could 
be done either as an Idle extension or as an external program accessed 
from Idle (see 10b.)

7. Better tracebacks, local variables: Already available as Debug => 
Stack Viewer.  This needs improvement, so I opened
https://bugs.python.org/issue24790
Stack Viewer is no hotkey.  Perhaps the author considered viewing locals 
as a non-beginner activity.

IndexError discussions: I would like bad index also, but...
https://bugs.python.org/issue18162 why not a slam dunk issue
https://bugs.python.org/issue21911 (closed as dup)
https://bugs.python.org/issue1534607 (ditto)

8. Error explanations: I think the writing and translating should be 
done for general use and not just for Idle.  I have had in mind that 
there should be a HOWTO explaining tracebacks and then listing 
problematic error messages and explainations.  If there were such a 
thing, then "SyntaxError: EOL while scanning string literal" itself 
could be underlined as a link.  Translations of Python docs are handled 
by national groups.

This gives me another idea: in the traceback, underline 'line ####' as a 
link so that clicking takes one to the line.  This would be easier and 
more obvious than rt click, move cursor down, left click.  (Ditto for 
grep output.)

9. Detect/warn 2 code run on 3: compile() already detects, raises, and 
marks the spot of an error.  I think doing more is the job of 3rd party 
code-checkers. See #10b for using with Idle a checker that does this, if 
one exists.

10a. Real-time lint: I would like this too for things that are actually 
possible.  It would involve existing or new Delegator layers. Colorizer 
already detects 'abc\ndef' in the sense that it only colors 'abc', so I 
believe it could take action when \n is entered. The hints from smart 
indenting could be documented. "if a\n", without an indent is a signal 
that ':' was not entered, because if it were, Idle would insert the 
indent and the user would see 'if a:\n    ".

10b. https://github.com/asweigart/idle-reimagined/wiki/Real-Time-Lint
"The idea of having a style checker (such as for PEP8) was already 
considered and rejected."

This is, at best, misleading. The proposal to incorporate the specific 
code checker named "pep8", disliked by many core developers, *was* 
rejected.  But I *accepted* the general idea of accessing code checkers 
from Idle. The patch on https://bugs.python.org/issue21880 is perhaps 
90% ready. I am hoping that Mark will help me finish reviewing and maybe 
revising.

This patch is about extending Idle without writing Idle specific 
extensions. The generalization would be to run any external program that 
takes a filename as input, not just a code checker. The patch include 
the ability to set other arguments.

11. Tutorial plugin system: I believe this has been discussed elsewhere, 
with the idea of using the Python tutorial as the first example.  But 
this should be a standalone tkinter app.


Minor issues

1. Line numbers: issue already linked
https://bugs.python.org/issue17535
I believe this is 90% done. I am hoping that Mark will help me finish 
reviewing and maybe revising.

2. Detect disk changes: Notepad++ checks when the app or a window 
becomes active.  For changed windows, it gives me the choice to update 
the file in the editor, or not.  Useful. Someone open an issue and 
submit a patch.

3. Start maximized: rejected as mandatory, accepted as startup option.
https://bugs.python.org/issue23937
This would be more useful with horizonatally stacked panes.

I have about 40 unposted ideas on my private list. Perhaps I should open 
more issues.  In any case, ideas are common, commit-ready patches are rare.

-- 
Terry Jan Reedy



More information about the IDLE-dev mailing list