La relatività linguistica è l'idea che la lingua modella il modo in cui pensiamo. La mia domanda è: quanto e in che misura si applica alla programmazione?
- Alcuni linguaggi nativi e naturali sono più adatti per pensare alla programmazione di altri? Ad esempio, si può affermare in modo più conciso quanto segue in una lingua non inglese?
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.
- Un programmatore di lingua cinese vede la programmazione in una lente radicalmente diversa da un programmatore di lingua inglese o le differenze svaniscono quando entrambi sono immersi nell'argomento?
- 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 è focalizzata sul "come i linguaggi di programmazione influenzano il modo in cui le persone pensano della programmazione", ma piuttosto "come i linguaggi naturali influenzano il modo in cui le persone pensano della programmazione".
Per toglierlo di mezzo, una lingua che ha chiaramente un vantaggio pragmatico è l' inglese . Penso che il vantaggio ha poco a che fare con i linguaggi di programmazione scelta delle parole chiave inglese come if
, for
, while
, e do
, proprio come i musicisti che non parlano italiano non sono scattato da parole come forte . Ha più a che fare con la comunicazione di idee con altri programmatori, poiché l'inglese è la lingua franca in questi giorni, almeno nel mondo della programmazione. Ad esempio, per porre una domanda in StackOverflow, devi davvero conoscere l'inglese e conoscerlo abbastanza bene se vuoi delle risposte valide. Anche se questo sembra un atteggiamento imperialista, in realtà è vero nella 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 di dati, algoritmi, ecc.? Ci sono lingue particolarmente concise quando si parla di logica e programmazione, permettendo ai madrelingua di quelle lingue di pensare più velocemente?
Implement quick sort
.