Python lehnt auch die Begriffe Master / Slave teilweise ab

Politische Korrektheit wird auch in Programmiersprachen berücksichtigt. Letzte Woche hat der Python-Entwickler Victor Stinner von Red Hat vier Pool-Anfragen gesendet, um die potenziell anstößigen Begriffe Master / Slave in der Python-Dokumentation und im Python-Code umzubenennen. Der Autor schlug vor, sie durch sozial neutrale Worte zu ersetzen, die Menschen, deren Vorfahren echte Sklaven waren, nicht beleidigen. Als mögliche Alternative gibt es Begriffe Eltern / Arbeitnehmer.

Die vorgeschlagene Änderung ist keine Laune eines Entwicklers, sondern ein allgemeiner Trend für verschiedene Programmiersprachen und -technologien. Stinner lieferte Beispiele für ähnliche Änderungen in Redis , Drupal , CouchDB und Django . Also ersetzten Django und CouchDB die Begriffe Master / Slave durch Leader / Follower.

Gleichzeitig äußerte Stinner die Meinung, dass die Terminologie „Slaveholding“ für einige Begriffe wie den Hauptzweig in Git, den Webmaster und den Postmaster noch beibehalten werden kann.

Eine hitzige Diskussion begann.

Eine Suche in der Python / Cpython-Codebasis findet zahlreiche Einschlüsse der "anstößigen" Begriffe Master und Slave nebeneinander, einschließlich in den Bibliotheken pty und openpty.

Hier ist zum Beispiel der Code 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/de423057/


All Articles