Quale linguaggio naturale ha il vantaggio quando si tratta di programmare? [chiuso]

21

La relatività linguistica è l'idea che il linguaggio modella il modo in cui pensiamo. La mia domanda è, quanto, e in che misura, questo si applica alla programmazione?

  • Alcuni linguaggi nativi e naturali sono più adatti per pensare alla programmazione rispetto ad altri? Ad esempio, quanto segue può essere affermato in modo più conciso in una lingua diversa dall'inglese? %codice%
  • Un programmatore che parla cinese vede la programmazione in un obiettivo radicalmente diverso rispetto a un programmatore che parla inglese, oppure le differenze si attenuano quando entrambi sono immersi nel soggetto?
  • Alcuni linguaggi di programmazione e domini sono più facili da pensare in una lingua o in un'altra. Ad esempio, è più facile ingannare Ruby se sei giapponese perché il creatore di Ruby è giapponese?

Si noti che questa domanda non è incentrata su "in che modo i linguaggi di programmazione influenzano il modo in cui le persone pensano alla programmazione", ma piuttosto "come le lingue naturali influenzano il modo in cui le persone pensano alla programmazione".

Per metterlo da parte, una lingua che ha chiaramente un vantaggio pragmatico è Inglese . Penso che il vantaggio abbia poco a che fare con i linguaggi di programmazione scegliendo parole chiave inglesi come 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. , if , for e while , proprio come i musicisti che non parlano italiano non sono inciampati in parole come < em> strong . Ha più a che fare con la comunicazione di idee con altri programmatori, dato che l'inglese è la lingua franca in questi giorni, almeno nel mondo della programmazione. Ad esempio, per fare una domanda in StackOverflow, devi davvero conoscere l'inglese e conoscerlo abbastanza bene se vuoi delle buone risposte. Anche se questo sembra un atteggiamento imperialista, è vero in pratica.

A parte questo, in che modo le proprietà intrinseche dei linguaggi influenzano il modo in cui i programmatori che li parlano pensano a strutture dati, algoritmi, ecc.? I linguaggi sono particolarmente concisi quando si parla di logica e programmazione, consentendo ai madrelingua di quelle lingue di pensare più velocemente?

    
posta Joey Adams 26.09.2010 - 21:48
fonte

7 risposte

3

Ah, l'ipotesi di Sapir-Whorf contro l'ipotesi della struttura profonda di Chomsky guerre ...

La programmazione è matematica. La matematica è filosofia applicata. La domanda diventa quindi, quale linguaggio naturale può descrivere esattamente concetti matematici senza un significativo grattacapo. In altre parole, quali lingue possono occupare facilmente la metafisica aristotelica?

La proverbiale lingua "selvaggia" può avere una difficoltà iniziale che esprime le astrazioni di primo ordine che sono richieste. Tuttavia- comunque! - gli umani possono imparare nuove parole e nuovi concetti. Il greco antico non ha avuto inizio con termini filosofici; dovevano essere inventati e poi portati in altri linguaggi.

Considerando che la matematica è universale, io postulo che la strong ipotesi di Sapir-Whorf è falsa.

    
risposta data 27.09.2010 - 17:55
fonte
13

Non so che un particolare linguaggio naturale si presta a una programmazione migliore (tranne forse il latino?). So che conoscere più di una lingua è piuttosto potente.

Dijkstra ha detto in una delle sue ultime interviste (come ripubblicato in CACM Vol. 53 No. 8, pagina 44):

There is an enormous difference between one who is monolingual and someone who at least knows a second language well, because it makes you much more conscious about language structure in general. You will discover that certain constructions in one language you just can't translate.

    
risposta data 26.09.2010 - 23:11
fonte
6

Turco è una lingua molto interessante in quanto ha regole rigide senza eccezioni (di cui sono a conoscenza), è quasi perfettamente privo di ridondanza, non ha genere grammaticale, e sulla parola può esprimere tanto quanto una frase in inglese.

In the past "Çekoslovakyalılaştıramadıklarımızdan mısınız?" which means "Are you one of those people whom we couldn't make resemble from Czechoslovakia?" was very popular and accepted as the longest word in Turkish. However, the question suffixes (mısınız in this case) are written separately, so though it is one word, it seems like two words when the word is written. Also, longer versions of this word could be made easily, such as "Çekoslovakyalılaştırabildiklerimizden miydiniz?". For these reasons, the word lost its popularity, but it is still a popular tongue-twister in Turkey.

parlare in turco mi fa riflettere su cosa voglio ottenere, quali informazioni voglio trasmettere e meno su quali parole usare.

modifica
Ovviamente il turco ha parole per rappresentare il genere biologico. Ma non ha separazione in lui / lei - in turco "o".

O in spagnolo diresti "profesor / profesora" e in tedesco "Lehrer / Lehrerin". In turco devi usare parole extra per indicare il genere - simile all'italiano.
Nell'insegnante turco è öğretmen. Per indicare un'insegnante femminile diresti "kadın öğretmen" - insegnante donna. Ma nonostante il tedesco, dove - se non è femalizzato aggiungendo un "-in" - il default è maschio, öğretmen non ha sesso, in quanto non esiste.

Un'altra cosa che non è disponibile in turco sono articoli come "el / la", "il", "der / die / das" - poiché di solito sono solo informazioni che sono già disponibili dal contesto.
Ma ci sono parole per esprimere "questo", "este / esta", "diese / dieses / diese", ad esempio "bu".
Questa è un'informazione extra, poiché punta su un certo oggetto.

    
risposta data 27.09.2010 - 02:06
fonte
2

Penso che sia più probabile che il linguaggio di programmazione che stai usando modellerà il modo in cui stai pensando al problema, i nomi di variabili e classi, ecc, sono solo caratteri che rappresentano qualcosa. Sebbene sia molto probabile che i programmatori di culture diverse pensino alla programmazione in modo diverso a causa della loro lingua parlata e del modo in cui hanno imparato.

    
risposta data 26.09.2010 - 22:21
fonte
1

Secondo me, il linguaggio naturale non ha importanza (o almeno non dovrebbe importare) quando parli dei metodi o delle idee che stai cercando di realizzare con il tuo codice.

Come hai detto tu stesso, quando si lavora con il codice stesso e si scrive la documentazione sul codice inglese è il più appropriato. Ma siccome il codice stesso è solo un artigianato , la vera forza di un programmatore / informatico si trova al di sopra di ciò con idee, algoritmi e cose simili - e quindi, il linguaggio in cui queste cose sono descritte non è importante per il contenuto attuale.

    
risposta data 27.09.2010 - 00:48
fonte
0

Questo era un argomento a cui ero molto interessato da un po 'di tempo, quindi il mio ancora più grande (ora) dolore, che non riesco a trovare i segnalibri che avevo allora.

Ho salvato un link su cui mi sono imbattuto in un altro giorno, Fai diverse lingue uguali alle diverse realtà? che tangenti in qualche modo su di esso (leggi anche i commenti). Alcuni sono interessanti.

Comunque ...

    
risposta data 27.09.2010 - 01:20
fonte
-1

L'inglese è in realtà abbastanza efficiente e conciso. La traduzione nella maggior parte delle lingue darà un'idea più lunga per esprimere .

È anche generalmente accettato che ci siano non primitive lingue naturali . Tutte le lingue naturali in uso attivo hanno uno stesso livello di espressività. Questo non vuol dire che le idee non siano formate dal linguaggio, ma non penso che il linguaggio naturale abbia una grande influenza.

    
risposta data 26.09.2010 - 23:18
fonte

Leggi altre domande sui tag