ใช่ ใช่ ใช่ มันสมเหตุสมผลที่จะทำเช่นนั้น และฉันทำมาหลายปีแล้ว
การเปิดเผยที่ 1: ภาษาอังกฤษไม่ใช่ภาษาแม่ของฉัน
การเปิดเผย 2: ความรู้เกี่ยวกับไวยากรณ์ภาษาอังกฤษของฉันดีกว่าของเจ้าของภาษาทั่วไปมาก
การเปิดเผยข้อมูล 3: เมื่อพูดถึงการสื่อสารกับมนุษย์ฉันเป็นไวยากรณ์ของนาซีที่โกรธแค้น
และตอนนี้การเปิดเผยเหล่านี้ไม่ได้อยู่ในที่ใดผมขอแจ้งว่าไวยากรณ์ภาษาอังกฤษไม่มีที่อยู่ในโค้ด คุณจะเห็นว่าทำไมมันถูกเรียกว่ารหัสไม่ร้อยแก้ว มันควรจะมีความคล้ายคลึงกับภาษาที่มนุษย์เข้าใจเพื่อจุดประสงค์ในการอ่าน แต่นอกเหนือจากนั้นสิ่งที่เราต้องการจากรหัสส่วนใหญ่ไม่ใช่คุณสมบัติของร้อยแก้ว; มันเป็นเรื่องอื่น ๆ คุณสมบัติทางเทคนิคมากขึ้นเช่นความแม่นยำ , ความไม่น่าสงสัยและรวบรัด นั่นเป็นเหตุผลที่ไวยากรณ์ซีif( x != y ) y++;
เป็นมากที่นิยมในการIF X IS NOT EQUAL TO Y THEN ADD 1 TO Y END-IF.
ไวยากรณ์ของภาษาโคบอล ความปรารถนาที่ถูกกล่าวหาของคอมไพเลอร์ที่เข้าใจภาษาธรรมชาตินั้นเป็นความเข้าใจผิดและไม่นำคำพูดของฉันไปใช้ดูสิ่งที่ ol'Edsger พูดถึง:Edsger Dijkstra ดับบลิว, ในความโง่เขลาของ "การเขียนโปรแกรมภาษาธรรมชาติที่"
ที่มีคุณภาพที่มีความสำคัญอีกประการหนึ่งคือการคำนวณของตัวระบุ ความจริงที่ว่าคุณสมบัติที่เรียกColor
สามารถอ่านได้ตลอดเวลาโดยวิธีการที่เรียกgetColor()
และเขียนผ่านวิธีการที่เรียกว่าsetColor()
มีความสำคัญยิ่ง ตัวระบุเหล่านี้คำนวณได้จากชื่อของทรัพย์สินดังนั้นคุณไม่จำเป็นต้องรู้ด้วยตนเอง หากโปรแกรมเมอร์ต้องเลือกวิธีการgetColor()
หนึ่งที่เรียกว่าบนมือข้างหนึ่ง แต่colorize()
ในทางกลับกันเพื่อนร่วมงานของพวกเขาจะพิจารณาการก่อวินาศกรรมนี้อย่างถูกต้อง นั่นคือความสามารถในการคำนวณตัวระบุที่สำคัญ
นอกจากนี้เครื่องมือการเขียนโปรแกรมสามารถเขียนได้ (และในความเป็นจริงมีการเขียนเช่นHibernate ) ซึ่งสามารถคำนวณชื่อเหล่านี้ได้ หากไม่มีการคำนวณชื่อตัวระบุคุณจะต้องใช้ไวยากรณ์เพิ่มเติม (เช่นใน Hibernate, คำอธิบายประกอบเพิ่มเติม) เพื่อระบุเครื่องมือแต่ละอย่างอย่างแม่นยำถึงวิธีการสร้างชื่อตัวระบุเดียวทุกชื่อหรือชื่อ ad hoc ที่คุณกำหนดให้กับแต่ละเอนทิตีอย่างแม่นยำ
ดังนั้นการคำนวณระบุเป็นสิ่งที่สำคัญในขณะที่ในเวลาเดียวกันไวยากรณ์ภาษาอังกฤษเป็นที่ไม่เกี่ยวข้อง (เพราะเราไม่ได้ทำการเขียนโปรแกรมภาษาธรรมชาติ) เพื่อที่จะสามารถคำนวณชื่อของคอลเลกชันของหน่วยงานโดยเสมอท้าย "S" กับชื่อ มีตัวอย่างหนึ่งเดียวที่ทำให้รู้สึกสมบูรณ์แบบโดยไม่คำนึงถึงความจริงที่ว่ามันละเมิดความไวต่อภาษาอังกฤษของคนส่วนใหญ่
และไม่ว่าเราจะชอบหรือไม่นี่คือแนวโน้มของอนาคต ภาษาพื้นเมืองของโปรแกรมเมอร์ส่วนใหญ่บนโลกนี้ไม่ใช่ภาษาอังกฤษอีกต่อไปและแนวโน้มคือการดำเนินต่อไปอย่างแข็งแกร่งในทิศทางนี้ (นอกจากนี้ฉันยังไม่เต็มใจที่จะเดิมพันเงินตามข้อเสนอแนะว่าภาษาอังกฤษเป็นภาษาพื้นเมืองของโปรแกรมเมอร์ส่วนใหญ่ที่ทำงานในสหรัฐอเมริกาในขณะนี้) คนเหล่านี้เป็นคนที่พยายามคำนวณชื่อ ของคอลเลกชันจากชื่อของอินสแตนซ์เดียวของ "บริษัท " จะเพิ่ม "s" ต่อท้ายและรูปแบบ "บริษัท " จะไม่แม้แต่จะคิด สำหรับจำนวนโปรแกรมเมอร์ที่เพิ่มขึ้นอย่างมากและไม่หยุดยั้งในโลกความรู้เกี่ยวกับลักษณะเฉพาะของภาษาอังกฤษนั้นไม่ได้เพิ่มคุณค่าใด ๆ ให้กับงานของพวกเขา แต่จะทำให้ยากขึ้นเล็กน้อย