ภาษาธรรมชาติอะไรมีข้อดีเมื่อพูดถึงการเขียนโปรแกรม? [ปิด]


21

สัมพัทธภาพทางภาษาเป็นความคิดที่ว่าภาษาเป็นตัวกำหนดวิธีที่เราคิด คำถามของฉันคือสิ่งนี้นำไปใช้กับการเขียนโปรแกรมเท่าไหร่และเท่าไหร่?

  • ภาษาพื้นเมืองบางภาษาเป็นธรรมชาติเหมาะสำหรับการคิดเกี่ยวกับการเขียนโปรแกรมมากกว่าภาษาอื่นหรือไม่? ตัวอย่างเช่นต่อไปนี้สามารถระบุไว้อย่างกระชับมากขึ้นในภาษาที่ไม่ใช่ภาษาอังกฤษ? 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, whileและdoเช่นเดียวกับนักดนตรีที่ไม่ได้พูดภาษาอิตาลีจะไม่สะดุดด้วยคำพูดเช่นมือขวา มันมีอะไรเพิ่มเติมเกี่ยวกับการสื่อสารความคิดกับโปรแกรมเมอร์คนอื่น ๆ เนื่องจากภาษาอังกฤษเป็นภาษากลางในทุกวันนี้อย่างน้อยก็ในโลกของการเขียนโปรแกรม ตัวอย่างเช่นในการถามคำถามใน StackOverflow คุณจำเป็นต้องรู้ภาษาอังกฤษและรู้ว่ามันค่อนข้างดีถ้าคุณต้องการคำตอบที่ดี แม้ว่ามันจะดูเหมือนทัศนคติแบบจักรวรรดินิยม แต่มันเป็นเรื่องจริงในทางปฏิบัติ

นอกเหนือจากนั้นคุณสมบัติที่แท้จริงของภาษาส่งผลกระทบต่อวิธีการเขียนโปรแกรมที่พูดพวกเขาคิดเกี่ยวกับโครงสร้างข้อมูลอัลกอริทึมและอื่น ๆ ? ภาษาใดกระชับโดยเฉพาะเมื่อพูดถึงตรรกะและการเขียนโปรแกรมช่วยให้เจ้าของภาษาของภาษาเหล่านั้นคิดเร็วขึ้นหรือไม่


2
คุณสามารถระบุได้ว่าโปรแกรมเมอร์ผู้มีความสามารถเพียงใด Implement quick sort.
Josh K

คำตอบ:


3

Ah, สมมติฐาน Sapir-Whorf เทียบกับสงครามสมมติฐาน Chomsky Deep Structure ...

การเขียนโปรแกรมคือคณิตศาสตร์ คณิตศาสตร์เป็นปรัชญาประยุกต์ คำถามนั้นจะกลายเป็นซึ่งภาษาธรรมชาติสามารถอธิบายแนวคิดทางคณิตศาสตร์ได้อย่างแน่นอนโดยไม่ต้องขีดข่วนอย่างมีนัยสำคัญ ใส่อีกวิธีหนึ่งซึ่งภาษาใดที่สามารถจัดการกับอภิปรัชญาของอริสโตเติ้ลได้อย่างง่ายดาย?

ภาษา 'อำมหิต' ที่เป็นสุภาษิตอาจมีปัญหาเบื้องต้นในการแสดงภาพนามธรรมลำดับแรกที่จำเป็น However- แต่! - มนุษย์สามารถเรียนรู้คำศัพท์ใหม่และแนวคิดใหม่ กรีกโบราณไม่ได้เริ่มด้วยคำศัพท์ทางปรัชญา พวกเขาจะต้องประดิษฐ์และรังเพลิงแล้วไปยัง langauges อื่น ๆ

เมื่อพิจารณาว่าคณิตศาสตร์เป็นสากลฉันสมมุติว่าสมมติฐานของ Sapir-Whorf ที่แข็งแกร่งเป็นเท็จ


"คณิตศาสตร์ประยุกต์ใช้กับปรัชญา" อธิบายไหม?
Frank Shearar

1
@ Frank: ในอดีตนั่นเป็นกรณี เมื่อคุณดูคร่าวๆที่ 'รากฐานของคณิตศาสตร์' มันจะค่อนข้างชัดเจนว่ามันมีพื้นฐานทางปรัชญา เช่นข้อโต้แย้งของสัญชาตญาณทั้งหมด
พอลนาธาน

ฉันจะไม่โต้แย้งว่าคำถามทางคณิตศาสตร์บางคำถามนั้นเป็นปรัชญาอย่างที่คุณพูด ดูเหมือนว่าฉันจะกระโดดไกลจากที่กล่าวว่า "คณิตศาสตร์ประยุกต์ปรัชญา"
Frank Shearar

@ Frank: ดีถ้ารากฐานของคณิตศาสตร์เป็นปรัชญาแล้วมันก็ดูเหมือนว่าสิ่งที่ได้มาจากฐานรากก็เป็นปรัชญา ไม่มี? ใช่?
พอลนาธาน

1
@ Frank: แย่มากเหรอ? วิชาเอกศิลปศาสตร์บางคนกำลังแอบดูจากลาเต้ของฉันตอนนี้ฉันพนันได้เลย :)
พอลนาธาน

13

ฉันไม่รู้ว่าภาษาธรรมชาติใด ๆ ที่นำไปใช้ในการเขียนโปรแกรมที่ดีกว่า (ยกเว้นภาษาละติน?) ฉันรู้ว่าการรู้มากกว่าหนึ่งภาษานั้นค่อนข้างทรงพลัง

Dijkstra กล่าวในการสัมภาษณ์ครั้งสุดท้ายของเขา (พิมพ์ซ้ำใน CACM เล่ม 53 หมายเลข 8, หน้า 44):

มีความแตกต่างอย่างมากระหว่างผู้ที่มีภาษาเดียวกับคนที่อย่างน้อยก็รู้จักภาษาที่สองเป็นอย่างดีเพราะมันทำให้คุณมีความตระหนักมากขึ้นเกี่ยวกับโครงสร้างภาษาโดยทั่วไป คุณจะพบว่าสิ่งปลูกสร้างบางอย่างในภาษาเดียวที่คุณไม่สามารถแปลได้


6

ภาษาตุรกีเป็นภาษาที่น่าสนใจมากเนื่องจากมีกฎเกณฑ์ที่เข้มงวดโดยไม่มีข้อยกเว้น (ซึ่งฉันทราบ) เกือบจะซ้ำซ้อนอย่างสมบูรณ์แบบไม่มีเพศไวยากรณ์และคำสามารถแสดงได้มากเท่ากับประโยคในภาษาอังกฤษ

ในอดีต "Çekoslovakyalılaştıramadıklarımızdanmısınız?" ซึ่งหมายความว่า "คุณเป็นหนึ่งในคนเหล่านั้นที่เราไม่สามารถทำตัวคล้ายกับเชโกสโลวะเกียหรือไม่?" เป็นที่นิยมมากและยอมรับว่าเป็นคำที่ยาวที่สุดในตุรกี อย่างไรก็ตามคำถามต่อท้าย (mısınızในกรณีนี้) ถูกเขียนแยกกันดังนั้นแม้ว่ามันจะเป็นหนึ่งคำ แต่ดูเหมือนว่าจะเป็นสองคำเมื่อเขียนคำนั้น นอกจากนี้คำศัพท์ที่ยาวกว่านี้สามารถแปลได้ง่ายเช่น "Çekoslovakyalılaştırabildiklerimizden miydiniz?" ด้วยเหตุผลเหล่านี้คำดังกล่าวจึงสูญเสียความนิยม แต่ก็ยังเป็นภาษาทอร์นาโดที่ได้รับความนิยมในตุรกี

การพูดภาษาตุรกีทำให้ฉันคิดเกี่ยวกับสิ่งที่ฉันต้องการบรรลุสิ่งที่ฉันต้องการส่งข้อมูลและเกี่ยวกับคำที่ใช้

แก้ไข
แน่นอนตุรกีมีคำที่แสดงถึงเพศชีวภาพ แต่มันไม่ได้แยกออกเป็นเขา / เธอ - ในภาษาตุรกี "o"

หรือในภาษาสเปนคุณจะพูดว่า "profesor / profesora" และในภาษาเยอรมัน "Lehrer / Lehrerin" ในตุรกีคุณต้องใช้คำพิเศษเพื่อระบุเพศ - คล้ายกับภาษาอังกฤษ
ในครูชาวตุรกีคือöğretmen ในการชี้ให้เห็นถึงครูหญิงที่คุณจะพูดว่า "kadınöğretmen" - ครูผู้หญิง แต่ถึงแม้จะเป็นภาษาเยอรมันซึ่ง - ถ้าไม่ใช่ femalelized โดยการเพิ่ม "-in" - ค่าเริ่มต้นคือเพศชายöğretmenไม่มีเพศเพราะไม่มี

อีกสิ่งที่ไม่สามารถใช้ได้ในภาษาตุรกีก็คือบทความเช่น "el / la", "the", "der / die / das" - เนื่องจากเป็นเพียงข้อมูลที่มีอยู่ในบริบทแล้ว
แต่มีคำที่แสดงว่า "นี่", "este / esta", "diese / dieses / diese" ตัวอย่างเช่น "bu"
นี่เป็นข้อมูลพิเศษเนื่องจากมันชี้ไปที่วัตถุบางอย่าง


1
หากไม่มีเพศไวยากรณ์ภาษาตุรกีตัวเล็ก ๆ จะมาจากที่ไหน (โดยวิธีการที่เมื่อผมเห็นคำถาม แต่ก่อนที่จะมองที่นี่ผมคิดว่าของตุรกีในขณะที่ฉันไม่ได้พูดมันฉันเคยได้ยินเกี่ยวกับวิธีปกติมันเป็น..)
แรนดัลชัลส์

เห็นได้ชัดว่าไวยากรณ์ของ Smalltalk ใกล้เคียงกับภาษาตุรกีมากกว่าภาษาอังกฤษ: smalltalk.gnu.org/blog/zuluuuuuu/smalltalk-and-turkish
Frank Shearar

@ Frank Shearer: ถึงเวลาเรียน smalltalk!
VikingoS พูดว่า Reinstate Monica

@ Randall Schulz: U เข้าใจฉัน;) ฉันมักจะผสมเพศและคำศัพท์ ...
VikingoS พูดว่า Reinstate Monica

ฉันเคยได้ยินภาษาสันสกฤตมีความหมายว่าเป็นภาษาคอมพิวเตอร์มากที่สุดจากการศึกษาคุณสามารถ google ได้ ฉันไม่แน่ใจว่าจริงแค่ไหน แต่เนื่องจากภาษาสันสกฤตไม่เคยพูดภาษาพูดกระแสหลักและยังถูกนำมาใช้ในสถาบันการศึกษาเพื่อการศึกษาด้านเทคนิคในช่วงเวลาที่เป็นไปได้ ตุรกีฟังดูหวานมากที่หูของฉัน (แค่หู) แต่ถ้าทุกอย่างมันกับภาษาสันสกฤตพูดเหมือนเด็กเขียนโปรแกรมภาษาที่น่าเบื่อมาก สิ่งสุดท้ายที่ฉันอยากได้ยินเมื่อถามว่า: "มันเป็นเด็กชายหรือเด็กหญิง?" คือ "ใช่"
nawfal

2

ฉันคิดว่ามันเป็นไปได้มากกว่าที่ภาษาการเขียนโปรแกรมที่คุณใช้จะกำหนดวิธีที่คุณคิดเกี่ยวกับปัญหาตัวแปรและชื่อคลาส ฯลฯ เป็นเพียงตัวอักษรที่แสดงถึงบางสิ่งบางอย่าง แม้ว่าจะมีความเป็นไปได้สูงที่โปรแกรมเมอร์ในวัฒนธรรมที่แตกต่างจะคิดเกี่ยวกับการเขียนโปรแกรมที่แตกต่างกันเนื่องจากภาษาพูดของพวกเขาและวิธีการเรียนรู้


1

ในความคิดของฉันภาษาธรรมชาติไม่สำคัญ (หรืออย่างน้อยก็ไม่ควรสำคัญ) เมื่อพูดถึงวิธีการหรือความคิดที่คุณพยายามจะรู้ด้วยรหัสของคุณ

อย่างที่คุณพูดด้วยตัวคุณเองเมื่อทำงานกับโค้ดเองและการเขียนเอกสารเกี่ยวกับโค้ดภาษาอังกฤษนั้นเหมาะสมที่สุด แต่เนื่องจากรหัสตัวเองเป็นเพียงงานฝีมือความแข็งแกร่งที่แท้จริงของนักเขียนโปรแกรม / คอมพิวเตอร์จึงอยู่เหนือความคิดอัลกอริธึมและสิ่งต่าง ๆ - จากนั้นภาษาที่อธิบายสิ่งเหล่านี้ไม่สำคัญกับเนื้อหาจริงอย่างสมบูรณ์


0

นี่เป็นหัวข้อที่ฉันสนใจมากในบางครั้งดังนั้นความเสียใจที่ยิ่งใหญ่กว่าของฉัน (ตอนนี้) ที่ฉันไม่สามารถหาบุ๊คมาร์คที่ฉันได้กลับไปตอนนั้น

ฉันบันทึกลิงค์ที่ฉันสะดุดเมื่อวันก่อนไปภาษาอื่นที่แตกต่างกันมีความเป็นจริงที่แตกต่างกันหรือไม่? แทนเจนต์ที่ค่อนข้างเข้ากับมัน (อ่านความคิดเห็นด้วย) บางคนมีความน่าสนใจ

อย่างไรก็ตาม ...


-1

ภาษาอังกฤษนั้นค่อนข้างมีประสิทธิภาพและกระชับ การแปลเป็นภาษาส่วนใหญ่จะทำให้แนวคิดในการแสดงนานขึ้น

นอกจากนี้ยังได้รับการยอมรับโดยทั่วไปว่ามีไม่มีภาษาธรรมชาติดั้งเดิม ภาษาธรรมชาติทั้งหมดที่ใช้งานอยู่มีระดับความหมายเท่ากัน ไม่ได้หมายความว่าความคิดนั้นไม่ได้เกิดจากภาษา แต่ฉันไม่คิดว่าภาษาธรรมชาติจะมีอิทธิพลอย่างมาก


ฉันพบว่าภาษาจีนน่าจะเป็นภาษาที่สั้นที่สุดที่ฉันเคยพบทั้งในการเขียนและการพูด ความยาวการแปลมักจะเป็นเพียงครึ่งหนึ่งของภาษาอังกฤษ
Jon Purdy

4
แต่ความซับซ้อนของสัญลักษณ์นั้นสูงขึ้นใช่ไหม
Joeri Sebrechts

คุณพูดภาษาจีนเป็นภาษา APL ใช่ไหม? :)
nawfal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.