¿Cómo se benefician los lenguajes de programación al estar basados ​​en el inglés? [cerrado]

14

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.)

mojuba
fuente
3
@ Michael: Dijo "Creo". Está expresando su propia opinión. Puede preguntar cómo llegó a esa opinión, pero no creo que necesite citar una fuente. Podemos tomarle la palabra de que si dice que es su opinión, es su opinión. Además, no dijo que NO había circunstancias históricas o económicas, solo que creía que estos no eran los únicos factores, y está más interesado en discutir los otros.
HedgeMage
1
@Michael: usted dice "Las computadoras fueron inventadas y establecidas principalmente en países de habla inglesa", ahora eso es circunstancias históricas / económicas. Por ejemplo, podemos mencionar la revolución industrial en el siglo XIX en el Reino Unido (y todo el imperio en realidad), o la "fuga de cerebros" durante / después de la Segunda Guerra Mundial a los Estados Unidos, o que los Estados Unidos probablemente tuvieron las menores pérdidas durante la Segunda Guerra Mundial entre los países industriales, etc.
mojuba
3
Cualquiera sea el idioma que sea, debe ser, de manera gramatical, neutral en cuanto al género.
JeffO
1
@Jeff O: absolutamente, y no solo género. Básicamente, todos sus verbos deben ser neutrales, porque de lo contrario terminará pensando en qué forma exacta (tiempo, género, etc.) debe ser el "hacer" en su "mientras ... hacer ...". La morfología de los verbos en inglés es tan relajada en comparación con muchos otros idiomas europeos que creo que eso es, entre otras cosas, lo que hace que el inglés sea tan bueno para la programación.
mojuba el
2
También podríamos preguntarnos por qué el italiano proporciona las palabras clave para la música, mientras estamos en eso. Puede haber algunas ideas allí.
David Thornley el

Respuestas:

17

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ón goto, 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
2
Class kind-of significa lo que significa en inglés. Una "clase" define un Tipo, que es una "clase de objetos". Puede decir que todos los valores Int o todos los registros de Persona son de una clase porque comparten ciertas características. Sin embargo, la mayoría de los programadores tipo C no piensan en términos categóricos, por lo que "clase" solo significa "modelo de objeto" para ellos.
CodexArcanum
77
Tu inglés es excelente por cierto
Allen
Como compañero alemán, tengo que decir que estoy totalmente de acuerdo contigo. Creo que la razón principal es, como usted mencionó, que el inglés es el idioma en el mundo de TI. Gente de todo el mundo habla, discute y programa en inglés todos los días, por lo que casi todos los artículos relevantes se publican por primera vez en inglés. Lo mismo se aplica para los libros. Además, la mayoría de los libros que se traducen al alemán leen un poco mal. Algunas frases y palabras clave se traducen. Eso mata totalmente el flujo .
mhr 01 de
Estoy completamente de acuerdo en que intentar calzar la gramática del inglés en lenguajes de programación es un completo error. No estoy de acuerdo con "este significado es muy jerga, especializado". Como hablante nativo de inglés, describir conceptos como análogos a términos preexistentes es típico de la comunicación cotidiana. El inglés como idioma solo se interpreta libremente y es muy específico al contexto en general. En cuanto a los equivalentes alemanes, no es una gran sorpresa. El inglés toma prestada gran parte de su estructura del alemán, y gran parte de su vocabulario de otros idiomas. Es como la 'carne misteriosa' de los lenguajes naturales.
Evan Plaice
@EvanPlaice Sí, es discutible lo poco naturales que realmente son. Claramente hay algo de mérito para ellos, de lo contrario habrían sido abolidos hace mucho tiempo. No puedo juzgar si generalmente ayudan a los hablantes nativos de inglés, solo sé que el equivalente (elegir la traducción más cercana, luego construir analogías equivalentes con esa traducción) tiende a construir asociaciones incorrectas en el cerebro de los estudiantes. Traducciones de re: Sí, no es sorprendente que haya palabras similares; Estaba apuntando a la parte de la pregunta "había más palabras abreviadas y abreviaturas raras que palabras completas".
8

El inglés es el idioma de programación de la lengua franca .

Del mismo artículo:

No es más que grandes hackers que se dan cuenta colectivamente de que apegarse al inglés para la discusión técnica hace que sea más fácil hacer las cosas.

Matt Ball
fuente
99
lingua franca - una frase latina que (hoy) significa francés. Y sin embargo, lo usamos para significar inglés.
66
@Graham Lee: Por irónico que sea, la frase ha llegado a significar (como un término prestado en inglés) "un idioma común utilizado por personas de diversos orígenes para comunicarse entre sí".
greyfade el
¿Por qué el italiano es la lengua de notación musical o el latín la música de la ciencia? Para la tecnología es inglés. Con la aceptación internacional como 'lingua franca', es inevitable que el inglés tenga el vocabulario más extenso específico de la tecnología. Un vocabulario rico es esencial para una comunicación efectiva (y universal), por lo que las personas están dispuestas a adoptar el idioma.
Evan Plaice
5

El idioma inglés es favorable porque:

  1. Se ajusta mejor a las restricciones de los periféricos actuales.

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.

  1. Se puede transformar en palabras que son igualmente reconocibles. El inglés favorece las abreviaturas debido a la falta de símbolos de acento.

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.

  1. Y considere que los lenguajes de programación comunes presentan más símbolos matemáticos y menos palabras.

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.

Lee Louviere
fuente
44
Uno no tiene que aprender todo el idioma inglés para codificar, por lo tanto, las personas externas al idioma pueden aprender rápido , no parece un buen argumento: en la ciencia médica hay muchas palabras latinas, y usted no Necesito saber latín para estudiar ciencias médicas.
mojuba el
2
Lo que dijiste sobre el chino es falso. El chino se puede ingresar con un teclado estándar.
grokus el
2
@mojuba No es lo que quise decir. Lo que quise decir es que el inglés es bueno para abreviar palabras, MOV, cpystr, etc. No se puede cortar la mitad de un símbolo chino o la mitad de una palabra japonesa (que generalmente es una combinación de palabras) y significa lo mismo. Mientras que tiene mucho espacio para acortar las palabras en inglés y transmitir el mismo significado. No me refiero a decir que otras profesiones no incorporan palabras de otros idiomas, me refiero a que la sintaxis del programa de palabras sí se puede simplificar fácilmente en tokens.
Lee Louviere
@grokus A menos que se refiera a PinYin, no puede escribir directamente chino. Debe usar las pulsaciones de teclas o PinYin y seleccionar el símbolo de coincidencia más cercano. De cualquier manera, debe incorporar un proceso de selección porque el teclado estándar no admite los cuatro tonos chinos. A MENOS QUE modifique el teclado estándar, violando así los requisitos.
Lee Louviere
-1, 0 no era un concepto occidental (Medio Oriente primero), la Asamblea no usa palabras en absoluto (generalmente basadas en nombres de línea / registro y comandos de 3-5 caracteres para que 0x86 sea LDA), estructura en inglés mata la programación porque el inglés tiene uno de los peores conjuntos de estructura en los idiomas "occidentales". Las palabras que no son "reconocibles" son una idea específica de la localidad y el tema y pueden ser tan malas como un conjunto de palabras "no inglesas" para comprender. Todos los idiomas son simbólicos, es parte de cómo los convierte en un lenguaje formal: int representa números enteros, Double representa flotadores de doble precisión ...
Jeff Langemeier
5

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 ...

Guffa
fuente
3

Aquí hay algunos beneficios que un lenguaje de programación hipotético tendría si asumiera el alfabeto inglés - latino.

  1. Es un pequeño conjunto de caracteres (a diferencia de decir Kanji)
  2. No suele usar signos diacríticos (a diferencia del francés, español, alemán, etc.)
  3. Cada mayúscula tiene minúscula (a diferencia del alemán Eszett)
  4. Su cotejo es sencillo

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

Conrad Frix
fuente
55
Me pregunto si las computadoras se inventaron en China, debatiríamos cómo alguien podría escribir código que no estuviera en chino porque todos los caracteres permiten nombres más cortos.
CodexArcanum el
3
Estoy en desacuerdo. El alfabeto griego, por ejemplo, es tan pequeño; las marcas diacríticas podrían haberse eliminado específicamente para la programación, lo mismo para el alemán ß; la colación hoy en día está normalizada, es decir, llevada a una forma "sencilla" para informática / bases de datos, etc. en prácticamente todos los idiomas existentes. Al igual que los artículos en inglés "the" y "a" básicamente no se usan ni se evitan en la informática, cualquier otro idioma podría haber pasado por alguna optimización.
mojuba el
3
No veo que las mayúsculas y minúsculas tengan mucho que ver con el lenguaje de programación.
David Thornley el
1
@David Thornley ah, pero para un compilador el programa son los datos.
Conrad Frix
1
@Ingo No estoy seguro de lo que quieres decir. Por ejemplo, supongamos que usé una variable llamada étudiant. Con unicode, la primera letra puede expresarse como U+00E9 LATIN SMALL LETTER E WITH ACUTEo podría ser eseguida por U+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 \u00e9tudianty e\u0301tudiant?
Conrad Frix
2

No estoy tan seguro de que los lenguajes de programación se beneficien de estar basados ​​en el inglés. En explicación:

  • El nombre de un método, variables, objetos, etc. no le importa a la computadora
  • El contenido de un comentario no le importa a una computadora
  • La lógica de la programación es expresable en la mayoría de los idiomas hablados (y supongo que TODOS).

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:

  • Muchas personas en países extranjeros aprenden inglés, quieran o no programar
  • Las personas que diseñan un lenguaje de computadora y desean que muchas personas lo usen generalmente elegirán el lenguaje hablado más conocido para describirlo.

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.

John Fisher
fuente
Interesante que mencione comentarios; He trabajado para una empresa con sede en Japón, donde todos los archivos C se almacenaron en Unicode porque los comentarios estaban en japonés.
Mark Avenius
1

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:

  • El inglés se puede representar en un conjunto de caracteres más pequeño que, por ejemplo, chino, japonés, cirílico o incluso lenguas romances que usan caracteres latinos acentuados.
  • El alfabeto inglés, en gran parte debido a su completa falta de caracteres acentuados, es muy visualmente claro. Tenemos suficientes errores debido a corchetes no coincidentes o puntos y comas faltantes, sería una tontería agregar problemas para discernir entre 'ē', 'ĕ' y 'ě'.
HedgeMage
fuente
3
El vocabulario técnico en inglés es rico porque la informática se desarrolló principalmente en países de habla EN y no al revés. Un problema de huevo de gallina realmente;) En cuanto a los caracteres acentuados, un punto interesante de hecho.
mojuba el
@mojuba No estoy de acuerdo. El vocabulario técnico en inglés es rico porque las tecnologías que precedieron a las computadoras se desarrollaron principalmente en inglés. Esas tecnologías se desarrollaron en inglés por razones principalmente económicas, pero cuando aparecieron las computadoras, el idioma inglés ya estaba preparado y listo.
HedgeMage
2
Pulchra est lingua Latina! ("¡El idioma latino es hermoso!") En realidad hablo latín clásico y me he divertido mucho usándolo en mi código. Desafortunadamente, se mantiene constantemente al borde de ser un lenguaje muerto, por lo que no es práctico basar un lenguaje de programación. (Sin embargo, ahora estoy tentado a diseñar uno solo por diversión). Muchas buenas tecnologías provienen de personas que no hablan inglés, pero no suficientes de cualquier idioma para igualar el rico vocabulario que ofrece el inglés en cualquier idioma que también cumpla El otro factor que mencioné: un alfabeto pequeño y claro.
HedgeMage
1
@mojuba + HedgeMage, realmente no importa dónde se desarrollen las tecnologías, el inglés es una mezcla tan grande de palabras prestadas y vocabulario, que cualquier terminología que no se desarrolló en inglés es rápidamente arrastrada al idioma. La principal ventaja de Englishes es que ofrece mucho tiempo complicado que puede describir bien conceptos abstractos, lo cual es muy útil.
cuál es el
55
El idioma inglés es rico debido a su hábito de atracar otros idiomas en callejones oscuros y robar todas sus palabras útiles. No es tanto una fuente de palabras prestadas como un bazar de palabras.
David Thornley el
1

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:

  1. Falta de estructura (podemos poner sujeto / predicado / sustantivos / adjetivos donde queramos),
  2. Mutabilidad de nuestras palabras (sentimos que podemos abreviar CUALQUIER COSA)
  3. BIG ONE: Alguien que sepa inglés con fluidez no comprenderá mejor una sección de código que alguien que no entienda el idioma inglés.

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.

Jeff Langemeier
fuente