
La corrección política se tiene en cuenta incluso en los lenguajes de programación. La semana pasada, el desarrollador de Python Victor Stinner de Red Hat envió
cuatro solicitudes de grupo para cambiar el nombre de los términos maestro / esclavo potencialmente ofensivos en la documentación y el código de Python. El autor sugirió reemplazarlos con palabras socialmente neutrales que no ofendan a las personas cuyos antepasados fueron esclavos reales. Como alternativa posible hay términos padre / trabajador.
El cambio propuesto no es un capricho de un desarrollador, sino una tendencia general para diferentes lenguajes y tecnologías de programación. Stinner proporcionó ejemplos de cambios similares en
Redis ,
Drupal ,
CouchDB y
Django . Entonces, Django y CouchDB reemplazaron los términos maestro / esclavo con líder / seguidor.
Al mismo tiempo, Stinner expresó la opinión de que la terminología de "esclavitud" todavía puede dejarse para algunos términos, como la rama maestra en Git, el webmaster y el postmaster.
Comenzó una acalorada discusión.
Una búsqueda en la base de código python / cpython encuentra numerosas inclusiones de los términos "ofensivos" maestro y esclavo uno al lado del otro, incluso en las bibliotecas pty y openpty.
Por ejemplo, aquí está el
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