Linus Torvalds, principal engenheiro responsável pelo kernel do Linux, aprovou na última sexta-feira (10) uma nova terminologia para o código do sistema operacional e sua documentação. A partir de agora os desenvolvedores devem utilizar novos termos para a combinação master/slave (mestre/escravo) e blacklist/whitelist (lista negra/lista branca).
O kernel de um sistema operacional é o seu componente central, responsável por fazer a ponte entre os aplicativos que rodam no PC e o processamento de dados que se dá nos componentes de hardware – em linhas gerais, é o responsável por gerenciar a interação entre software e hardware.
Os termos master/slave geralmente são utilizados no hardware, arquitetura e códigos para se referir a um dispositivo, base de dados ou processo que controla outro. Já blacklist/whitelist serve para criar listas de exceção, de bloqueio ou permissão, respectivamente.
Foram propostas uma série de alternativas aos termos. O time do Linux não recomendou um termo específico, mas pediu para que os desenvolvedores escolhessem de acordo com o que fosse apropriado. A nova terminologia será utilizada para novos código-fontes escritos para o kernel do Linux e para a documentação associada.
Para master/slave foram:
- primary/secondary
- main/replica or subordinate
- initiator/target
- requester/responder
- controller/device
- host/worker or proxy
- leader/follower
- director/performer
Já para blacklist/whitelist são menos opções:
- denylist/allowlist
- blocklist/passlist
Os termos antigos só serão permitidos para manter códigos mais antigos e sua documentação ou “quando atualizar um código existente (até 2020) para um hardware uma especificação de protocolo que exija esses termos.”
A proposta para essa alteração foi realizada em 4 de julho por Dan Williams, um dos mantenedores do kernel do Linux. Linus Torvalds aprovou a proposta na última sexta-feira em um pull request, onde um desenvolvedor gera uma notificação que sinaliza a conclusão do desenvolvimento, para o repositório do Linux 5.8.
A alteração vem na esteira de iniciativas similares tomadas por uma série de plataformas após a morte de George Floyd e os protestos antirracistas nos Estados Unidos e ao redor do mundo. A discussão sobre esses termos são mais antigas: desenvolvedores levantam problemas relacionados com o uso de uma linguagem retrógrada.
Os pioneiros foram Drupal e Django, que mudaram as expressões em 2014. O Python, por sua vez, retornou ao debate em 2018 e decidiu mudar o termo “slave” para “worker” (operário) ou “helper” (ajudante) e “master process” para “parent process” (processo primário).
Recentemente, o GitHub iniciou a mudança para termos neutros e trouxe consigo outras companhias, como aponta o : Twitter, Microsoft, LinkedIn, Ansible, Splunk, Android, OpenSSL, MySQL, PHPUnit, Curl, OpenZFS, Rust, JP Morgan, entre outros. O site também indicou um que argumenta que termos carregados de conotações raciais podem normalizar a presença de esteriótipos raciais.