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