ในบทความที่โด่งดังของ Richard Gabriel เรื่องThe Rise of Worse is Betterเขาได้เปรียบเทียบกับปรัชญาการออกแบบของ MIT / Stanford (Lisp) และ New Jersey (C / Unix) ตามแนวแกนของความเรียบง่ายความถูกต้องความสอดคล้องและความสมบูรณ์ เขายกตัวอย่างของ "ปัญหาผู้แพ้ PC" ( พูดถึงที่อื่นโดย Josh Haberman ) เพื่อยืนยันว่า Unix ให้ความสำคัญกับความเรียบง่ายของการใช้งานมากกว่าความเรียบง่ายของอินเตอร์เฟส
อีกตัวอย่างหนึ่งที่ฉันคิดขึ้นมาก็คือแนวทางที่แตกต่างกับตัวเลข เสียงกระเพื่อมสามารถแสดงตัวเลขขนาดใหญ่โดยพลการ (ขึ้นอยู่กับขนาดของหน่วยความจำ) ในขณะที่ C จำกัด ตัวเลขไว้ที่จำนวนบิตคงที่ (โดยทั่วไปคือ 32-64) ฉันคิดว่านี่แสดงให้เห็นถึงแกนความถูกต้อง
ตัวอย่างบางประการของความสอดคล้องและความสมบูรณ์มีอะไรบ้าง นี่คือคำอธิบายทั้งหมดของ Gabriel (ซึ่งเขายอมรับว่าเป็นการ์ตูนล้อเลียน):
วิธีการของ MIT / Stanford
- ความเรียบง่าย - การออกแบบจะต้องเรียบง่ายทั้งในส่วนของการติดตั้งและส่วนต่อประสาน มันเป็นสิ่งสำคัญสำหรับอินเทอร์เฟซที่จะง่ายกว่าการใช้งาน
- ความถูกต้อง - การออกแบบจะต้องถูกต้องในทุกด้านที่สังเกตได้ ไม่อนุญาตให้ใช้ความไม่ถูกต้อง
- ความสอดคล้อง - การออกแบบจะต้องไม่สอดคล้องกัน การออกแบบที่ได้รับอนุญาตให้มีความเรียบง่ายน้อยลงและสมบูรณ์น้อยลงเพื่อหลีกเลี่ยงความไม่สอดคล้อง ความสอดคล้องมีความสำคัญเท่ากับความถูกต้อง
- ครบถ้วน - การออกแบบจะต้องครอบคลุมสถานการณ์ที่สำคัญมากเท่าที่เป็นจริง ทุกกรณีที่คาดหวังอย่างสมเหตุสมผลจะต้องครอบคลุม ความเรียบง่ายไม่ได้รับอนุญาตให้ลดความสมบูรณ์จนเกินไป
วิธีการของนิวเจอร์ซีย์
- ความเรียบง่าย - การออกแบบจะต้องเรียบง่ายทั้งในส่วนของการติดตั้งและส่วนต่อประสาน มันเป็นสิ่งสำคัญสำหรับการใช้งานที่จะง่ายกว่าอินเทอร์เฟซ ความเรียบง่ายคือการพิจารณาที่สำคัญที่สุดในการออกแบบ
- ความถูกต้อง - การออกแบบจะต้องถูกต้องในทุกด้านที่สังเกตได้ มันจะดีกว่าเล็กน้อยที่จะง่ายกว่าที่ถูกต้อง
- ความสอดคล้อง - การออกแบบจะต้องไม่สอดคล้องกันมากเกินไป ความสอดคล้องสามารถเสียสละเพื่อความเรียบง่ายในบางกรณี แต่เป็นการดีกว่าที่จะวางส่วนเหล่านั้นของการออกแบบที่จัดการกับสถานการณ์ที่พบได้น้อยกว่าการแนะนำความซับซ้อนของการใช้งานหรือความไม่สอดคล้องกัน
- ครบถ้วน - การออกแบบจะต้องครอบคลุมสถานการณ์ที่สำคัญมากเท่าที่เป็นจริง ควรครอบคลุมทุกกรณีที่คาดหวัง ความสมบูรณ์สามารถเสียสละเพื่อคุณภาพอื่น ๆ ในความเป็นจริงความสมบูรณ์จะต้องเสียสละเมื่อใดก็ตามที่การดำเนินงานที่เรียบง่ายถูกทำลาย ความสม่ำเสมอสามารถเสียสละเพื่อให้บรรลุความสมบูรณ์ถ้าความเรียบง่ายจะถูกเก็บไว้; ไร้ค่าโดยเฉพาะอย่างยิ่งคือความสอดคล้องของอินเตอร์เฟซ
โปรดทราบว่าฉันไม่ได้ถามว่ากาเบรียลนั้นถูกต้องหรือไม่ (ซึ่งเป็นคำถามที่ไม่เหมาะสมสำหรับ StackExchange) แต่เป็นตัวอย่างของสิ่งที่เขาอาจอ้างถึง