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?
Implement quick sort
.