ภาษาโปรแกรมตั้งฉากที่สุดคืออะไร? [ปิด]


46

ฉันพบว่าตัวเองรำคาญซ้ำ ๆ โดยต้องสอนน้องใหม่เกี่ยวกับกฎภาษาพิเศษ (เช่นการสลายตัวของอาเรย์ต่อตัวชี้) ที่ไม่มีอะไรเกี่ยวข้องกับการเขียนโปรแกรมในตัวเอง ดังนั้นฉันสงสัย:

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

ผู้ดำเนินรายการหมายเหตุ

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


1
ลองใช้ Unlambda - มีจำนวนบล็อกอาคารน้อยที่สุดเท่าที่จะเป็นไปได้ คำตอบที่จริงจังกว่านี้เล็กน้อย: Scheme (R5RS specifcally)
SK-logic

@ SK-ตรรกะ Unlambda I=SKKไม่ได้เพราะมุมฉาก สุดยอดในภาษามุมฉากเป็นภาษาคำสั่งเดียวเช่น Jot และ RSSB
ปีเตอร์เทย์เลอร์

11
@ Peter - ฉันไม่คิดว่าเขาจะมีความหมายน้อยที่สุด ภาษาเล็ก ๆ น้อย ๆ ก็จบลงด้วยคำจำกัดความพิเศษทั้งหมดในห้องสมุดดังนั้นนักเรียนต้องเรียนรู้ด้วยวิธีใดวิธีหนึ่ง วิธีที่ฉันอ่านคำถามนี้คือ "ภาษาใดที่ใช้หลักการของความประหลาดใจน้อยที่สุด"
Steve314

1
@Peter Taylor: คุณช่วยยกตัวอย่างที่ Timtowtdi ขัดแย้งกับ orthogonality ได้ไหม?
keppla

1
ฉันคิดว่า "orthogonality" เป็นคำที่ไม่ดีที่นี่ ดังที่ปีเตอร์และสตีฟได้ก่อตั้งขึ้นสิ่งที่คุณหมายถึงจริงๆคือ“ หลักการของความประหลาดใจน้อยที่สุด” หรือคุณภาพที่เกี่ยวข้องอย่างใกล้ชิด
Konrad Rudolph

คำตอบ:


53

เมื่อพูดถึง 'กฎน้อยมาก' ฉันจะโต้แย้ง Lisp หรือ Smalltalk จะเป็นผู้ชนะ ไวยากรณ์เปล่าสามารถเขียนได้ในหนึ่งแท็บเบียร์

แต่จากประสบการณ์ของฉันความเรียบง่ายของ Lisp และ Smalltalk ไม่ได้หมายความว่ามันง่ายต่อการเข้าใจและง่ายต่อการสอน ในขณะที่ไม่ใช่วิธี 'บริสุทธิ์' ในประสบการณ์ของฉันภาษาที่ต้องทำในรายการสิ่งที่ต้องทำคือวิธีที่ง่ายที่สุดในการเข้าใจสำหรับมือใหม่

ดังนั้นฉันขอแนะนำPython, Ruby หรือสิ่งที่เป็นนามธรรมที่คล้ายกัน : คุณพบ (เกือบ) ทุกแนวคิดพื้นฐานในพวกเขา (ตกลงไม่มีตัวชี้) แต่คุณไม่จำเป็นต้องเข้าใจตั้งแต่แรกเพื่อให้ทำงาน


33
งานวัดที่น่าประทับใจในหน่วยของแท็บเบียร์
psr

3
และอย่าลืม Perl มากขึ้น Perl ออกมีมากกว่าที่คนส่วนใหญ่คิดและชุมชนผู้ใช้เป็นอย่างมาก
Randal Schwartz

20
Perl อาจมีประสิทธิภาพมาก แต่ผู้ชายที่พบว่ามันเป็นเส้นทางที่ง่ายที่สุดในการเขียนโปรแกรมจะต้องมีอุโมงค์ของวัดอินเดียนาโจนส์เทียบเท่ากับทางเดินหลักจากห้องนอนของเขาไปจนถึงฝักบัว ...
Kheldar

9
ไวยากรณ์ของ Perl อาจพอดีกับแท็บเบียร์หากคุณดื่มเบียร์มากพอ
Dave Sherohman

4
@ เรื่องอื้อฉาวคำถามถามหาภาษามุมฉาก ปรัชญาของ Perl คือไม่เป็นมุมฉาก - "มีมากกว่าหนึ่งวิธีที่จะทำ"
Peter Taylor

41

ฉันว่า LISP หรือ Scheme หรือภาษาจากครอบครัวนั้นจะเป็นมุมฉากที่สุด ด้วยlet, lambda, define, if, cons, listและ( )คุณสามารถสอนอะไรมากสวยที่คุณต้องการในหลักสูตรบทนำ นอกจากนี้ยังไม่มีความจำเป็นในการดำเนินการคำสั่งล่วงหน้าหรือint main()สิ่งที่นักเรียนต้องการรวมไว้ แต่ไม่เห็นเหตุผล

ในหลักสูตร CS เบื้องต้นของฉันเราทำสิ่งที่ยอดเยี่ยมมากมายด้วย Scheme: ใช้เครื่องทัวริงใช้คอมพิวเตอร์ TC-201 เขียนไวยากรณ์บริบทฟรีใช้การเรียกซ้ำเขียนเรียงและผสานแทรกเพิ่มและเพิ่มจำนวน อย่างอื่น.

ฉันทำ Java ใน AP comp sci ก่อนวิทยาลัย แต่ Scheme ยอดเยี่ยมเพราะฉันสามารถตัดความยุ่งเหยิงและมุ่งเน้นแนวคิดที่แท้จริงในโปรแกรมของฉัน มันเป็นชั้นเรียนที่ยอดเยี่ยมและฉันขอแนะนำให้คุณลองทำเช่นนี้กับการสอนของคุณ


5
ตกลง. แร็กเก็ต (ชื่อเดิม PLT Scheme) เป็นชุดรูปแบบที่เป็นมิตรมากกว่าเล็กน้อยซึ่งโรงเรียนของเราใช้กับความสำเร็จที่ยิ่งใหญ่ในชั้นเรียนเบื้องต้น
NickAldwin

3
แล้ว Haskell ล่ะ ฉันไม่รู้จัก Haskell มากนัก แต่ฉันคาดหวังว่ามันจะเป็นภาษามุมฉาก
Giorgio

4
@Giorgio: ไวยากรณ์ของ Haskell นั้นค่อนข้างซับซ้อนกว่าเดิม ความจริงที่ว่าคุณต้องโต้ตอบกับ IO monads ตั้งแต่เริ่มต้นเพื่อรับโปรแกรมที่น่าสนใจใด ๆ นั้นเป็นสิ่งที่น่ารำคาญอย่างมากเมื่อเทียบกับวัตถุประสงค์ของ OP
Matthieu M.

4
สำหรับ "orthogonal" ฉันลงคะแนนให้ Scheme โดยเฉพาะการติดตั้งRacket สภาพแวดล้อมของแร็กเก็ตได้รับการออกแบบมาเพื่อทำให้เส้นทางของผู้เรียนง่ายกว่าสิ่งที่เหมือน Common Lisp ดิบ ภาษาสะอาดโดยมีกฏเล็กน้อย นานมาแล้วที่เอ็มไอทีตัดสินใจที่จะใช้โครงการการเรียนการสอนสำหรับนักเรียนนักศึกษาโดยใช้หนังสือSICP นักเรียนที่รอดชีวิตดูเหมือนจะออกมาค่อนข้างดีในตลาด อย่างไรก็ตามวิธีการนี้จะไม่สอนนักเรียนโดยตรงถึงวิธีการเขียนรหัสเกรดเชิงพาณิชย์ในภาษาที่ใช้บ่อยที่สุด
John Tobler

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

17

Pascal ได้รับการออกแบบมาโดยเฉพาะเพื่อสอนการเขียนโปรแกรม ง่ายต่อการเรียนรู้ (เป็นหนึ่งในภาษาโปรแกรมแรกที่ฉันเรียนรู้)


3
ฉันเรียนรู้การใช้โปรแกรม Pascal และฉันพบว่ามันเป็นภาษาที่สะอาดมาก ฟีเจอร์เดียวที่มีมุมฉากที่ฉันคิดได้คือ syntax ของโพรซีเดอร์ writeln () และ readln () ซึ่งมีจำนวนตัวแปรที่ขัดแย้งกันและอนุญาตให้ระบุการจัดรูปแบบ
Giorgio

ฉันพบว่ามันเป็นภาษาที่น่าผิดหวังมาก แต่ฉันอาจจะฉายภาพได้เนื่องจากฉันมีผู้สอนที่แย่มาก
greyfade

14

โลโก้: มันยังมีชีวิตอยู่และเตะ !

; draws a triangle
FORWARD 100
RIGHT 120
FORWARD 100
RIGHT 120
FORWARD 100
RIGHT 120

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

ถ้าคุณมีความเกลียดชังกับเต่าฉันคิดว่า Scheme เป็นหนทางที่จะไป


1
เชื่อหรือไม่ว่าโลโก้เป็นเสียงกระเพื่อมเช่นเดียวกับโครงการ ผู้ใช้ส่วนใหญ่ไม่ได้รับมากไปกว่ากราฟิกวนลูปและเต่าง่ายๆเพื่อเรียนรู้สิ่งนี้
Sean McSomething

@SeanMcSomething สิ่งที่น่าสนใจให้ความสำคัญกับผลข้างเคียง (ขยับเต่า) มากกว่าการประเมินการแสดงออก
benzado

10

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

มีหูดที่ไม่ใช่ทฤษฎีประเภทไม่กี่ในทั้งสองภาษา (eqtypes ใน SML, seq ใน Haskell) แต่พวกเขายังคงเอาชนะกางเกงของสิ่งอื่นออกมีในแง่ของการโต้ตอบที่แปลกประหลาดของคุณสมบัติภาษาที่ไม่เกี่ยวข้อง


7

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

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

ในภาษาที่ใช้งานได้จริงฉันเห็นด้วยกับภาษาที่พูดไปแล้ว: ภาษา Lisp หรือ Scheme สมัยใหม่, Haskell, Python หรือ Ruby โดยส่วนตัวฉันอาจใช้ Python แต่ตัวเลือกทั้งหมดนั้นมีข้อดีและข้อเสียร่วมกัน


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

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

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

@benzado Transfer เป็นสิ่งสำคัญไม่มีข้อโต้แย้งใด ๆ แต่มันเป็นระเบียบวินัยที่สมบูรณ์ที่ต้องได้รับการสอนและนักเรียนบางคนไม่มี นอกจากนี้ยังเป็นส่วนหนึ่งของ“ความเข้าใจที่ลึกซึ้ง” นอกจากนี้ยังเป็นความจริง แต่ยังนอกเหนือจากจุดนี้เป็นแล้วขั้นที่จะต้องมาถึง เมื่อนักเรียนได้เรียนรู้ "มัน" พวกเขาสามารถถ่ายโอนได้ แต่ก่อนอื่นพวกเขาต้องเรียนรู้และเพื่อทำสิ่งนั้นนักเรียนบางคนต้องการความเกี่ยวข้อง การถ่ายโอนมาในภายหลัง
Konrad Rudolph

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

6

Tcl มีกฎ 12 ข้อที่ควบคุมทั้งภาษา

[1] Commands. 
[2] Evaluation. 
[3] Words. 
[4] Double quotes. 
[5] Argument expansion. 
[6] Braces. 
[7] Command substitution. 
[8] Variable substitution.
[9] Backslash substitution.
[10] Comments. 
[11] Order of substitution. 
[12] Substitution and word boundaries.

มีกรณีพิเศษน้อยมากหรือคำหรือตัวอักษรที่สงวนไว้


4

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

เพื่อขยายความคิดเห็นของฉันใน Jot ทุกอย่างเป็นเฟิร์สคลาส (เพราะมันเป็นแคลคูลัสแลมบ์ดา) และสามารถเขียนได้ มีคำสั่งเดียวเท่านั้น มันเป็นภาษาการสอนที่น่ากลัวอย่างยิ่ง

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


ขอบคุณที่แนะนำฉันให้รู้จักกับคำว่า 'turing tarpit' ฉันต้องการคำศัพท์หนึ่งสำหรับความเรียบง่ายแบบนี้เสมอ
keppla

ฉันเห็นด้วยว่านักเรียนควรจะสามารถทดสอบได้ แต่ต้องมีความเข้าใจก่อนที่คุณจะ "ทำอะไรก็ได้" ดูเหมือนว่าจะเป็นการสอนทั้งหมด
benzado

@benzado ฉันยอมรับว่าจุดประสงค์ของการสอนคือการให้ความเข้าใจ แต่สำหรับคนส่วนใหญ่คุณต้องเริ่มต้นด้วยแนวคิดพื้นฐานให้พวกเขาได้มุ่งหน้าไปที่นั้นแล้วสอนพวกเขาเกี่ยวกับแนวความคิดระดับกลาง ดังนั้นคุณต้องการภาษาที่ใครซักคนเข้าใจบ้างสามารถเขียนโปรแกรมที่ทำอะไรได้บ้าง มีเหตุผลที่หลักสูตรการเขียนโปรแกรมส่วนใหญ่ไม่ได้เริ่มต้นจากการสอนเครื่องทัวริงหรือเครื่องลงทะเบียน Minsky
Peter Taylor

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

2

คุณสมบัติที่สำคัญที่สุดใน langage ที่คุณเรียนรู้คือ:

  • หลักการของความประหลาดใจอย่างน้อย (PASCAL)

  • ความสามารถในการอ่าน (Ada)

ในความคิดของฉันที่สองสำคัญกว่าครั้งแรกเนื่องจากการอ่านรหัสมีความสำคัญมากกว่าการเขียน

ตอนนี้อีกครั้งฉันเขียน C #, Java, Objective-C และ Javascript สำหรับการใช้ชีวิตซึ่งทั้งหมดมีนิสัยใจคอที่น่ากลัว: D

แต่ถ้าฉันต้องเลือกหนึ่งค่าเริ่มต้นฉันจะไปหา C # มันค่อนข้างง่ายต่อการอ่านมีความประหลาดใจที่ร้ายแรงอยู่เล็กน้อย (มักถูกซ่อนอยู่ในเครื่องมือ / กรอบงาน MS ... ) และโค้ดจำนวนมากที่ต้องอ่านและจัดทำเอกสารซึ่งทั้งสองอย่างนี้จำเป็นต่อการเรียนรู้อย่างดี


ถ้ามันเป็นเพียงการอ่านและไม่ใช่สำหรับการพิมพ์แบบคงที่และความปลอดภัยของ ada, Python และ Visual Basic (ใช่ฉันรู้ว่าไม่ใช่วิธีที่เด็ก ๆ ที่เจ๋ง ๆ ) มีไวยากรณ์ที่คล้ายกันฟรี imho
keppla

ใช่ฉันเห็นด้วยกับคุณ แต่ "ถ้ามันรวบรวมใน Ada มันควรจะทำงาน" ไม่ได้ป้องกันข้อผิดพลาดทางตรรกะเนื่องจากAriane Vสามารถบอกได้: D
Kheldar

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

@ Keldar ภาษาการเขียนโปรแกรมไม่สามารถป้องกันการจัดการ f *** เช่นเดียวกับที่รับผิดชอบต่อความล้มเหลวของ Ariane V คุณควรทำการบ้านกับสิ่งนี้
John R. Strohm

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