[Doc-SIG] docstring grammar
uche.ogbuji@fourthought.com
uche.ogbuji@fourthought.com
Thu, 02 Dec 1999 08:57:24 -0700
> OK, start with the last: Tibs, you observed a while back that the human
> brain holds up to 7 (or is it 12 ?) things at the same time. That's the
> `for humans to parse' constraint. We want to keep to a minimum the set
> of keywords a programmer needs to be familiar with to be able to get
> pay-back from using the document format.
It sounds as if you are going for the Miller 7 +/- 2 rule, which holds that
most people can hold between 5 and 9 units of related information at a time,
particularly in short-term memory.
It is always a good idea in API and protocol design to keep main elements
within the 7 +/- 2, but there is no reason not to have a few less used,
optional and advisedly more arcane elements for the more experienced users.
So far it seems we're close to that point in "canonical doc-string", so I
agree that as soon as the scapegoat (too bad it appears to be you, David, but
that's what you get for introducing such a sterling proposal) comes up with a
second proposal that takes all the recent discussion into account, we should
call it alpha and start hacking.
> Various folk discussed language. My ha'p'n'rth on that would go for a
> variable in the module namespace, nominally
>
> __language__ = 'en:UK' # expect English spellings, like colour, sulphur
>
> and I'd vote for the *default* to be Dutch (to encourage US anglophones
> to get used to admitting that they speak 'en:US' or whatever it's called)
> though I realise I might have to live with 'en:US'.
>
> Why, you might ask, do I want it in the module namespace ?
>
> So that the contents of the doc string are *all* in the same language:
> it'd just be perverse to have an anglophone keyword (Language) as the
> one keyword which we don't translate, in doc-strings; and the magic
> names in a module's namespace, like the reserved words of the language
> (*outside* the doc string) are already condemned to monolinguism, so we
> might as well leverage their sacrifice to enable the purity of the doc
> strings.
I rather like this idea. We are building a similar mechanism into 4Suite to
support i18n messages, and it would be nice to unify the doc-string and code
l10n mechanism. I would rename it
__locale__ = 'en:UK'
To go in line with more common usage. It would alctually then be nice for
Python (1.6 feature?) to read the LC_ALL environment variable in UNIX, and the
equivalent on other platforms, and set a default for the __locale__.
I also like the idea that all keywords would be in the local language.
> Either that or do something entertaining which involves looking for a
> match to:
>
> <keyword meaning `language'>: <language in which that keyword means `language'>
Umm. Or much rather not.
> Celui qui parle trois langues s'appelle un trilangue.
> Celui qui parle deux langues s'appelle un bilangue.
> Mais celui qui parle seulement un langue s'appelle un anglophone.
> -- Quebecois joke.
This is an absolute jem (or should I say 'bijou'?) Strange how often the
heartiest humor comes from the most cynical attitudes.
--
Uche Ogbuji
FourThought LLC, IT Consultants
uche.ogbuji@fourthought.com (970)481-0805
Software engineering, project management, Intranets and Extranets
http://FourThought.com http://OpenTechnology.org