Que linguagem natural tem vantagem quando se trata de programação? [fechadas]

21

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?

Joey Adams
fonte
2
Você pode afirmar isso de maneira muito simples para qualquer programador competente. Implement quick sort.
Josh K

Respostas:

3

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.

Paul Nathan
fonte
"Matemática é filosofia aplicada" Explique?
Frank Shearar
1
@ Frank: Historicamente, esse foi o caso. Quando você faz uma análise superficial dos 'fundamentos da matemática', torna-se bastante evidente que é filosoficamente fundamentado. Por exemplo, todo o argumento intuicionista.
Paul Nathan
Não vou argumentar que algumas questões matemáticas são filosóficas, como você diz. Parece-me um salto longe disso em dizer que "a matemática é filosofia aplicada".
10248 Frank Shearar
@ Frank: bem, se os fundamentos da matemática são filosóficos, parece que o que é derivado dos fundamentos também é filosófico. Não? Sim?
Paul Nathan
1
@Frank: Terrível, não é? Algum estudante de artes liberais está rindo do café com leite agora, aposto. :)
Paul Nathan
13

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

Há uma enorme diferença entre quem é monolíngue e alguém que pelo menos conhece bem uma segunda língua, porque isso o torna muito mais consciente sobre a estrutura da linguagem em geral. Você descobrirá que certas construções em um idioma você simplesmente não consegue traduzir.

Frank Shearar
fonte
6

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.

No passado "Çekoslovakyalılaştıramadıklarımızdan mısınız?" o que significa "Você é uma daquelas pessoas com quem não conseguimos parecer da Tchecoslováquia?" era muito popular e aceito como a palavra mais longa em turco. No entanto, os sufixos das perguntas (neste caso, mısınız) são escritos separadamente, portanto, embora seja uma palavra, parece que são duas quando a palavra é escrita. Além disso, versões mais longas dessa palavra poderiam ser feitas com facilidade, como "Çekoslovakyalılaştırabildiklerimizden miydiniz?". Por esses motivos, a palavra perdeu sua popularidade, mas ainda é um trava-língua popular na Turquia.

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.

VikingoS diz Restabelecer Monica
fonte
1
Sem sexo gramatical, de onde virão os pequenos turcos? (By the way, quando eu vi a pergunta, mas antes de olhar aqui, pensei em turco Enquanto eu não falo isso, eu tinha ouvido falar sobre como regular, que é..)
Randall Schulz
Aparentemente sintaxe do Smalltalk é ainda mais perto de Turkish do que é para Inglês: smalltalk.gnu.org/blog/zuluuuuuu/smalltalk-and-turkish
Frank Shearar
@ Frank Shearer: hora de aprender conversa fiada!
VikingoS diz Restabelecer Monica
@Randall Schulz: Você me pegou;) Eu sempre misturo o termo sexo e gênero ...
VikingoS diz Reinstate Monica
Ouvi dizer que o sânscrito deve ser o mais parecido com uma linguagem de computador, de acordo com algum estudo, você pode pesquisar no Google. Não sei ao certo como isso pode ser verdade, mas como o sânscrito nunca decolou como língua falada convencional e também porque foi usado na academia para estudos técnicos da época, é provável que seja diferente das línguas faladas naturais de hoje. O turco soa muito doce para os meus ouvidos (apenas auditivamente), mas se tudo isso e o sânscrito falarem como linguagens de programação, menino, isso seria muito chato. A última coisa que quero ouvir quando perguntam: "é menino ou menina?" é sim".
Nawfal
2

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.

MetaGuru
fonte
1

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.

cutucar
fonte
0

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

Torre
fonte
-1

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.

Joeri Sebrechts
fonte
Acho que o chinês é provavelmente a língua mais concisa que já encontrei, tanto quando escrita quanto falada. A duração da tradução é geralmente pouco mais da metade do inglês.
Jon Purdy
4
Mas a complexidade do símbolo não é apenas maior?
Joeri Sebrechts
Chinês é APL das línguas faladas que você quer dizer? :)
nawfal