
Kebenaran politik diperhitungkan bahkan dalam bahasa pemrograman. Pekan lalu, pengembang Python Victor Stinner dari Red Hat mengirim
empat permintaan kumpulan untuk mengubah nama syarat master / slave yang berpotensi menyinggung dalam dokumentasi dan kode Python. Penulis menyarankan untuk mengganti mereka dengan kata-kata netral secara sosial yang tidak menyinggung orang-orang yang leluhurnya adalah budak nyata. Sebagai alternatif yang memungkinkan ada istilah induk / pekerja.
Perubahan yang diajukan bukanlah keinginan satu pengembang, tetapi kecenderungan umum untuk berbagai bahasa dan teknologi pemrograman. Stinner memberikan contoh perubahan serupa di
Redis ,
Drupal ,
CouchDB, dan
Django . Jadi, Django dan CouchDB menggantikan istilah master / slave dengan leader / follower.
Pada saat yang sama, Stinner menyatakan pendapat bahwa terminologi "budak" masih dapat dibiarkan untuk beberapa istilah, seperti cabang master di Git, webmaster, dan postmaster.
Sebuah diskusi hangat dimulai.
Pencarian dalam basis kode python / cpython menemukan banyak inklusi master istilah "ofensif" dan budak di samping satu sama lain, termasuk di pty dan openpty libraries.
Sebagai contoh, di sini adalah kode
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