classification
Title: UX mode for IDLE targeted to 'new learners'
Type: enhancement Stage: resolved
Components: IDLE Versions: Python 3.6
process
Status: closed Resolution: rejected
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: kbk, markroseman, rhettinger, roger.serwy, steven.daprano, terry.reedy
Priority: normal Keywords:

Created on 2015-08-06 15:19 by markroseman, last changed 2016-06-07 05:53 by terry.reedy. This issue is now closed.

Messages (6)
msg248130 - (view) Author: Mark Roseman (markroseman) * Date: 2015-08-06 15:19
To facilitate using IDLE to learn Python, and perhaps as a first experience with programming altogether, and taking advantage of the fact that IDLE comes with Python out of the box, I propose the following:

1. A new "learning" mode be introduced to Python. We can characterize IDLE's current behaviour as the "advanced" mode.

2. The goal of this learning mode is to make decisions for users that best help them concentrate on the task at hand, and minimize the time needed to focus on IDLE as an application.

3. In learning mode:
  3a.  The existing configuration dialog should not be present.
  3b.  The existing Options menu should not be present.
  3c.  The concept of 'extensions' should not be part of the UX.

4. The list of requirements in #3 is a starting point only.

5. At some point in time, the learning mode will become IDLE's default.

6. Switching from learning mode to advanced mode should be "protected" in some form (warnings, a quiz regarding one's favourite colour, etc.).

7. The expected path for most who continue beyond the learning phase is to switch to another IDE (Sublime, TextMate, Atom, etc.). Therefore an explicit non-goal of the learning mode is transitioning to advanced mode.
msg248161 - (view) Author: Steven D'Aprano (steven.daprano) * (Python committer) Date: 2015-08-07 00:04
Sounds patronizing.

Whether used for beginners to programming or experts, IDLE (or any other application) should start with sensible defaults. As much as possible, it should usefully start without requiring extra configuration. But beyond that, actively prohibiting users from changing settings if they choose to do so is not helpful. Beginners can just ignore the Options menu if it is too much for them, and changing settings and seeing what happens is a great way to learn an application.

As for the idea of interrogating users before they are permitted to make their own choices for settings, that is outrageous. It isn't like the settings are dangerous: there's a choice of font, tab size, size of the window, etc. All things which even beginners may have legitimate reasons to change. For example, if the default font size is too small, or not enough contrast.
msg248165 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-08-07 01:59
In general, users and instructors are demanding more options, not less.

'extensions' could be renamed 'plug-ins'.  The current system could use some rethinking, since the choice between a feature being 'built-in' versus a 'built-in extension' is at least partly historical accident.  I think having Run-module be optional should go. Having that named 'ScriptBinding' in the extension config is mystifying to anyone who does not know the reason. With Run_module disabled, the debugger than only operates when a module is run makes no sense. etc.

Other than that, I am inclined to close this issue.

This proposal strikes me a similar to defining 'Beginner Python'.  Instructors may do that for didactic purposes (sometime infuriating more advanced students), but Python itself does not support subsetting.
msg248208 - (view) Author: Mark Roseman (markroseman) * Date: 2015-08-07 17:00
While the thing about asking for a favourite colour before switching to advanced mode was a joke, I do sincerely believe that extensive progressive disclosure techniques should be used to keep much of IDLE's features and options hidden out of the box.

If the response to the question "how can we make IDLE easier to use for X" is always "add feature Y", we're screwed.
msg248216 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2015-08-07 19:18
> In general, users and instructors are demanding more
> options, not less.

This is correct.  I teach Python classes using IDLE.  It does NOT need to be dumbed down (people has notepad for that).   The API can be made more usable but I am against this feature request.
msg267595 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2016-06-07 05:53
This is not going to go anywhere for the present.
History
Date User Action Args
2016-06-07 05:53:57terry.reedysetstatus: open -> closed
messages: + msg267595

assignee: terry.reedy
resolution: rejected
stage: resolved
2015-08-07 19:18:18rhettingersetmessages: + msg248216
2015-08-07 17:00:22markrosemansetmessages: + msg248208
2015-08-07 01:59:30terry.reedysetmessages: + msg248165
2015-08-07 00:31:59terry.reedysetnosy: + rhettinger
2015-08-07 00:04:48steven.dapranosetnosy: + steven.daprano
messages: + msg248161
2015-08-06 15:52:08yselivanovsetversions: - Python 3.5
2015-08-06 15:19:29markrosemancreate