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.
Respostas:
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.
fonte
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.
fonte
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.
fonte