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?