[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