Houve disputas quando o software identifica sexos com um booleano? [fechadas]

8

Lembro que em nossa primeira aula de programação com Java, ao explicar os tipos de dados, ocorreu o seguinte (meio):

Professor : Então, que tipo de dados você escolheria se o seu programa precisasse armazenar o sexo do usuário?

Alguém : Que tal um booleano? Você sabe, verdadeiro para homens e falso para mulheres.

Professor : Claro, isso pode funcionar, mas algumas pessoas podem hesitar sobre isso. Houve disputas sobre chamar os homens de "verdadeiros" e as mulheres de "falsas" no passado ...

* risos *

Ele acabou nos recomendando considerar caracteres (como 'm'e 'f'), embora os booleanos devessem ficar bem.

Tentei pesquisar um pouco se havia algum tipo de registro histórico referente a uma grande disputa com base nessa prática de programação sem sorte.

Não estou perguntando que tipo de dados usar para sexo nem se é bom ou não usar booleanos. Estou perguntando se, historicamente , houve uma disputa sobre o uso de booleanos para determinar o gênero na programação por causa do comportamento aparentemente "errado" (não estou dizendo que está errado - não me importo com isso) de chamar uma mulher de "falsa", como o professor parecia sugerir.

Pesquisando em torno de questões relacionadas, os resultados passam a ser apenas sobre a eficiência do software.

Ómega
fonte
3
Como escrito, que mais parece um trocadilho que uma descrição grave de conflitos de programação históricos ...
Mason Wheeler
8
Um problema com o uso de um booleano em vez de algum tipo de enumeração para modelar fenômenos do mundo real - pode-se querer modelar transgêneros, cromossomos XXY, etc. Não sei se foi o resultado de uma disputa.
psr
8
@PhillipBurch: você ainda pode usar um booleano. Basta usar "FileNotFound" para o terceiro sexo.
kevin cline
2
@YannisRizos: Acho desagradável que, como homem, você feche uma pergunta que importa muito para pessoas que não se identificam como homens ou mulheres, e que também pode ser importante para as mulheres, apenas porque você não se preocupam com isso. Especialmente porque foi votado.
DistantEcho
3
@Niphra Se você não concordar com o fechamento, sinta-se à vontade para postar uma pergunta sobre isso no nosso site Meta .
23913 yannis

Respostas:

5

Esta é mais uma questão cultural do que técnica e representa a perspectiva de uma sociedade sobre gênero.

Se você estudou em um país islâmico ou na China, entendo por que isso seria um problema.

Portanto, a resposta é não, nunca ouvi falar de um problema tão bobo na programação.

Reactgular
fonte
1
Para aumentar o peso, trabalho com dados do NHS na Inglaterra, dados nacionais que cobrem toda a população. O gênero é armazenado como int, 1 para homem ou 2 para mulher, o que levantaria as mesmas questões sudoéticas. Aqui, um int é usado sobre um booleano porque outros valores são usados ​​(por exemplo, desconhecido, transgênero etc.), mas não há hesitação em usar um sistema de codificação onde isso aumenta a eficiência. Você não hesitaria em codificar outros valores, então por que hesitar aqui?
Matt
23

Nunca use um booleano apenas porque existem apenas dois valores. A menos que o significado de verdadeiro e falso seja óbvio, use uma enumeração, se disponível, e constantes ou símbolos de string ou qualquer outra coisa. E, com muita frequência, há inicialmente dois valores e depois há três. Ou quatro.

Kevin Cline
fonte
1
Muito bom conselho, obrigado, mas não aborda a questão.
Omega
1
Quais são os fatos históricos sobre uma disputa ao usar booleanos para gênero devido ao comportamento moral aparentemente "errado" de chamar uma mulher de "falsa"? (Sei que o título não incluir a parte moral, mas o conteúdo da pergunta fazer foco nele)
Omega
1
Na verdade, houve disputas ao usar booleanos devido ao fato de as pessoas que não se identificam como mulheres ou homens se sentirem ignoradas ou rejeitadas - elas foram forçadas a escolher um gênero (consulte google +). O uso de verdadeiro / falso é menos um problema.
DistantEcho
Considerando que a maioria das linguagens de programação usa uma palavra completa para armazenar um booleano de qualquer maneira, e "gender" não é decididamente uma propriedade true / false (semanticamente), então você está absolutamente certo. Ter um sexo "falso" não é algo social, é semanticamente incorreto e você nem está obtendo uma vantagem de desempenho.
21413 Scott Whitlock
-4

Além da razão dada por Kevinn, o uso de booleano nesse caso força o uso de nomes de variáveis ​​e propriedades como isMale (ou isFemale), em vez de gênero.

Para mim, um nome neutro como "gênero" é muito melhor que "isblabla" como um nome de propriedade.

Codism
fonte