เหตุใดจึงไม่มีภาษาการเขียนโปรแกรมภาษาธรรมชาติหลายภาษามากกว่านี้


9

มีภาษาการเขียนโปรแกรมใดบ้างที่สามารถใช้ได้และขยายได้ในภาษาธรรมชาติมากกว่าหนึ่งภาษา?

ตัวอย่างฉบับภาษาอังกฤษกับdo..whileวงรุ่นที่สเปนกับhacer..mientasวงรุ่นฝรั่งเศสด้วยและรุ่นดัตช์ด้วยfaire..pendantdoe..terwijl

'ภาษาการเขียนโปรแกรม' เพียงอย่างเดียวที่ฉันสามารถนึกถึงการดำเนินการเช่นนี้คือ Microsoft VBA

คำถามโบนัส: ทำไมมีภาษาการเขียนโปรแกรมน้อยมากที่มีหลายภาษา?


12
ภาษาอังกฤษคือ Lingua Franca ของภาษาโปรแกรมส่วนใหญ่ไม่ว่าจะดีขึ้นหรือแย่ลง
Robert Harvey

13
That's a reason why the languages are in English, not why there are no other languages, for example no "Java Indonesian" or "C++ Swahili"- เนื่องจากโปรแกรม Java อินโดนีเซียของคุณจะสามารถดูแลได้โดยโปรแกรมเมอร์ชาวอินโดนีเซียเท่านั้น
Robert Harvey

5
@DavidArno หัวข้อนี้ถูกตีจนตายในทำคนในรหัสประเทศที่ไม่ใช่ภาษาอังกฤษพูดภาษาอังกฤษ? และคำถามหลายคำถามที่เชื่อมโยงกับมัน
gnat

8
@MartijnBurger การแปลคำหลักคือ "ปัญหาเล็กน้อย" เมื่อเปรียบเทียบกับการแปลไลบรารีมาตรฐานซึ่งเป็น "ภารกิจมหาศาล" และนั่นก็เป็นสิ่งที่จะทำให้เกิดปัญหาการทำงานร่วมกัน Java ไม่ได้ขึ้นอยู่กับการสะกดของคำหลักที่รวบรวมครั้งเดียว; แต่ขึ้นอยู่กับการสะกดของชื่อแพ็คเกจคลาสและวิธีการ
Dan Getz

3
@DanGetz ยังคงมีปัญหาใน Java (และภาษาอื่น ๆ ที่น่าจะเป็นไปได้) ที่สงวนคำหลักไว้ ฉันไม่สามารถกำหนดเขตข้อมูลเช่นเดียวกับString for;ใน Java ซึ่งจะเป็นสัญลักษณ์ส่งออกในชั้นเรียน และนั่นจะทำให้ฉันไม่สามารถตั้งชื่อเขตข้อมูลdoeได้เนื่องจากอยู่ในเวอร์ชันภาษาดัตช์และpublic class Deer { String buck; String doe; }จะไม่มีdoeช่องที่สามารถเข้าถึงได้ คำหลักทั้งหมดเป็นคำสงวนใน Java สิ่งที่ไม่ดีจะเกิดขึ้นกับฟิลด์ที่ขัดแย้งกับคำหลักในภาษาอื่น ๆ

คำตอบ:


21

ชื่อฟังก์ชั่นในสูตร Excel มีการแปลเป็นภาษาท้องถิ่นซึ่งคุณสามารถใช้ถ้อยคำภาษาอังกฤษหรือเทียบเท่าในท้องถิ่น

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

คำหลักควรถูกมองว่าเป็น monikers ทึบแสงซึ่งเพิ่งเกิดขึ้นกับชนิดของความสอดคล้องกับความหมายของคำภาษาอังกฤษที่ใช้ในการสะกดพวกเขา มีโปรแกรมเมอร์ที่ไม่พูดภาษาอังกฤษอยู่มากมายที่ไม่รู้ว่าคำหลักครึ่งหนึ่งของพวกเขาหมายถึงอะไร


5
มันน่าแปลกใจที่คำตอบนี้เป็นที่เดียวที่มีคำว่า "Excel" ปรากฏขึ้นซึ่งถือว่าเป็นความล้มเหลวที่ยิ่งใหญ่ของสูตรที่แปลแล้ว อาร์กิวเมนต์ทั้งสองนั้นถูกต้องและแข็งแกร่งมาก: ตัวแบ่งสเปรดชีตและเวอร์ชันที่แปลเป็นส่วนย่อยของชุมชน สิ่งนี้ไม่รวมถึงความพยายามของผู้จำหน่ายในการแปลเอกสารและโปรแกรม (คอมไพเลอร์) ด้วยตนเอง

1
ทำไมการแปลคำหลักในสคริปต์จึงเป็นเรื่องยาก แน่นอนว่าพวกเขาควรจะค่อนข้างง่ายในการแยกวิเคราะห์เพราะพวกเขาได้รับการปฏิบัติเป็นพิเศษแล้ว
SuperBiasedMan

นอกจากนี้ Excel ไม่ใช่ระบบการเขียนโปรแกรมภาษาธรรมชาติจริง ๆเนื่องจากมันไม่ได้แปลโครงสร้างประโยคภาษาอังกฤษเป็นโปรแกรมปฏิบัติการ
Anderson Green

16

ในศตวรรษที่ผ่านมาโดยเฉพาะอย่างยิ่งในช่วงปี 1960-1970 พวกเขาเป็นภาษาการเขียนโปรแกรมที่ไม่ใช่ภาษาอังกฤษ ในฝรั่งเศสเรามีPAF & LSEพร้อมคำหลักที่ดูเป็นภาษาฝรั่งเศส WW2 เยอรมนีมีPlankalküllโดย K.Zuze ในสหภาพโซเวียตA.Ershovได้ออกแบบบางภาษา (เช่นRapira ) ด้วยคำหลักภาษารัสเซีย IIRC PAF (ออกแบบและดำเนินการโดยบิดาผู้ล่วงลับของฉันเมื่อฉันยังเป็นเด็ก - ช่วงต้นทศวรรษ 1960) สามารถขายด้วยคำหลักที่เป็นภาษาอังกฤษ และบางภาษาเช่นAPLไม่มีคำหลักเลย ภาษาอื่น ( PL / I ) ไม่ได้จองไว้คำหลัก และคุณสามารถกำหนดคำหลักใหม่ด้วยเทคนิค preprocessor (เช่นวันนี้ใน C #define si ifและ#define sinon elseสำหรับนักเรียนชาวฝรั่งเศส .... ; เทคนิคที่ใช้มาโครแบบเดียวกันนั้นมีความเป็นไปได้ใน PL / I หรือแม้แต่ Common Lisp)

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

นอกจากนี้ภาษาอังกฤษมีคำหลักสั้น ๆ (เปรียบเทียบsinonในภาษาฝรั่งเศสเป็นelseภาษาอังกฤษหรือmettreภาษาฝรั่งเศสเป็นputภาษาอังกฤษ) ดังนั้นจึงมีข้อได้เปรียบเล็กน้อยในการใช้คำหลักเป็นภาษาอังกฤษ ....

บางทีในศตวรรษจีนอาจกลายเป็นประเทศด้านไอทีที่โดดเด่นและภาษาการเขียนโปรแกรมภาษาจีนบางรายการอาจรุ่งเรือง เราไม่รู้ว่าจะเกิดอะไรขึ้น ....

PS ความโดดเด่นของภาษาอังกฤษนั้นไม่ได้เฉพาะเจาะจงกับไอที แม้ว่าสหราชอาณาจักรจะออกจากสหภาพยุโรป - สถานการณ์Brexit - แต่ภาษา EC อย่างเป็นทางการจะยังคงเป็นภาษาอังกฤษ (ซึ่งจะไม่ใช่ภาษาของประเทศสมาชิกสหภาพยุโรป) และโครงการ ICT ของH2020เขียนเป็นภาษาอังกฤษ


อย่าลืมPlankalküll !
Erik Eidt

ขอบคุณ เพื่อไม่ให้สับสนกับการ
คำนวณ

ฉันไม่รู้ แต่ฉันก็สนับสนุนมันดังนั้นมันจึงเป็นกลาง (อนิจจาเท่านั้น) ฉันพบว่ามันเป็นคำตอบที่ดี
Mawg พูดว่าคืนสถานะโมนิก้า

5
ภาษาอังกฤษเป็นหนึ่งในสองภาษาทางการของสาธารณรัฐไอร์แลนด์ซึ่งเป็นสมาชิกสหภาพยุโรป
Matthew Flynn

9

มีเหตุผลที่ดีมากที่ภาษาโปรแกรมมืออาชีพไม่ได้แปล

1) ความพยายาม: มันเป็นงานที่ยิ่งใหญ่ในการแปลภาษาที่ทันสมัย ใช้ Java - มันจะเป็นงานเล็ก ๆ ในการแปลคำหลัก 50 คำหรือมากกว่านั้น แต่คุณจะต้องแปลไลบรารี่มาตรฐานเต็มรูปแบบซึ่งประกอบด้วยคลาสและวิธีการนับพันและเอกสารที่เกี่ยวข้อง

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

3) โปรแกรมเมอร์จำเป็นต้องรู้ภาษาอังกฤษอยู่ดี มาตรฐานจำนวนมากเช่น HTTP, CSS, HTML ใช้ภาษาอังกฤษสำหรับตัวระบุ สิ่งเหล่านี้ไม่สามารถแปลได้เนื่องจากคำเหล่านั้นถูกนำไปอบเข้าสู่มาตรฐาน

เนื่องจากโปรแกรมเมอร์จำเป็นต้องรู้ภาษาอังกฤษอยู่แล้วมันจะมีข้อเสียเพียงอย่างเดียวและไม่มีประโยชน์ในการสร้างภาษาการเขียนโปรแกรมแปล

ที่กล่าวว่าสำหรับภาษาที่มีไว้สำหรับโปรแกรมเมอร์ทั่วไปซึ่งต่างจากโปรแกรมเมอร์มืออาชีพมันอาจสมเหตุสมผลในการสร้างเวอร์ชันที่แปลแล้ว นี่เป็นกรณีสำหรับ VBA และฉันเชื่อว่า AppleScript มีอยู่ในเวอร์ชันที่แปลแล้วด้วย


5

ฉันไม่รู้ภาษาอื่น ๆ ยกเว้นรุ่นเก่าบางอย่างที่เป็นความลับพื้นฐานของ BASIC ซึ่งมีแนวโน้มที่จะมีความโปรดปรานแปลก ๆ มากมายดังนั้นฉันจะตอบคำถามโบนัส: ทำไมมีภาษาโปรแกรมแปลน้อยมาก:

ฉันเชื่อว่ามันเป็นเพียงความซับซ้อนที่เพิ่มขึ้นซึ่งผู้รวบรวมและผู้วางระบบห้องสมุดไม่เห็นความต้องการที่ยิ่งใหญ่สำหรับ นี่คือเหตุผลบางอย่างที่มีส่วนในความคิดของฉัน

  • คุณจะ จำกัด ผู้ชมรหัสของคุณหากคุณไม่ใช้ภาษา "สากล" แน่นอนว่าไม่ใช่ทุกคนที่รู้ภาษาอังกฤษ แต่ก็เป็นจริงสำหรับทุกภาษา
  • คำหลักคำเดียวไม่จำเป็นต้องเป็นคำเดียวในทุกภาษาที่ซับซ้อนในการแยกวิเคราะห์ ฉันไม่เคยตรวจสอบ แต่ฉันสามารถจินตนาการได้ว่ามีปลอกราคาพิเศษจำนวนมากพอที่จะจัดการกับคำศัพท์หลายคำแบบ "long long" ของ c ++ ได้
  • หากคุณเริ่มแปลคำหลักคุณจะพิจารณาสถานที่และตัวเลขที่จัดรูปแบบด้วยหรือไม่ เครื่องหมายจุลภาคเมื่อเทียบกับจุดเป็นตัวคั่นทศนิยมตัวอย่างเช่น หรือต้องการให้คำนามภาษาเยอรมันเป็นตัวพิมพ์ใหญ่?
  • ข้อความส่วนใหญ่ในโปรแกรมที่กำหนดคือตัวแปรวิธีการและชื่อคลาสไม่ต้องพูดถึงความคิดเห็น แม้ว่าจะมีห้องสมุดที่เขียนในภาษาอื่น ๆ อย่างแน่นอน แต่การบำรุงรักษาการแปลซอร์สโค้ดของไลบรารีทั้งหมดเพื่อให้บริการแก่ผู้ใช้ทุกคนนั้นจะเป็นภาระที่ยิ่งใหญ่สำหรับนักพัฒนาส่วนใหญ่ไม่ต้องพูดถึงความซับซ้อนเพิ่มเติม
  • คอมไพเลอร์จะต้องเข้าใจภาษาที่นำไปใช้ทั้งหมด บางทีแม้แต่หลายภาษาในไฟล์เดียวกัน เพลงเล็ก ๆ สำหรับคอมพิวเตอร์แน่นอน แต่งานพิเศษยังคงอยู่ บางทีคุณอาจต้องจัดการกับคำหลักเดียวกันซึ่งหมายถึงสิ่งต่าง ๆ ในภาษาที่แตกต่างกันหรือคำศัพท์ที่คลุมเครือเกินกว่าจะอ่านได้ดี
  • (ตกลงความเห็น) แน่นอนว่าคนส่วนใหญ่ที่ต้องจัดการกับเอกสาร MS Office ที่โปรแกรมและจัดรูปแบบในภาษาต่าง ๆ จะไม่สนใจความคิดที่ไม่คุ้มค่ากับปัญหา

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


3

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

ลองนึกภาพภาษาที่คุณมีของคุณif, while... do, switchและคำหลักอื่น ๆ ทั้งหมดที่กำหนดไว้ (อย่างใด) ในมาตรฐานคุณสามารถจัดส่งระบบห้องสมุดในรูปแบบ "tokenized" ด้วยรหัสท้องถิ่นเขียนในรูปแบบที่ไม่ใช่ tokenized จากนั้นคอมไพเลอร์ที่แท้จริงทำงานบนเลเยอร์โทเค็นและอาจเป็นสิ่งที่ดี

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


2

คำตอบทั้งหมดที่ได้รับคือคำตอบที่ดี แต่ฉันจะให้สองเซ็นต์ของฉันต่อไป

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

ต่อมาเมื่อซอฟต์แวร์กลายเป็นอุตสาหกรรมมันก็กลายเป็นความพยายามระดับโลก ไม่ใช่ความลับที่มีโปรแกรมเมอร์น้อยกว่าที่ต้องการดังนั้น บริษัท ซอฟต์แวร์และ บริษัท ที่มีการกำหนดอุตสาหกรรมเป็นพิเศษเช่น IBM จึงเริ่มจ้างโปรแกรมเมอร์จากทั่วทุกมุมโลก: รัสเซียปากีสถานอินเดียฝรั่งเศสเยอรมนีอิสราเอล ฯลฯ ส่วนใหญ่จะเขียนโปรแกรมในภาษาที่ประสบความสำเร็จทั่วโลกที่มีอยู่แล้วซึ่งเป็นภาษาอังกฤษอยู่แล้วและยังสร้างภาษาใหม่และสำหรับแหล่งที่มาที่แตกต่างกันของโปรแกรมเมอร์ภาษาทั่วไปที่มีอยู่แล้วนั้นดีกว่าภาษาอื่น ๆ

เมื่อเร็ว ๆ นี้การเคลื่อนที่แบบโอเพนซอร์ซและซอฟต์แวร์เสรีทำให้การสร้างซอฟต์แวร์เป็นความพยายามระดับโลกที่มากขึ้นกว่า แต่ก่อน บางโครงการซอฟต์แวร์แบบเปิดรวมถึงแพลตฟอร์มการเขียนโปรแกรมภาษาและกรอบงานเป็นโครงการขนาดใหญ่ที่มีผู้ทำงานร่วมกันหลายร้อยคน

บุคคลจากอิสราเอลใช้ภาษาอะไรในการร่วมมือกับบุคคลจากศรีลังกา ส่วนใหญ่พวกเขาอาจไม่พูดหรืออ่านภาษาท้องถิ่นของกันและกัน ดังนั้นภาษาอังกฤษมาช่วย

ชอบหรือไม่, ภาษาอังกฤษเป็นภาษาของความพยายามของโลก ไม่ใช่เพราะอเมริกากำลังผลักดันมัน แต่เป็นเพราะโลกกำลังดึงมัน

การถอดความJay Walker :

ภาษาพื้นเมืองของคุณเป็นภาษาที่คุณใช้มากที่สุดทุกวันและจะเป็นศูนย์กลางของหัวใจและสมองของคุณ แต่ด้วยภาษาอังกฤษคุณเป็นส่วนหนึ่งของการสนทนาที่กว้างขึ้น

ดูวิดีโอ "ภาษาอังกฤษ Mania"

ด้านล่างบรรทัด:

ภาษาการเขียนโปรแกรมที่ใช้ภาษาต่าง ๆ จะยังคงมีอยู่และจะถูกประดิษฐ์ต่อไป (เช่น Scratch-token-based Scratch) แต่อย่างน้อยในอนาคตอันใกล้นี้จะมีน้อย


-2

ภาษาอังกฤษเป็นภาษาที่ "เน้นเสียงฟรี" ด้วยเช่นกันคุณไม่มีตัวอักษรแปลก ๆ ที่ต้องการการเข้ารหัสที่แตกต่างจาก ASCII ฉันเป็นคนอิตาลีและบางครั้งฉันพบข้อผิดพลาดในการเข้ารหัสถ้าฉันใช้เค้าโครงแป้นพิมพ์ภาษาอิตาลีหรืออักขระเน้นเสียงเช่นà ยิ่งไปกว่านั้น "else" ถูกแปลเป็น "altrimenti", "in" คือ "dentro" ... ที่น่าผิดหวัง


9
นี่คือการใช้เหตุผลแบบวงกลม - ASCII กลายเป็นชุดอักขระมาตรฐานเนื่องจากภาษาอังกฤษเป็นภาษากลางของการคำนวณ
JacquesB
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.