Jaki język naturalny ma przewagę, jeśli chodzi o programowanie? [Zamknięte]

21

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?

Joey Adams
źródło
2
Możesz to powiedzieć bardzo prosto każdemu kompetentnemu programistowi. Implement quick sort.
Josh K

Odpowiedzi:

3

Ach, hipoteza Sapira-Whorfa a wojna hipotez Chomsky'ego o głębokiej strukturze ...

Programowanie to matematyka. Matematyka jest filozofią stosowaną. Nasuwa się zatem pytanie, który język naturalny może dokładnie opisywać pojęcia matematyczne bez znaczącego zarysowania głowy. Innymi słowy, jakie języki łatwo poradzić sobie w arystotelesowskiej metafizyce?

Przysłowiowy „dziki” język może mieć początkowe trudności z wyrażeniem wymaganych abstrakcji pierwszego rzędu. Jednak- jednak! - ludzie mogą uczyć się nowych słów i nowych pojęć. Starożytna greka nie zaczynała się od terminów filozoficznych; musiały zostać wynalezione, a następnie przeniesione do innych języków.

Biorąc pod uwagę, że matematyka jest uniwersalna, postuluję, że silna hipoteza Sapira-Whorfa jest fałszywa.

Paul Nathan
źródło
„Matematyka jest filozofią stosowaną” Wyjaśnić?
Frank Shearar,
1
@Frank: Historycznie tak było. Kiedy pobieżnie spojrzysz na „podstawy matematyki”, staje się dość oczywiste, że ma ona filozoficzne podstawy. Np. Cały argument intuicyjny.
Paul Nathan
Nie będę twierdził, że niektóre pytania matematyczne są filozoficzne, jak pan mówi. Wydaje mi się, że jest to duży krok do powiedzenia, że ​​„matematyka jest filozofią stosowaną”.
Frank Shearar,
@Frank: cóż, jeśli podstawy matematyki są filozoficzne, wydaje się, że to, co wywodzi się z podstaw, jest również filozoficzne. Nie? Tak?
Paul Nathan
1
@Frank: Okropne, co? Założę się, że jakiś major sztuk liberalnych chichocze teraz z latte. :)
Paul Nathan
13

Nie wiem, czy jakiś konkretny język naturalny nadaje się do lepszego programowania (może poza łaciną?). Wiem, że znajomość więcej niż jednego języka jest dość potężna.

Dijkstra powiedział w jednym z ostatnich wywiadów (przedrukowanym w CACM Vol. 53 nr 8, s. 44):

Istnieje ogromna różnica między osobą, która jest jednojęzyczna, a kimś, kto przynajmniej dobrze zna drugi język, ponieważ sprawia, że ​​jesteś znacznie bardziej świadomy ogólnej struktury języka. Odkryjesz, że niektóre konstrukcje w jednym języku, których po prostu nie możesz przetłumaczyć.

Frank Shearar
źródło
6

Turecki jest bardzo interesującym językiem, ponieważ ma ścisłe reguły bez wyjątków (o których jestem świadomy), jest prawie całkowicie wolny od zbędnych, nie ma gramatyki płci, a na słowie może wyrazić tyle co zdanie po angielsku.

W przeszłości „Çekoslovakyalılaştıramadıklarımızdan mısınız?” co oznacza: „Czy jesteś jedną z tych osób, których nie moglibyśmy przypominać z Czechosłowacji?” był bardzo popularny i przyjęty jako najdłuższe słowo w języku tureckim. Jednak sufiksy pytań (w tym przypadku mısınız) są pisane osobno, więc chociaż jest to jedno słowo, wydaje się, że dwa słowa są pisane. Można również z łatwością utworzyć dłuższe wersje tego słowa, takie jak „Çekoslovakyalılaştırabildiklerimizden miydiniz?”. Z tych powodów słowo to straciło popularność, ale nadal jest popularnym twisterem w Turcji.

mówienie po turecku sprawia, że ​​myślę o tym, co chcę osiągnąć, o tym, jakie informacje chcę przekazać, a mniej o tym, jakich słów użyć.

edytuj
Oczywiście Turcy mają słowa reprezentujące płeć biologiczną. Ale nie ma podziału na on / ona / ono - po turecku „o”.

Lub po hiszpańsku powiedziałbyś „profesor / profesora”, a po niemiecku „Lehrer / Lehrerin”. W języku tureckim musisz użyć dodatkowych słów, aby wskazać płeć - podobnie jak angielski.
W języku tureckim nauczycielem jest öğretmen. Aby wskazać nauczycielkę, należy powiedzieć „kadın öğretmen” - nauczycielka. Ale pomimo niemieckiego, gdzie - jeśli nie kobiecość przez dodanie „-in” - domyślnie jest to mężczyzna, öğretmen nie ma płci, bo tak nie jest.

Inną rzeczą, która nie jest dostępna w języku tureckim, są artykuły takie jak „el / la”, „the”, „der / die / das” - ponieważ zwykle są to tylko informacje, które są już dostępne w kontekście.
Ale są słowa, które wyrażają „to”, „este / esta”, „diese / dieses / diese”, na przykład „bu”.
To jest dodatkowa informacja, ponieważ wskazuje na określony obiekt.

VikingoS mówi: Przywróć Monikę
źródło
1
Bez seksu gramatycznego skąd będą pochodzić małe Turki? (Nawiasem mówiąc, kiedy zobaczyłem pytanie, ale zanim tu spojrzałem, pomyślałem o tureckim. Chociaż nie mówię, słyszałem o jego regularności.)
Randall Schulz
Najwyraźniej składnia Smalltalk jest jeszcze bardziej zbliżona do tureckiego niż angielskiego: smalltalk.gnu.org/blog/zuluuuuuu/smalltalk-and-turkish
Frank Shearar
@Frank Shearer: czas na naukę smalltalk!
VikingoS mówi: Przywróć Monikę
@Randall Schulz: U mnie;) Zawsze
mieszam
Słyszałem, że według niektórych badań sanskryt ma być jak język komputerowy, możesz google google. Nie jestem pewien, jak to może być prawda, ale ponieważ sanskryt nigdy nie zaczął jako główny język mówiony, a także ponieważ był używany przez środowisko akademickie do badań technicznych czasu, jest prawdopodobne, że w przeciwieństwie do dzisiejszych języków mówionych. Turecki brzmi bardzo słodko dla moich uszu (tylko słuchowo), ale jeśli to wszystko i sanskryt mówią jak chłopiec języków programowania, byłoby to bardzo nudne. Ostatnią rzeczą, którą chcę usłyszeć, gdy zapytany jest: „czy to chłopiec czy dziewczynka?” jest tak".
nawfal
2

Myślę, że bardziej prawdopodobne jest, że używany język programowania będzie kształtował sposób myślenia o problemie, nazwy zmiennych i klas itp. To tylko znaki reprezentujące coś. Chociaż jest bardzo prawdopodobne, że programiści z różnych kultur myślą o programowaniu inaczej ze względu na swój język mówiony i sposób, w jaki się nauczyli.

MetaGuru
źródło
1

Moim zdaniem, język naturalny nie ma znaczenia (a przynajmniej nie powinien mieć znaczenia), kiedy mówimy o metodach lub pomysłach, które próbujesz zrealizować za pomocą swojego kodu.

Jak sam powiedziałeś, najbardziej odpowiednia jest praca z samym kodem i pisanie dokumentacji na temat kodu . Ale ponieważ sam kod jest tylko rzemiosłem , prawdziwa siła programisty / informatyka leży ponad tym, że ma pomysły, algorytmy i takie rzeczy - a wtedy język, w którym te rzeczy są opisane, jest zupełnie nieistotny dla rzeczywistej treści.

szturchać
źródło
0

To był temat, który mnie kiedyś bardzo interesował, dlatego jeszcze bardziej (teraz) żałuję, że nie mogę znaleźć zakładek, które miałem wtedy.

Zapisałem link, na który natknąłem się pewnego dnia, Czy różne języki mają takie same realia? to styka się nieco z nim (przeczytaj również komentarze). Niektóre są interesujące.

W każdym razie ...

Wieża
źródło
-1

Angielski jest dość wydajny i zwięzły. Tłumaczenie na większość języków sprawi, że pomysł będzie dłuższy .

Powszechnie przyjmuje się również, że nie ma prymitywnych języków naturalnych . Wszystkie aktywne języki naturalne mają taki sam poziom ekspresji. Nie oznacza to, że pomysły nie są tworzone przez język, ale nie sądzę, że język naturalny ma duży wpływ.

Joeri Sebrechts
źródło
Uważam, że chiński jest prawdopodobnie najbardziej zwięzłym językiem, jaki kiedykolwiek spotkałem, zarówno w mowie, jak i piśmie. Długość tłumaczenia wynosi zwykle nieco ponad połowę angielskiego.
Jon Purdy,
4
Ale czy złożoność symboli nie jest po prostu wyższa?
Joeri Sebrechts
Chiński to APL języków mówionych? :)
nawfal