Los lenguajes de programación deben ser sensibles a mayúsculas y minúsculas, punto. Las personas pueden adaptarse a esto muy fácilmente: simplemente deben recordar trabajar principalmente en minúsculas y tener cuidado con los identificadores de mayúsculas y minúsculas en las API existentes.
Una vez parecía obvio hacer que los idiomas no distingan entre mayúsculas y minúsculas. Esto se debe a que las minúsculas no estaban disponibles en todos los sistemas informáticos y sus dispositivos de E / S (teclados, impresoras y dispositivos de visualización). Las implementaciones de lenguaje de programación tenían que aceptar programas escritos en mayúsculas, ya que solo eso podía mostrarse o imprimirse. Y para eso tenían que ser mayúsculas y minúsculas, porque aceptar mayúsculas y mayúsculas y minúsculas al mismo tiempo significa rechazar minúsculas. Las minúsculas eran algo que los programadores querían, pero que no siempre podían tener. Nadie realmente quería trabajar con programas que gritaban en mayúsculas; fue solo una limitación de hardware.
Durante un tiempo, era común incluso plegar cajas en los terminales. Si un terminal solo pudiera mostrar mayúsculas, pero tuviera que iniciar sesión en un sistema informático que admita mayúsculas y minúsculas, el terminal plegaría las minúsculas a mayúsculas. ¿Crees que esto fue hace tanto tiempo? "Al igual que el Apple II, el Apple II Plus no tenía funcionalidad en minúsculas". (http://en.wikipedia.org/wiki/Apple_II_Plus) Cuando los usuarios de las primeras computadoras Apple marcaron un BBS que tenía contenido en mayúsculas y minúsculas, el emulador de terminal (o host) tuvo que doblar todo a mayúsculas. Los mensajes escritos en mayúsculas eran comunes en los tableros de anuncios en esos días. Esta funcionalidad todavía se encuentra en sistemas operativos tipo Unix, como el kernel de Linux. Por ejemplo, escriba el stty olcuc
en su indicador de shell.La disciplina de línea Unix tty puede asignar minúsculas a mayúsculas en la salida, y puede asignar mayúsculas a minúsculas en la entrada. Esto le permite trabajar en un lenguaje de programación en minúsculas, en un terminal que no tiene minúsculas.
La insensibilidad a mayúsculas y minúsculas es un concepto desactualizado de una era informática pasada que no funciona muy bien en el mundo moderno de la informática internacionalizada. ¿Extiende eso a otros idiomas? ¿Qué tal el francés? ¿Consideras que È y è son equivalentes? O japonés? ¿Considera que hiragana y katakana son solo casos, de modo que フ ァ イ ル y ふ ぁ い る son el mismo identificador? El soporte para tal locura complicará enormemente su analizador léxico, que tendrá que tener mapas de equivalencia de casos para todo el espacio Unicode.
Tenga en cuenta que las matemáticas distinguen entre mayúsculas y minúsculas. Por ejemplo, la sigma en mayúscula puede denotar suma, mientras que la sigma en minúscula denota otra cosa, como la desviación estándar. Esto puede ocurrir en la misma fórmula sin crear ninguna dificultad. (¿El lenguaje de programación hará que Σ y σ sean equivalentes?)
La ortografía inglesa es sensible. Por ejemplo, muchos sustantivos propios corresponden a sustantivos ordinarios o incluso a otras partes del discurso. "mayo" es un verbo, pero "mayo" es un mes, o el nombre de una mujer. Además, si se escriben acrónimos o abreviaturas en minúsculas, puede ser confuso. SAT significa prueba de aptitud escolar, mientras que "sat" es el participio pasado de "sentarse". Las personas inteligentes prestan atención a los detalles y capitalizan adecuadamente.
Básicamente, cualquier nuevo lenguaje de programación creado desde 1985 que no distinga entre mayúsculas y minúsculas es PARA AQUELLOS QUE TODAVÍA GRITAN EN CORREOS ELECTRÓNICOS Y PUBLICACIONES SIN UN SEGUNDO PENSAMIENTO.
¿Qué sucede si su idioma alguna vez se usa como un objetivo de generación de código para traducir código en otro idioma y ese otro idioma distingue entre mayúsculas y minúsculas? Tendrá que transformar de alguna manera todos los nombres para capturar la distinción. (Por lo tanto, afirmar que esta no es una decisión técnica, y solo es cuestión de las preferencias emocionales del público objetivo, es ridículo).
Mire los molestos problemas causados por el manejo de casos en Windows, cuando los archivos se importan desde otro sistema operativo. Eso es un problema técnico. Los sistemas de archivos sensibles a mayúsculas y minúsculas tienen un problema con los datos externos que no distinguen entre mayúsculas y minúsculas.
Common Lisp ha dado con el enfoque ideal: los nombres de los símbolos distinguen entre mayúsculas y minúsculas, pero cuando se leen los tokens, se doblan a mayúsculas. Esto significa que las fichas foo
, fOO
, FOO
y Foo
todos denotan el mismo símbolo: el símbolo cuyo nombre se almacena como la cadena de caracteres "FOO"
. Además, este comportamiento es solo la configuración predeterminada de la tabla de lectura. El lector puede doblar letras en mayúsculas, minúsculas, invertir las mayúsculas o conservarlas. Las dos últimas opciones dan lugar a un dialecto sensible a mayúsculas y minúsculas. De esta manera, los usuarios tienen la máxima flexibilidad.