¿Qué lenguaje natural tiene la ventaja cuando se trata de programación? [cerrado]


21

La relatividad lingüística es la idea de que el lenguaje da forma a la forma en que pensamos. Mi pregunta es, ¿cuánto y en qué medida se aplica esto a la programación?

  • ¿Algunos lenguajes nativos y naturales son más adecuados para pensar en programación que otros? Por ejemplo, ¿se puede decir lo siguiente de manera más concisa en un idioma que no sea inglés? Select a pivot. Move all the items less than the pivot to one side of the list, and all the items greater than the pivot to the other side.
  • ¿Un programador de habla china ve la programación en una lente radicalmente diferente que un programador de habla inglesa, o las diferencias se desvanecen cuando ambos están inmersos en el tema?
  • ¿Es más fácil pensar en algunos lenguajes y dominios de programación en un idioma u otro? Por ejemplo, ¿es más fácil asimilar a Ruby si eres japonés porque el creador de Ruby es japonés?

Tenga en cuenta que esta pregunta no se centra en "cómo afectan los lenguajes de programación a la forma en que las personas piensan sobre la programación", sino más bien "cómo afectan los lenguajes naturales a la forma en que las personas piensan sobre la programación".

Para sacarlo del camino, un idioma que claramente tiene una ventaja pragmática es el inglés . Creo que la ventaja tiene poco que ver con los lenguajes de programación que eligen como palabras clave en inglés if, for, while, y do, al igual que los músicos que no hablan italiano no se haya disparado por palabras como punto fuerte . Tiene más que ver con la comunicación de ideas con otros programadores, ya que el inglés es la lengua franca en estos días, al menos en el mundo de la programación. Por ejemplo, para hacer una pregunta en StackOverflow, realmente necesita saber inglés y saberlo bastante bien si quiere buenas respuestas. Aunque esto suena como una actitud imperialista, realmente es cierto en la práctica.

Aparte de eso, ¿cómo afectan las propiedades intrínsecas de los lenguajes a cómo los programadores que los hablan piensan sobre estructuras de datos, algoritmos, etc.? ¿Hay algún lenguaje particularmente conciso cuando se trata de hablar de lógica y programación, permitiendo a los hablantes nativos de esos idiomas pensar más rápido?


2
Puede decirlo muy simplemente a cualquier programador competente. Implement quick sort.
Josh K

Respuestas:


3

Ah, la hipótesis de Sapir-Whorf contra la guerra de hipótesis de la Estructura Profunda de Chomsky ...

La programación es matemática. La matemática es filosofía aplicada. La pregunta es, entonces, qué lenguaje natural puede describir exactamente los conceptos matemáticos sin rascarse la cabeza de manera significativa. Dicho de otra manera, ¿qué idiomas pueden manejar fácilmente la metafísica aristotélica?

El proverbial lenguaje 'salvaje' puede tener dificultades iniciales para expresar las abstracciones de primer orden que se requieren. Sin embargo, sin embargo! - Los humanos pueden aprender nuevas palabras y nuevos conceptos. El griego antiguo no comenzó con términos filosóficos; tuvieron que ser inventados y luego transportados a otros idiomas.

Considerando que las matemáticas son universales, postulo que la fuerte hipótesis de Sapir-Whorf es falsa.


"La matemática es filosofía aplicada" ¿Explicar?
Frank Shearar

1
@Frank: Históricamente, ese fue el caso. Cuando haces una mirada superficial a los "fundamentos de las matemáticas", se hace bastante evidente que está filosóficamente fundamentado. Por ejemplo, todo el argumento intuicionista.
Paul Nathan

No diré que algunas preguntas matemáticas son filosóficas, como usted dice. Me parece un salto muy lejos de eso decir que "las matemáticas son filosofía aplicada".
Frank Shearar

@Frank: bueno, si los fundamentos de las matemáticas son filosóficos, entonces parece que lo que se deriva de los fundamentos también es filosófico. ¿No? ¿Sí?
Paul Nathan

1
@ Frank: Terrible, ¿eh? Apuesto a que un importante especialista en artes liberales se está riendo de su café con leche ahora. :)
Paul Nathan

13

No sé si algún lenguaje natural en particular se presta para una mejor programación (¿excepto quizás el latín?). Sé que saber más de un idioma es bastante poderoso.

Dijkstra dijo en una de sus últimas entrevistas (reimpreso en CACM Vol. 53 No. 8, p. 44):

Hay una enorme diferencia entre alguien que es monolingüe y alguien que al menos conoce bien un segundo idioma, porque te hace mucho más consciente de la estructura del lenguaje en general. Descubrirá que ciertas construcciones en un idioma simplemente no se pueden traducir.


6

El turco es un idioma muy interesante, ya que tiene reglas estrictas sin excepciones (que yo sepa), es casi perfectamente libre de redundancia, no tiene género gramatical y, en palabras, puede expresar tanto como frases en inglés.

En el pasado "Çekoslovakyalılaştıramadıklarımızdan mısınız?" lo que significa "¿Eres una de esas personas a las que no podríamos hacer parecernos a Checoslovaquia?" fue muy popular y aceptado como la palabra más larga en turco. Sin embargo, los sufijos de las preguntas (mısınız en este caso) se escriben por separado, por lo que aunque es una palabra, parece que son dos palabras cuando se escribe la palabra. Además, se podrían hacer fácilmente versiones más largas de esta palabra, como "Çekoslovakyalılaştırabildiklerimizden miydiniz?". Por estas razones, la palabra perdió su popularidad, pero sigue siendo un trabalenguas popular en Turquía.

hablar en turco me hace pensar en lo que quiero lograr, qué información quiero transmitir y menos en qué palabras usar.

editar
Por supuesto turco tiene palabras para representar el género biológico. Pero no tiene separación en he / she / it - en turco "o".

O en español dirías "profesor / profesora" y en alemán "Lehrer / Lehrerin". En turco, debe usar palabras adicionales para indicar el género, similar al inglés.
En turco el profesor es öğretmen. Para señalar a una maestra, dirías "kadın öğretmen" - maestra. Pero a pesar del alemán, donde, si no se feminiza agregando un "-in", el valor predeterminado es masculino, öğretmen no tiene género, ya que no lo hay.

Otra cosa que no está disponible en turco son artículos como "el / la", "the", "der / die / das", ya que generalmente es solo información que ya está disponible según el contexto.
Pero hay palabras para expresar "esto", "este / esta", "diese / dieses / diese", por ejemplo "bu".
Esta es información adicional, ya que apunta a un determinado objeto.


1
Sin sexo gramatical, ¿de dónde vendrán los pequeños turcos? (Por cierto, cuando vi la pregunta, pero antes de mirar aquí, pensé en turco. Si bien no lo hablo, escuché lo regular que es).
Randall Schulz

Aparentemente, la sintaxis de Smalltalk está aún más cerca del turco que del inglés: smalltalk.gnu.org/blog/zuluuuuuu/smalltalk-and-turkish
Frank Shearar

@Frank Shearer: ¡es hora de aprender smalltalk!
VikingoS dice Reinstate Monica

@Randall Schulz: U me tienes;) Siempre mezclo el término sexo y género ...
VikingoS dice Reinstate Monica

Según algunos estudios, he oído que el sánscrito está destinado a parecerse más a un lenguaje de computadora, puedes buscarlo en Google. No estoy seguro de cuán cierto puede ser, pero dado que el sánscrito nunca despegó como un idioma hablado convencional y también porque se usó en la academia para estudios técnicos de la época, es probable que sea diferente a los idiomas hablados naturales de hoy. El turco suena muy dulce para mis oídos (solo sonoramente) pero si todo y el sánscrito hablan como lenguajes de programación, sería muy aburrido. Lo último que quiero escuchar cuando me preguntan: "¿es niño o niña?" Es sí".
nawfal

2

Creo que es más probable que el lenguaje de programación que está utilizando dé forma a la forma en que piensa sobre el problema, los nombres de variables y clases, etc., son solo caracteres que representan algo. Aunque es muy probable que los programadores en diferentes culturas piensen en programar de manera diferente debido a su lenguaje hablado y la forma en que aprendieron.


1

En mi opinión, el lenguaje natural no importa (o al menos no debería importar) en absoluto cuando se habla de los métodos o ideas que está intentando realizar con su código.

Como dijiste tú mismo, cuando trabajas con el código en sí y escribes documentaciones sobre el código, el inglés es lo más apropiado. Pero como el código en sí mismo es solo una artesanía , la fuerza real de un programador / informático radica sobre eso con ideas, algoritmos y esas cosas, y luego, el lenguaje en el que se describen esas cosas no tiene importancia para el contenido real.


0

Este fue un tema que me interesó mucho en algún momento, por lo tanto, mi dolor aún mayor (ahora) es que no puedo encontrar los marcadores que tenía en ese momento.

Guardé un enlace en el que me topé el otro día, ¿Diferentes idiomas equivalen a diferentes realidades? que las tangentes de alguna manera en él (lea los comentarios también). Algunos son interesantes

De todos modos ...


-1

El inglés es bastante eficiente y conciso. La traducción a la mayoría de los idiomas hará que una idea sea más larga de expresar .

También se acepta generalmente que no hay lenguajes naturales primitivos . Todos los lenguajes naturales en uso activo tienen el mismo nivel de expresividad. Eso no quiere decir que las ideas no estén formadas por el lenguaje, pero no creo que el lenguaje natural sea una gran influencia.


Creo que el chino es probablemente el idioma más conciso que he encontrado, tanto cuando se escribe como cuando se habla. La duración de la traducción suele ser algo más de la mitad del inglés.
Jon Purdy

44
Pero, ¿no es la complejidad del símbolo simplemente mayor?
Joeri Sebrechts

¿El chino es APL de los idiomas hablados que quieres decir? :)
nawfal
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.