Względność językowa to idea, że język kształtuje nasz sposób myślenia. Moje pytanie brzmi: w jakim stopniu i do jakiego stopnia dotyczy to programowania?
- Czy niektóre rodzime języki naturalne lepiej nadają się do myślenia o programowaniu niż inne? Na przykład, czy w języku innym niż angielski można przedstawić bardziej zwięźle?
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.
- Czy chińskojęzyczny programista widzi programowanie w radykalnie innym obiektywie niż anglojęzyczny programista, czy też różnice znikają, gdy oba są zanurzone w obiekcie?
- Czy niektóre języki programowania i domeny są łatwiejsze do myślenia w tym czy innym języku? Na przykład, czy łatwiej jest Grokować Ruby, jeśli jesteś Japończykiem, ponieważ twórca Ruby jest Japończykiem?
Zauważ, że to pytanie nie koncentruje się na „jak języki programowania wpływają na sposób, w jaki ludzie myślą o programowaniu”, ale raczej „jak języki naturalne wpływają na sposób, w jaki ludzie myślą o programowaniu”.
Aby to usunąć, jednym z języków, który ma wyraźną przewagę pragmatyczną, jest angielski . Myślę, że zaletą ma niewiele wspólnego z języków programowania wyborze angielskich słów kluczowych jak if
, for
, while
, i do
, podobnie jak muzycy, którzy nie mówią włoski nie potknął się o takich słów jak forte . Ma to więcej wspólnego z komunikacją pomysłów z innymi programistami, ponieważ angielski jest obecnie lingua franca, przynajmniej w świecie programowania. Na przykład, aby zadać pytanie w StackOverflow, naprawdę musisz znać angielski i znać go całkiem dobrze, jeśli chcesz dobrych odpowiedzi. Chociaż brzmi to jak postawa imperialistyczna, w rzeczywistości jest to prawda.
Poza tym, w jaki sposób nieodłączne właściwości języków wpływają na to, jak programiści, którzy je mówią, myślą o strukturach danych, algorytmach itp.? Czy jakiekolwiek języki są szczególnie zwięzłe, jeśli chodzi o mówienie o logice i programowaniu, pozwalając rodzimym użytkownikom tych języków myśleć szybciej?
Implement quick sort
.