immagine-preview

Set 17, 2018

Master / Slave | Linguaggi di programmazione pro-schiavitù? Dalla rete la crociata dei giustizieri social

Python si unisce al movimento per modificare i termini "offensivi" di “master” e “slave”

“Cosa c’è in un nome? Ciò che chiamiamo rosa anche con un altro nome conserva sempre il suo profumo”. Così diceva Shakespeare nel Romeo e Giulietta, e già da quel testo storico in poi spesso ci si è soffermati per capire se il termine con cui definiamo qualcosa ha il potere o meno di plasmare la realtà che ci circonda. E certamente alcune parole, più di altre, sono dense di significati, alle volte spiacevoli, alle volte con un retaggio di dolore. E così può accadere che all’alba del 2018 una serie di voci in coro chiedano di estromettere alcuni termini dall’ultimo posto in cui probabilmente verrebbe in mente di cercarli: la documentazione tecnica di un linguaggio di programmazione.

 

 

È il caso della parola “schiavo” che comporta, inevitabilmente, connotazioni negative. Un trascorso di immagini ed emozioni di stampo coloniale, che tuttavia potrebbe non essere rilevante nella denominazione di un termine tecnico. La storia plurisecolare della schiavitù a beneficio delle potenze coloniali europee, i lavoratori carcerari oggi costretti a lavorare in condizioni a volte simili a quella schiavitù, giovani ragazze vendute in schiavitù sessuale in molte parti del mondo, tuttavia, rappresentano un sentimento vivo che talvolta traspare, per lo meno a detta di qualcuno, a seguito dell’utilizzo delle parole “master / slave”.

 

Rivedere la terminologia. Sì, ma come fare?

La necessità di revisione di tale terminologia appare un quesito singolare, che lascia ad una serie di interpretazioni. In contrapposizione a quanto in precedenza sollevato, infatti, sono molte le voci che difendono come il significato di una parola possa essere in realtà definito dal suo uso, dal contesto in cui viene impiegato. Nel caso specifico, ad esempio, “master / slave” viene utilizzato da ogni server di database, in ogni implementazione da CouchDb a Mysql, da Redis a Microsoft SQL Server.

 

Da evidenziarsi come una vasta fascia di utenti invece non si sentano in grado di prendere una posizione in merito; non si dicono contrari a questo cambiamento, ma allo stesso tempo non trovano la ragione del voler cambiare “due parole” con altre solo perché utilizzate in precedenza in differenti contesti. Un commento piuttosto semplice ma esemplificativo a riguardo, trovato in rete, e che se vogliamo è riuscito a strappare un ironico sorriso, cita: “se ad esempio il tuo avatar è rosso, è rosso come il comunismo, dovresti usare un colore bianco e nero. Oh no, anche questo è legato al razzismo. Bene, togliamo anche i colori, allora?”.

 

Il caso Python

L’ultimo imputato di questo “processo social” è il noto linguaggio di programmazione Python alla cui comunità di sviluppatori è stato richiesto un parere sulla volontà di continuare ad usare i termini “master” e “slave” per la descrizione di operazioni e relazioni tecniche. La domanda nasce alla luce della connotazione che le parole ricordano ad alcune persone, con immagini della “Peculiar Institution” americana, un’eredità storica che riporta un retaggio di forti connotazioni politiche fino ad oggi.

Il team di sviluppo di Python si è schierato e ha deciso per la modifica della terminologia “master” e “slave” nella sua documentazione e codice. Questo per permettere di riconciliarsi con le persone che rivendicano la terminologia come offensiva.

 

Per Python tutto è iniziato quando Victor Stinner, uno sviluppatore Python che lavora per Red Hat, ha pubblicato una discussione intitolata “evitare la terminologia master / slave” sulla piattaforma di bug report di Python, al fine di raccogliere pareri sulla necessità o meno di cambiare le parole incriminate nella documentazione di Python e codificarle in termini di comune accettazione.

 

Nel suo bug report Stinner illustra come, al fine di una migliore gestione delle diversità, sarebbe auspicabile cercare di evitare una terminologia che può essere in qualche modo associata alla schiavitù; presumibilmente, un modo per evitare di trovarsi in mezzo ad altre polemiche. E la decisione non è tardata ad arrivare: a partire dalla revisione 3.8 di Python la quantità di termini di questo tipo nella documentazione sarà drasticamente ridotta.

 

Che cosa ne pensano gli sviluppatori

Prevedibilmente, non tutti gli sviluppatori Python che hanno partecipato alla discussione hanno concordato con le modifiche di Stinner e anche in rete, parimenti che nella segnalazione, sono stati i molteplici dibattiti online sull’argomento.

Uno degli attori nella discussione, Larry Hastings, ha espresso commenti discordi sul tema: “Non sono molto eccitato dall’idea che Python debba cambiare il suo linguaggio”, ha lamentato, affermando come l’utilizzo di termini informatici coniati nel tempo e solo relativamente di recente passati di moda, non la schiavitù come accettabile. Inoltre “Ci sono alcune aree nel software del computer in cui “master” e “slave” sono di fatto termini tecnici esatti ed evitarli porterebbe a confusione” ha aggiunto Hastings.

 

Raymond Hettinger, fra sviluppatori del “core” di Python, ha avanzato il dubbio sull’effettivo danno dimostrabile conseguente ad una determinata terminologia: “Se un particolare passaggio è palesemente oscuro o offensivo, dovrebbe essere cambiato, altrimenti non dovremmo lasciare che le nozioni vagamente formate di politically correct modifichino altri usi chiari di un inglese semplice” – ha scritto – “Per quanto io possa ricordare, non vi è una singola istanza in cui i documenti usano le parole “master” o “slave” come riferimento alla schiavitù umana o dove l’uso potrebbe essere visto come implicito avvallo di quella nozione.”

 

Un altro sviluppatore di Python, Terry J. Reedy, come Hastings si è opposto all’azione basata su supposizioni, affermando che non vi è nulla di sbagliato nella parola “master”, in senso lato e l’intera vicenda appare quasi strumentale per gettare discredito su una comunità che poco ha a che spartire con il concetto di “schiavitù”.

E di nuovo, “È davvero necessario inquinare la base di codice Python con l’ideologia / terminologia SJW?” ha domandato Gabriel Marko.

 

Per meglio inquadrare quest’ultima dichiarazione, “Social Justice Warrior”, comunemente abbreviato come SJW e letteralmente traducibile come “combattente per la giustizia sociale” è un termine che porta in se una connotazione negativa atta a definire un individuo che promuove punti di vista socialmente estremisti, ed è rivolta in particolare a coloro che aderiscono acriticamente al liberalismo sociale, all’inclusività culturale, a visioni radicali sul femminismo, sui diritti civili, così come sulle politiche di identità nonché ad altre opinioni ritenute politicamente corrette.

Come spesso accade l’ultima parola per porre fine al dibattito è toccata a Guido Van Rossum, creatore storico del linguaggio che anche se ha rassegnato le dimissioni da “Benevolente dittatore per la vita” o BDFL a luglio, risulta ancora attivo come sviluppatore principale: la terminologia verrà rimossa. Resta da capire se la decisione sia stata basata su una vera convinzione o, più semplicemente, per mettere a tacere critiche che poco hanno a che fare con lo sviluppo di un software.

 

Chi ha scelto di combattere questa battaglia

Ma Python non è stato l’unico a ritrovarsi sotto i riflettori in questa battaglia. La comunità Redis, Django e Drupal hanno infatti affrontato, negli scorsi mesi ed anni, lo stesso problema.

La comunità di Redis, il popolare database open source in-memory, si è ritrovata a lottare con la problematica durante lo scorso anno, cercando di rilasciare una revisione terminologicamente “neuta”. In un post su Hacker News, il creatore del progetto Salvatore Sanfilippo, ha mostrato anch’egli perplessità circa la necessità di un cambiamento nel linguaggio tradizionale del database, ed ha cercato di offrire un’informativa su cosa fosse la schiavitù umana, in alcune parti del mondo ancora purtroppo adottata.

 

Nel 2014, Drupal, dopo alcune discussioni a causa di connotazioni negative della frase, oltre che per una “migliore accuratezza”, ha cambiato i termini “master” e “slave” in “primary” e “replica”. Questa coppiata di termini è diventata una sorta di “standard de-facto”, e viene utilizzata non solo in Drupal, ma anche in IBM Rational ClearQuest, Microsoft System Center, Engine Yard e Amazon AWS. 

Lo stesso anno, Django ha adottato una nuova terminologia in documenti e test, a discapito della configurazione “master / slave”, in quanto – direttamente dalla documentazione di aggiornamento – “Anche se determinate espressioni sono state utilizzate per un lungo periodo, questi termini potrebbero rievocare significati a carico razziale negli utenti. Questa patch sostituisce tutte le occorrenze di master e slave con ‘leader’ e ‘follower’.”

CouchDB, dal canto suo, ha effettuato un’analoga epurazione linguistica nel 2014.

Il dibattito risale, però, a qualche anno prima nel settore tecnologico. Forse prima istanza di questo dibattito è quella del 2003, dove la Contea di Los Angeles ha chiesto ai produttori e distributori di apparecchiature di elettronica che intrattengono rapporti commerciali con la contea di evitare di utilizzare il termine di settore “Master / Slave” nelle descrizioni dei prodotti, rimuovendo o modificando i termini utilizzati nell’identificazione o etichettatura di apparecchiature e componenti che potrebbero essere interpretati come discriminatori o offensivi. A tale richiesta seguirono lamentele pubbliche e la contea si ritirò giustificando come di fatto la direttiva rappresentava solo una proposta non vincolante.

Nel 2004, The Global Language Monitor nel suo Top Politically (in)Correct Words ha citato l’uso di “master” e “slave” nell’industria tecnologica come il termine politicamente più scorretto di quell’anno, benché l’uso industriale dei termini risalga a decenni; possono a tal proposito essere trovati in più RFC, come RFC 977 del 1986.

La vera domanda che dovremmo porci forse è: cosa stiamo cercando di ottenere da tali azioni? 

 

Nel tentativo di voler onorare e rispettare coloro che sono sopravvissuti o si trovano attualmente in condizione di schiavitù, non ci perdiamo forse nell’illusoria sensazione di poter cambiare il mondo attraverso un click, dimenticandoci delle azioni reali?

Attaccare un lessico, per giunta fuori contesto, non diminuisce la presenza della schiavitù. Le parole possono sicuramente essere sostituite con altre più idonee all’architettura del software e più “politicamente corrette”, e probabilmente questo ci permetterà di sentirci più sollevati nelle coscienze nei prossimi anni: tuttavia rimane che nella sostanza non è stato fatto nulla per porre fine alla schiavitù.

Cambiare questi termini non aiuterà a porre fine alla schiavitù e possiamo affermare con certezza che sbarazzarsi di veri padroni e schiavi necessiterà più di una semplice “richiesta di pull”.

 

Rimani sempre aggiornato sui
temi di StartupItalia!
iscriviti alla newsletter