Re: IDLE in UK Schools

Terry Reedy <[email protected]> Wed, 5 Aug 2015 17:30:06 -0400
Newsgroups gmane.comp.python.idle
Message-ID <[email protected]>
On 8/5/2015 5:55 AM, Guido van Rossum wrote:
> On Wed, Aug 5, 2015 at 4:43 AM, Terry Reedy <[email protected]
> <mailto:[email protected]>> wrote:
>
>     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*.

The core of this comment is "unnecessary and diversionary ...".

As for 'unnecessary', what does adding 'only' add to the discussion? 
Does that mean that we should reject features that also benefit 
non-beginners? If not, what does it mean?  What extra design guidance 
does it add?

As for 'divisionary', see, besides the above, my questions that follow 
the 'PyCharm' quote.

Please note that I volunteer my time to improve Idle *because* it is 
primarily used by students and secondarily, perhaps, by others who are 
not professional programmers.

> I was worried that you'd respond like this. *No* change to IDLE will
> benefit *everyone*,

Please give me the benefit of the doubt and assume that I am saying 
something sensible. By 'everyone', I mean "everyone who uses Idle" and 
in relation to a particular issue, 'everyone who use the feature in 
question' and in relation of OS-specific issues, 'everyone using that 
OS'.  With those meanings, my statement is reasonably true.

 > for the simple reason that few people outside the
 > (non-higher) educational field use it.

Bruce already covered colleges.

There are also post-beginners, but not professional programmers, like my 
daughter, who are so far happy with Idle and do not yet need the 
advanced features of other Python shells.

And there are Windows users.  Windows Command Prompt is awful. 
Interactive Python in Command Prompt suffers its sins. I believe most 
Windows users who try Idle Shell find it to be a better experience. One 
of the other core devs once (blushingly) admitted on pydev to using 
Shell on Windows for this reason.

 > IDLE should not try to compete with things like PyCharm ...

What does this mean in terms of Idle design decisions?  Can you give me 
examples of what you think should not be added?

You and Kurt each have twice given general advice that Idle should be 
kept 'simple' and not have 'advanced' features added.  But I have 
trouble turning that general advice into concrete decision making.  Are 
there any enhancement requests on the tracker you would reject as too 
complex or advanced?  (To make checking easy, I can send or post a 
complete, categorized list.)

A couple of the features at the end of Al's list strike me as the sort 
of things you are saying not to do in the advice above.  Do you agree?

In particular, consider post-installation switchable multiple language 
support. That would, in general, be of most benefit to the youngest 
beginners.  It is also a rare and rather advanced feature, and complex 
not only in terms of the programming, but in the need for coordination 
with an internationalization group separate from Idle maintainers 
themselves.  Should we avoid competing with more advanced programs and 
leave this out?

 > , nor with the Emacs/Vim world (and I consider most every text editor 
 > professional coders like to use these days on Linux/Mac/Windows to be 
 > in that world, from Sublime Text to Atom).

Notepad++ had been recommend as a multiple (50) programming language 
editor for Windows on python-list.  I have also seen it mentioned on 
Stackoverflow.

 > IDLE's one redeeming feature is that it's bundled with Python,

As installed, Idle
1. Colorizes Python code
2. Converts \t to '    '
3. Saves in utf-8 (3.x)
4. Checks syntax before running and marks the location of error in the 
editor
5. Runs the file in -i mode
6. Displays tracebacks and print output in a window with normal cut and 
paste
7. and can jump to the error line of any file in tracebacks
8. ...

As installed, Notepad++ does 1.  With some searching through the 
extensive settings menus, one of which is not obvious, it can do 2, 3, 
and 5. By running in Idle or another external, installed program instead 
of command prompt, it can get 6.  As far as I know, it can never do 4, 
or 7 in the sense of jumping back to Notepad++.  With respect to this 7 
points, Idle is the better choice for developing Idle programs.

I presume that some of the other programs you mention match Idle in 
features 4 and 7, which I find *very* useful. But I think you have an 
overly narrow view of the virtues of the program you help create ;-).

And to repeat, Idle makes the interactive mode of Python, as installed, 
a joy rather than barely tolerable. If it were removed, another 
replacement for command prompt should be found.

-- 
Terry Jan Reedy