Creo que el mundo ahora programa en lenguajes de programación basados en inglés no solo por circunstancias históricas / económicas, sino porque la morfología inglesa en particular tiene algunas propiedades que se adaptan mejor al pensamiento algorítmico. Pero de todos modos, sería interesante escuchar sus opiniones sobre esto, especialmente si usted mismo es multilingüe.
He visto algunas menciones de idiomas basados en alemán (ver Plankalkul, por ejemplo, de hecho, el primer lenguaje de programación del que sabemos muy poco, gracias a WW2), también un sabor de Algol basado en Rusia que existió en los años 80 en menos en el papel, no estoy seguro si alguna vez existió en binario o no. Ambos parecían un poco lentos porque había más palabras abreviadas y abreviaturas raras que palabras completas como en los idiomas basados en EN. Entonces, si conoce cualquier otro PL nacional basado en el idioma, incluso completamente arcaico e irrelevante hoy, puramente teórico o lo que sea, sería interesante echarles un vistazo.
Y volviendo a la pregunta principal: ¿qué hace, si es que hay alguno, que el lenguaje de Shakespeare sea tan bueno para la programación?
(En realidad, hay una lista de lenguajes de programación no basados en inglés en Wikipedia (por supuesto, ¿dónde más?), Pero sería interesante escuchar las opiniones de hablantes nativos de esos idiomas sobre cómo se siente realmente un lenguaje de programación "nacional" dado me gusta.)
fuente
Respuestas:
Descargo de responsabilidad: mi idioma nativo es el alemán.
No creo que haya ninguna razón por la cual el inglés como idioma para tomar palabras clave sea mejor que cualquier otro idioma natural. Creo que es el idioma más importante en TI, pero no debido a las propiedades lingüísticas, sino porque la mayoría de las personas de tecnología lo hablan hasta cierto punto, es el idioma nativo de bastantes personas importantes en el campo, la mayoría de los términos relacionados con la tecnología ya son ingleses, etc.
Pero como hablamos de lenguajes de programación, no de documentación / API / nombres / etc., tengo que objetar: los lenguajes de programación no se basan en el inglés, ni en ningún otro lenguaje natural. Los lenguajes de programación son lenguajes formales. Utilizan, en mayor o menor grado, un puñado de palabras del inglés (generalmente). Algunos incluso intentan imitar su gramática, pero no logran leer como el inglés independientemente. Para agregar insulto a la lesión, solo asocian un solo significado (en casos raros) con cada palabra que toman prestada. A menudo, este significado es muy jerárquico, especializado o se basa en una analogía cuestionable. Por lo tanto, conocer los innumerables significados del lenguaje natural de una palabra prestada por el lenguaje de programación realmente no ayuda a comprender el concepto de programación detrás de la palabra clave. Ejemplos de la parte superior de mi cabeza:
array
,type
``goto
`class
`void
. (Dato curioso que surgió a la mente al volver a leer la pregunta: ¿Todos ellos, a excepcióngoto
, tienen traducciones al alemán, que son a lo sumo un carácter más largo:Feld
,Typ
,Klasse
,Leere
. Ellos todo sonido extraño para mí, pero eso es probablemente una cuestión de hábito .)fuente
El inglés es el idioma de programación de la lengua franca .
Del mismo artículo:
fuente
El idioma inglés es favorable porque:
Facilidad de tipo. Puedes usar un teclado estándar. Sé que esto suena como "estiércol de llama", pero ¿has intentado escribir en chino? Hay miles de caracteres y dado que el chino no tiene una técnica adecuada de construcción de "caracteres" para adaptarse al concepto de un teclado, no sería fácil de aprender para una audiencia global.
Las palabras cortas en inglés son símbolos reconocibles. No es necesario aprender todo el idioma inglés para codificar, por lo tanto, las personas externas al idioma pueden aprender rápidamente.
Asamblea utiliza palabras pequeñas que no tienen estructura de oración. Luego vinieron los idiomas, como COBOL y FORTRAN, que intentaron acomodar la estructura de la oración en inglés tanto como sea posible. Los idiomas más nuevos implementaron una mayor dependencia de los símbolos algebraicos universales, porque tenían una mejor previsibilidad. (En COBOL Agregar X a Y, Restar Y de X, Calcular Y = X + A; Calcular hace innecesarias las declaraciones anteriores y reduce la complejidad del análisis del lenguaje). No me costaría mucho más considerar que lenguajes como C ++ son más simbólicos que basados en el lenguaje. Hay un poco de retorno a la programación basada en palabras con C #, pero eso se debe principalmente a haber sido compatible con los patrones de programación populares.
Conclusión:
En última instancia, los periféricos se limitan a un idioma basado en caracteres (como el inglés). Además, los idiomas occidentales tienen un mejor soporte para los conceptos matemáticos (como el concepto de 0, entre otros; China toma prestados números en lugar de su propia representación de valores numéricos, para transmitir mejor los números, porque es más corto de escribir (en promedio)). Además de los valores numéricos, vería que los idiomas basados en símbolos (chino) son más adecuados para la morfología del lenguaje de programación que el inglés, ya que la mayoría de los idiomas modernos ya usan símbolos, y sería universalmente equivalente a aprender. Sin embargo, tendríamos que imponer una estructura similar a C ++, tener bloques de símbolos no sería fácil de leer para la mayoría de las personas en el mundo.
fuente
La única razón por la que el inglés se usa ampliamente en informática es que actualmente es un idioma muy extendido.
Si las computadoras se inventaran hace 2000 años, habrían usado el griego. Si se inventaron hace 200 años, habrían usado el francés. Si hubieran sido inventados en 200 años, probablemente usarían chino ...
fuente
Aquí hay algunos beneficios que un lenguaje de programación hipotético tendría si asumiera el alfabeto inglés - latino.
Todas estas cosas son problemas que aún no se han resuelto correctamente en todos los dispositivos. Por ejemplo, los títulos de canciones con signos diacríticos no se muestran correctamente en un número de reproductores de música
fuente
étudiant
. Con unicode, la primera letra puede expresarse comoU+00E9 LATIN SMALL LETTER E WITH ACUTE
o podría sere
seguida porU+0301 COMBINING ACUTE ACCENT
. Si usted fuera el escritor del compilador de uno de estos idiomas, ¿le gustaría admitir nombres variables como este? ¿Cómo trataría exactamente dos variables en el mismo ámbito denominado\u00e9tudiant
ye\u0301tudiant
?No estoy tan seguro de que los lenguajes de programación se beneficien de estar basados en el inglés. En explicación:
Entonces, si el inglés es beneficioso para los lenguajes de programación, sería ayudar a que más personas usen el lenguaje de programación. En ese sentido, aquí hay algunos pensamientos:
Resumiendo estos pensamientos, no creo que el inglés realmente ayude a los lenguajes de programación de una manera significativa que la mayoría de los otros idiomas puedan ofrecer, aparte de que muchas personas lo hablan.
fuente
En mi opinión, el inglés simplemente tiene un vocabulario técnico y matemático más rico que muchos otros idiomas (pero no todos). Los idiomas que carecen de dicho vocabulario utilizan palabras prestadas en inglés para hacer el trabajo. Esto solo es una razón de peso para orientar los lenguajes de programación hacia el inglés.
En cuanto a los idiomas que tienen un vocabulario lo suficientemente rico como para describir todo lo que necesitamos describir sin recurrir constantemente a las palabras prestadas del inglés, la tradición del inglés como lingua franca (lengua común) para las ciencias es en sí misma convincente, pero nuestro alfabeto nos da otra pata arriba:
fuente
Para una lectura divertida sobre el contexto del lenguaje y cómo terminamos asimilando las cosas:
Cosas del pensamiento de Steven Pinker
Recuerde, estamos hablando de la construcción del lenguaje, no de cómo comunicamos la información (no una en la misma), he trabajado con el código donde el idioma principal para las variables era todo en alemán (el código no era menos fácil de entender ) El inglés no tiene inherentemente nada que se adapte mejor a la programación, si nos vamos directamente de cómo está estructurado nuestro idioma, probablemente sea peor, no mejor, y esto podría ser sinceramente por muchas razones:
Preguntar por qué los lenguajes de programación usan "inglés" es como preguntar por qué la tabla periódica todavía tiene la letra 'W' identificando tungsteno, la mayoría de las personas no pueden decir por qué a menos que conozcan la historia. Y si desea la historia de los lenguajes de programación, deberíamos volver a tarjetas perforadas, instrucciones de bytes y ensamblaje.
El ensamblaje no tiene construcciones importantes "en inglés", pero es lo más cercano que puede llegar al código de máquina sin odiarse. Además, todos los elementos estructurales de los lenguajes de nivel superior pueden y son implementados regularmente por aquellos de nosotros lo suficientemente locos como para disfrutarlo. LD, MV, ST, BRA y el resto del conjunto de instrucciones no se parecen en nada al inglés, pero puedo leerlo perfectamente y obtener el significado completo.
Asignamos el mismo significado de LD o MV en ensamblaje a construcciones de nivel superior, no necesito saber qué significa una variable, y en muchos casos no lo haré si está en inglés de todos modos debido al # 2 en mi lista. El conjunto de identificadores como int, str, enum y demás son una forma de decir con qué estás trabajando, nada más. Si en lugar de int el identificador fuera gaviota , todos sabríamos lo que significaba gaviota en un contexto de codificación, no porque sea en inglés, sino que eso es lo que cubre el identificador.
TL; DR: los lenguajes de programación, como cualquier idioma, necesitan capacitación para comprender. La razón por la cual sus comandos están en inglés en lugar de español o alemán o ruso es más que probable esotérica e histórica que por alguna construcción necesaria del idioma inglés que sea más o menos adecuada para los identificadores en la construcción del lenguaje formal.
fuente