On 2019-08-02 06:37, Rhodri James wrote:
On 02/08/2019 06:26, Brendan Barnwell wrote:
It is massively more discoverable, for one simple reason:
In teaching people to program, I often use Jupyter notebook, which
has great autocomplete functionality that can also bring up the documentation on any function. You can type itertools.[TAB] and get a list, and then you can scroll down the list looking for a likely function, and when you get to it you can hit Shift-Tab and see the documentation. Certainly other IDEs have similar functionality.
This is a colossal win over having to go the documentation and look
through the text for a recipe that is not "addressable" in any way. You can't even link to it, for heaven's sake! The function docs in all the modules have permalinks but the recipes are just unstructured text.
I'd have to challenge that "colossal win". I am very uncomfortable with IDEs that try to do my thinking for me, and I start turning things off on those occasions when I am forced to use them. It would even occur to me to try autocompletion. Reading the documentation is so much easier, and far more likely to point me at what the right answer actually is, rather than just what I think it might be.
Don't get me wrong, I have my own issues with "smart" IDEs. My go-to tool for my own work isn't even Jupyter but this thing called DreamPie (http://www.dreampie.org/), which is old and not really maintained and requires me to keep Python 2.7 and specific libraries installed just to run it, but I do it because I really like the very simple level of interpreter-wrapping interface it provides (which does, however, include autocomplete :-).
But the question was "does having the recipes as functions make them more discoverable than having them only as textual recipes in the docs". The answer is yes. It doesn't matter whether you or I or anyone else has a particular preference for or against autocomplete. The fact is that autocomplete exists in widely-used tools and it makes modules and their contents strictly more discoverable (because they remain discoverable in every way they currently are, plus autocomplete). If we're concerned with discoverability it surely makes sense to take that into account.