Python também recusa parcialmente os termos mestre / escravo

O politicamente correto é levado em consideração mesmo nas linguagens de programação. Na semana passada, o desenvolvedor do Python Victor Stinner, da Red Hat, enviou quatro solicitações de pool para renomear os termos potencialmente ofensivos de mestre / escravo na documentação e código do Python. O autor sugeriu substituí-los por palavras socialmente neutras que não ofendem pessoas cujos ancestrais eram escravos de verdade. Como alternativa possível, existem termos pai / trabalhador.

A mudança proposta não é um capricho de um desenvolvedor, mas uma tendência geral para diferentes linguagens e tecnologias de programação. Stinner forneceu exemplos de mudanças semelhantes no Redis , Drupal , CouchDB e Django . Então, Django e CouchDB substituíram os termos mestre / escravo por líder / seguidor.

Ao mesmo tempo, Stinner expressou a opinião de que a terminologia "posse de escravos" ainda pode ser deixada para alguns termos, como o ramo principal do Git, o webmaster e o postmaster.

Uma discussão acalorada começou.

Uma pesquisa na base de código python / cpython encontra inúmeras inclusões dos termos “ofensivos” master e slave próximos um do outro, inclusive nas bibliotecas pty e openpty.

Por exemplo, aqui está o código lib / pty.py :

STDIN_FILENO = 0
STDOUT_FILENO = 1
STDERR_FILENO = 2

CHILD = 0

def openpty():
    """openpty() -> (master_fd, slave_fd)
    Open a pty master/slave pair, using os.openpty() if possible."""

    try:
        return os.openpty()

, « » , , , .

, Python Linux — master/slave . , Python, Linux. , Python Linux . «» Python , Linux.

, «» «» . master , . , doctest doctest.master:

# For backward compatibility, a global instance of a DocTestRunner
# class, updated by testmod.
master = None

, .

, « ». , nntplib.NNTP() slave(), slave . NNTP, 3.12 ( SLAVE), .

— mbuf.master PyMemoryViewObject C API:

typedef struct {
    PyObject_HEAD
    int flags;          /* state flags */
    Py_ssize_t exports; /* number of direct memoryview exports */
    Py_buffer master; /* snapshot buffer obtained from the original exporter */
} _PyManagedBufferObject;


/* memoryview state flags */
#define _Py_MEMORYVIEW_RELEASED    0x001  /* access to master buffer blocked */
#define _Py_MEMORYVIEW_C           0x002  /* C-contiguous layout */
#define _Py_MEMORYVIEW_FORTRAN     0x004  /* Fortran contiguous layout */
#define _Py_MEMORYVIEW_SCALAR      0x008  /* scalar: ndim = 0 */
#define _Py_MEMORYVIEW_PIL         0x010  /* PIL-style layout */

typedef struct {
    PyObject_VAR_HEAD
    _PyManagedBufferObject *mbuf; /* managed buffer */
    Py_hash_t hash;               /* hash value for read-only views */
    int flags;                    /* state flags */
    Py_ssize_t exports;           /* number of buffer re-exports */
    Py_buffer view;               /* private copy of the exporter's view */
    PyObject *weakreflist;
    Py_ssize_t ob_array[1];       /* shape, strides, suboffsets */
} PyMemoryViewObject;

, master slave . , . , Python 3.8 master/slave .

, , . , Redis : 1.0.0 SLAVEOF NO ONE, -slave -master. , . . , 2003 - master/slave .

2004 Global Language Monitor master/slave . , RFC 977 1986 .

- , — . , , Python. -, , pty UNIX.

, «» . , «: 5000 » “dominium” () “familia” ():

“dominium”, “dominus”, «», «», “domus”, . . «», «». “domestic” («»), « » , . “Domus” “familia”, . . «», “familia” “famulus”, . . «». , “pater familias”, , , .

, - , , , , — , , . , , . , .

“dominium”, , , , () , , , , , , . ., , .

«», «» : . , . .

« !

, , — .

, , . , , .

, .

.

, ».

fukkit

Source: https://habr.com/ru/post/pt423057/


All Articles