¿Ha habido disputas cuando el software identifica géneros con un booleano? [cerrado]

8

Recuerdo que en nuestra primera clase de programación con Java, al explicar los tipos de datos, ocurrió lo siguiente (un poco):

Profesor : Entonces, ¿qué tipo de datos elegiría si su programa necesita almacenar el género del usuario?

Alguien : ¿Qué tal un booleano? Ya sabes, verdadero para hombre y falso para mujer.

Profesor : Claro, eso puede funcionar, pero algunas personas pueden dudar al respecto. Ha habido disputas sobre llamar a los hombres "verdaderos" y a las mujeres "falsas" en el pasado ...

* risas *

Terminó recomendando que consideremos los caracteres (como 'm'y 'f') aunque los booleanos deberían estar bien.

Traté de buscar un poco si hubo algún tipo de entrada histórica con respecto a una disputa importante basada en esta práctica de programación sin suerte.

No estoy preguntando qué tipo de datos usar para género ni si está bien o no usar booleanos. Me pregunto si, históricamente , ha habido una disputa con respecto al uso de booleanos para determinar el género en la programación debido al comportamiento aparentemente "incorrecto" (no digo que sea incorrecto, no me importa). de llamar a una mujer "falsa" como el profesor parecía sugerir.

Al buscar preguntas relacionadas, los resultados son solo sobre la eficiencia del software.

Omega
fuente
3
Tal como está escrito, parece más un juego de palabras que una descripción seria de conflictos históricos de programación ...
Mason Wheeler
8
Un problema con el uso de un booleano en lugar de algún tipo de enumeración para modelar fenómenos del mundo real: uno podría modelar transgénero, cromosomas XXY, etc. He visto transgénero (2 tipos) en una base de datos del mundo real como un valor de género permisible. No sé si fue el resultado de una disputa.
psr
8
@PhillipBurch: todavía puedes usar un booleano. Simplemente use "FileNotFound" para el tercer género.
Kevin Cline
2
@ YannisRizos: Me parece desagradable que, como hombre, cerraras una pregunta que es muy importante para las personas que no se identifican como hombres o mujeres, y que también podría ser importante para las mujeres, solo porque no preocuparse por eso. Especialmente porque ha sido votado.
DistantEcho
3
@Niphra Si no está de acuerdo con el cierre, no dude en publicar una pregunta al respecto en nuestro sitio Meta .
Yannis

Respuestas:

5

Este es más un problema cultural que técnico, y representa la perspectiva de una sociedad sobre el género.

Si estudiaste en un país islámico o en China, entonces puedo entender por qué esto sería un problema.

Entonces la respuesta es no, nunca he oído hablar de un problema tan tonto en la programación.

Reactgular
fuente
1
Para agregar peso, trabajo con datos del NHS en Inglaterra, estos son datos nacionales que cubren a toda la población. El género se almacena como int, 1 para hombres o 2 para mujeres, lo que generaría las mismas preguntas sudo-éticas. Aquí se usa un int sobre un booleano porque se usan otros valores (por ejemplo, desconocido, transgénero, etc.) pero no hay dudas sobre el uso de un sistema de codificación donde mejora la eficiencia. No dudaría en codificar otros valores, entonces, ¿por qué dudar aquí?
Matt
23

Nunca use un booleano solo porque solo hay dos valores. A menos que el significado de verdadero y falso sea obvio, use una enumeración si está disponible, y constantes de cadena o símbolos o lo que sea si no. Y con demasiada frecuencia, inicialmente hay dos valores y luego hay tres. O cuatro.

Kevin Cline
fuente
1
Muy buen consejo, gracias, pero no aborda la pregunta.
Omega
1
¿Cuáles son los hechos históricos sobre una disputa cuando se usan booleanos para el género debido al comportamiento moral aparentemente "incorrecto" de llamar a una mujer "falsa"? (Me doy cuenta de que el título no incluye la parte moral, pero el contenido de la pregunta se centra en él)
Omega
1
En realidad, ha habido disputas al usar booleanos debido al hecho de que las personas que no se identifican como mujeres o hombres se sintieron ignoradas o rechazadas: se vieron obligadas a elegir un género (ver google +). El uso de verdadero / falso es un problema menor.
DistantEcho
Teniendo en cuenta que la mayoría de los lenguajes de programación usan una palabra completa para almacenar un booleano de todos modos, y "género" definitivamente no es una propiedad verdadero / falso (semánticamente), entonces tienes toda la razón. Tener un género "falso" no es algo social, es semánticamente incorrecto y ni siquiera está obteniendo una ventaja de rendimiento.
Scott Whitlock
-4

Además de la razón dada por Kevinn, el uso de booleano en este caso obliga a usar nombres de variables y propiedades como isMale (o isFemale), en lugar de género.

Para mí, un nombre neutral como "género" es mucho mejor que "isblabla" como nombre de propiedad.

Codismo
fuente