[Zope3-dev] Re: RFC: Rename "principal" to "participant"

Philipp von Weitershausen philipp at weitershausen.de
Mon Sep 12 13:56:40 EDT 2005


Tonico Strasser wrote:
> Philipp von Weitershausen schrieb:
> ...
> 
>> So, I would like to give "principal" a better name. How about
>> "participant"? After all, a principal _participates_ in an interaction
>> through a participation (e.g. an HTTP request). Participant should also
>> be pretty easy to translate: it's a common word, especially outside IT
>> vocubulary, which means chances are good to find appropriate native
>> translations for it.
>>
>> (Note that the point of finding translations for technical terms is not
>> only for the sake of a translated Zope 3 UI. It's more about how people
>> understand technical terms. I think most Zope 3 developers aren't native
>> English speakers and they do not necessarily think in English. So, good
>> words that have good native translations help the understanding process
>> on their end. That is not only important for _learning_ a concept, but
>> also for _explaining_ it. As a book author, I know what I'm talking
>> about... :))
>>
>> Hope to hear some comments,
> 
> Here the obligatory dumb question: why is it not called user?

Well, I'm not the one who invented the abstract concepts, but here's the
justification I've come up with:

Users are real people out of real flesh while principals are objects
that represent them in a Zope 3 security context. You can think of
principals like lawyers. Lawyers represent people (the users) before
court (in this case, the Zope 3 interaction). Of course, lawyers can
also represent something else, e.g. a company or an organization. Same
with principals: there doesn't always have to be a real human behind a
principal...

Another example: Unix (and many other systems) call it "users", like you
suggest. The interesting thing is that daemon processes on Unix run
under certain "users" as if they were acting on behalf of a human
person. But they aren't, they're just fulfilling management tasks on
behalf of the system. Of course, they still need to take part in the
security system, that's why they run under "user" identities that
actually don't represent human beings but those management tasks (e.g.
"mail" or "postgres"). So, wouldn't it be clearer to call it something
else than "users" if there isn't always a human behind this?

Of course, "user" is a long accepted term (Unix is over 30 years old
:)), so the question is whether clarity of terms is more important than
convention.

Philipp


More information about the Zope3-dev mailing list