A relatividade linguística é a ideia de que a linguagem molda a maneira como pensamos. Minha pergunta é: quanto e em que medida isso se aplica à programação?
- Algumas linguagens nativas naturais são mais adequadas para pensar em programação do que outras? Por exemplo, o seguinte pode ser declarado de forma mais concisa em um idioma que não seja o 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.
- Um programador de língua chinesa vê a programação em uma lente radicalmente diferente da de um programador de língua inglesa ou as diferenças desaparecem quando ambas estão imersas no assunto?
- Algumas linguagens e domínios de programação são mais fáceis de se pensar em um idioma ou outro. Por exemplo, é mais fácil grudar Ruby se você é japonês porque o criador do Ruby é japonês?
Observe que esta questão não está focada em "como as linguagens de programação afetam a maneira como as pessoas pensam sobre programação", mas sim em "como as linguagens naturais afetam a maneira como as pessoas pensam em programação".
Para tirá-lo do caminho, um idioma que claramente tem uma vantagem pragmática é o inglês . Acho que a vantagem tem pouco a ver com as línguas que escolhem palavras-chave em inglês como programação if
, for
, while
, e do
, assim como os músicos que não falam italiano não está desarmado por palavras como forte . Tem mais a ver com a comunicação de idéias com outros programadores, pois o inglês é a língua franca atualmente, pelo menos no mundo da programação. Por exemplo, para fazer uma pergunta no StackOverflow, você realmente precisa conhecer o inglês e conhecê-lo muito bem, se quiser boas respostas. Embora isso pareça uma atitude imperialista, é realmente verdade na prática.
Além disso, como as propriedades intrínsecas das linguagens afetam o modo como os programadores que as falam pensam sobre estruturas de dados, algoritmos etc.? Existem idiomas particularmente concisos quando se trata de falar sobre lógica e programação, permitindo que os falantes nativos desses idiomas pensem mais rápido?
fonte
Implement quick sort
.Respostas:
Ah, a hipótese de Sapir-Whorf vs. as guerras de hipótese de Chomsky Deep Structure ...
Programar é matemática. Matemática é filosofia aplicada. A questão então se torna: qual linguagem natural pode descrever exatamente conceitos matemáticos sem coçar a cabeça de maneira significativa. Em outras palavras, quais idiomas podem lidar facilmente na metafísica aristotélica?
O proverbial idioma "selvagem" pode ter dificuldade inicial para expressar as abstrações de primeira ordem necessárias. Entanto- no entanto! - os humanos podem aprender novas palavras e novos conceitos. O grego antigo não começou com termos filosóficos; eles tiveram que ser inventados e depois transportados para outros idiomas.
Considerando que a matemática é universal, postulo que a forte hipótese de Sapir-Whorf é falsa.
fonte
Não sei se uma linguagem natural específica se presta a uma melhor programação (exceto, talvez, o latim?). Eu sei que conhecer mais de um idioma é bastante poderoso.
Dijkstra disse em uma de suas últimas entrevistas (como publicado no CACM Vol. 53 No. 8, p. 44):
fonte
O turco é uma língua muito interessante, pois possui regras rígidas, sem exceções (que eu saiba), é quase totalmente livre de redundância, não tem gênero gramatical e, na palavra, pode expressar tanto quanto uma frase em inglês.
falar em turco me faz pensar sobre o que eu quero alcançar, quais informações eu quero transmitir e menos sobre quais palavras usar.
editar
É claro que o turco tem palavras para representar o gênero biológico. Mas não tem separação em he / she / it - em turco "o".
Ou em espanhol você diria "profesor / profesora" e em alemão "Lehrer / Lehrerin". Em turco, você deve usar palavras extras para indicar o sexo - semelhante ao inglês.
Em turco professor é öğretmen. Para indicar uma professora, você diria "kadın öğretmen" - professora. Mas, apesar do alemão, onde - se não feminizado, adicionando um "-in" - o padrão é masculino, os homens não têm gênero, pois não há.
Outra coisa que não está disponível em turco são artigos como "el / la", "the", "der / die / das" - como geralmente são apenas informações que já estão disponíveis pelo contexto.
Mas há palavras para expressar "isto", "este / esta", "diese / dieses / diese", por exemplo "bu".
Esta é uma informação extra, pois está apontando para um determinado objeto.
fonte
Eu acho que é mais provável que a linguagem de programação que você está usando modele a maneira como você está pensando sobre o problema, os nomes de variáveis e classes etc. são apenas caracteres que representam algo. Embora seja muito provável que programadores de diferentes culturas pensem em programação de maneira diferente por causa de sua linguagem falada e da maneira que aprenderam.
fonte
Na minha opinião, a linguagem natural não importa (ou pelo menos não deveria importar) quando se fala dos métodos ou idéias que você está tentando realizar com seu código.
Como você mesmo disse, ao trabalhar com o próprio código e ao escrever documentações sobre o código em inglês, é o mais apropriado. Mas como o código em si é apenas um artesanato , a força real de um programador / cientista da computação está acima disso com idéias, algoritmos e coisas assim - e, em seguida, a linguagem em que essas coisas são descritas é completamente sem importância para o conteúdo real.
fonte
Esse era um tópico que me interessou muito em algum momento, portanto, minha tristeza ainda maior (agora), por não encontrar os favoritos que eu tinha naquela época.
Salvei um link em que tropecei no outro dia, Idiomas diferentes são iguais a realidades diferentes? que tangencia um pouco nele (leia também os comentários). Alguns são interessantes.
Em todo o caso ...
fonte
O inglês é realmente bastante eficiente e conciso. A tradução para a maioria dos idiomas tornará uma idéia mais longa para ser expressa .
Também é geralmente aceito que não há idiomas naturais primitivos . Todas as línguas naturais em uso ativo têm um nível igual de expressividade. Isso não quer dizer que as idéias não sejam formadas pela linguagem, mas não acho que a linguagem natural seja uma grande influência.
fonte