วิธีการตรวจสอบว่าภาษาการเขียนโปรแกรมเป็น verbose หรือสั้น ๆ ?


17

การเขียนโปรแกรมภาษามักจะสามารถอธิบายเป็นverboseหรือสั้น

จากความเข้าใจของฉันภาษา verbose นั้นง่ายต่อการอ่านและเข้าใจในขณะที่ภาษาสั้น ๆ นั้นกระชับและเรียบร้อย แต่อ่านยากขึ้น ควรมีสิ่งอื่นที่ต้องพิจารณาในคำจำกัดความหรือไม่

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

เราจะตรวจสอบได้อย่างไรว่าภาษาการเขียนโปรแกรมนั้นมีความละเอียดมากกว่า / อีกคำหนึ่งมากกว่า?

ตัวอย่าง: Cb มากกว่า verbose มากกว่า Java หรือไม่

คำตอบ:


30

จากความเข้าใจของฉันภาษา verbose นั้นง่ายต่อการอ่านและเข้าใจในขณะที่ภาษาสั้น ๆ นั้นกระชับและเรียบร้อย แต่อ่านยากขึ้น

นี่เป็นเท็จ Verbose หมายถึงสัญลักษณ์มากมาย Terse หมายถึงสัญลักษณ์ที่น้อยลง

สิ่งนี้ไม่เกี่ยวข้องกับการอ่านหรือเข้าใจง่าย

ผู้ใช้บางคนพบว่า COBOL แบบอ่านง่ายสามารถอ่านได้คนอื่น ๆ สับสนเพราะมีสัญลักษณ์มากมายที่ต้องทำเพียงเล็กน้อย

บางคนพบว่า I / J / K และ APL อ่านง่ายเพราะโปรแกรมสั้นมาก บางคนพบว่าอ่านยากเพราะสัญลักษณ์ไม่ชัดเจน

Terse / Verbose ไม่มีความสัมพันธ์กับการอ่านง่ายหรือเข้าใจง่าย

ควรมีสิ่งอื่นที่ต้องพิจารณาในคำจำกัดความหรือไม่

ไม่คำจำกัดความของ terse และ verbose นั้นใช้ได้

สิ่งที่สำคัญคือคำจำกัดความเหล่านี้ไม่มีส่วนเกี่ยวข้องกับ "ง่ายต่อการอ่านและเข้าใจ"

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

จริงๆ?

เราจะตรวจสอบได้อย่างไรว่าภาษาการเขียนโปรแกรมนั้นมีความละเอียดมากกว่า / อีกคำหนึ่งมากกว่า?

นับโทเค็นเพื่อทำให้เสร็จ

Add 2 TO A GIVING B.

7 โทเค็น

b = a + 2;

6 โทเค็น

http://dictionary.reference.com/browse/verbose

http://dictionary.reference.com/browse/terse


5
+1 สำหรับ "Terse / Verbose ไม่มีความสัมพันธ์กับอ่านง่ายหรือเข้าใจง่าย" ฉันมักจะนึกถึงสัญกรณ์คณิตศาสตร์ซึ่งเมื่อทำอย่างถูกต้องมีความหนาแน่นสูงมาก แต่ก็ยังสามารถอ่านได้
Frank Shearar

5
@sunpech: นั่นคือความหมายของคำภาษาอังกฤษ "verbose" หมายถึงคำจำนวนมาก "terse" หมายถึงคำที่น้อยลง ไม่เกี่ยวข้องกับการอ่าน เพียงแค่นับจำนวนคำ สิ่งที่ฉันทำคือแทนที่ "คำว่า" ด้วย "โทเค็น" มันเป็นแค่ภาษาอังกฤษไม่มีอะไรพิเศษ
S.Lott

1
เราอาจพิจารณาความยาวของโทเค็น Common Lisp ดูเหมือนคำพูดเพราะคำหลักจำนวนมากมีความยาวและนั่นยังช่วยเพิ่มความละเอียดของภาษาโคบอล
David Thornley

1
@ Frank Shearar: ไม่จริงอย่างแน่นอนคิดเกี่ยวกับเวลาที่นักเรียนใช้ในการเรียนรู้คณิตศาสตร์ มันไม่สามารถอ่านได้เท่าที่จะทำได้ (คณิตศาสตร์ร้ายแรง) และแม้กระทั่งหลังจาก 6 ปีของการศึกษาระดับมัธยมศึกษาส่วนใหญ่ก็ยังไม่สามารถอ่านอย่างจริงจัง ไม่ว่าการอ่านไม่ได้เป็นสิ่งที่ไม่ดี! แต่การพูดว่าคณิตศาสตร์เป็นสัญลักษณ์ที่อ่านได้คือความคิดเห็นสั้น ๆ ที่พูดน้อยที่สุด
David Mulder

2
@DavidMulder: สัญกรณ์คณิตศาสตร์แตกต่างกันไปอย่างดุเดือดดังนั้นฉันสงสัยว่าเราทั้งคู่ทำบาปของอติพจน์ คุณพิจารณาสัญกรณ์สำหรับพีชคณิตทฤษฎีเซตแคลคูลัสเบื้องต้นอย่างโปร่งใสหรือไม่ ในทางกลับกันฉันคิดว่าสัญลักษณ์นามธรรมของเทนเซอร์เป็นเรื่องไร้สาระที่อ่านไม่ได้ (แต่แล้วฉันก็ไม่ได้ใช้เวลาในการเรียนรู้สัญกรณ์อย่างเหมาะสม)
Frank Shearar

6

เราจะตรวจสอบได้อย่างไรว่าภาษาการเขียนโปรแกรมนั้นมีความละเอียดมากกว่า / อีกคำหนึ่งมากกว่า?

โดยการเปรียบเทียบโครงสร้างภาษาที่เทียบเท่าหรือคล้ายกันทำให้งานที่เหมือนกันหรือเทียบเท่าสามารถแก้ไขได้ในภาษาหนึ่งเทียบกับอีกภาษาหนึ่ง

C # มากกว่า verbose มากกว่า Java หรือไม่

Java โดยทั่วไป verbose มากกว่า C # ความแตกต่างที่ชัดเจนที่สุด ได้แก่ ผู้ได้รับมอบหมายและการแสดงออกแลมบ์ดาโดยที่ Java ต้องการการกำหนดคลาสย่อยและอินสแตนซ์อินเทอร์เฟซที่แตกต่างเพื่อให้บรรลุสิ่งที่อาจทำได้โดยใช้นิพจน์แลมบ์ดาเดียวใน C #


1
ตอนนี้ Java รองรับแลมบ์ดานิพจน์ด้วย Java 8 ( docs.oracle.com/javase/tutorial/java/javaOO/ ...... )
shanraisshan

1
@shanraisshan: ใช่มันดีขึ้นเมื่อเวลาผ่านไป แต่ AFAIK Java ยังคง verbose มากขึ้นเล็กน้อย ตัวอย่างเช่นในเอกสารที่คุณเชื่อมโยงรหัสมีp.getAge()ข้อความมากมาย ใน C # ฉันจะสร้างคุณสมบัติAgeซึ่งนำ encapsulation ในระดับเดียวกับฟังก์ชันสมาชิกgetAgeแต่ทำให้สามารถเขียนp.Ageแทนได้
Doc Brown

1
ในขณะที่ Java ได้รับการปรับปรุง C # ก็ไม่ได้เป็นเป้าหมายแบบคงที่เช่นกัน ... คุณสมบัติใหม่เนื่องจากคำตอบเช่นฟังก์ชั่นเครื่องกำเนิดไฟฟ้าและ async / await ยังให้บริการเพื่อให้โค้ด C # สั้นกว่า Java เทียบเท่า
จูลส์

3

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


2

การวัดนี้เรียกว่าการแสดงออกของภาษา ตัวชี้วัดทั่วไปสำหรับสิ่งนี้คือการวัดบรรทัดมาตรฐานของรหัสหรือข้อความสั่งที่จำเป็นต่อการใช้งานฟังก์ชั่นเดียวกัน

ค่าบางอย่างจาก Wiki - จำนวนคำสั่ง / บรรทัดของรหัส C ที่ใช้ในการใช้งานฟังก์ชั่นเดียวของคำสั่ง / บรรทัดเดียวใน:

  • C - ข้อความสั่ง: 1 บรรทัด: 1
  • C ++ - ข้อความ: 2.5 บรรทัด: 1
  • Fortran - ข้อความสั่ง: 2.5 บรรทัด: 0.8
  • Java - ข้อความสั่ง: 2.5 บรรทัด: 1.5
  • Perl - ข้อความสั่ง: 6 บรรทัด: 6
  • Smalltalk - ข้อความ: 6 บรรทัด: 6.25
  • Python - ข้อความสั่ง: 6 บรรทัด: 6.5

ฉันคิดว่าความจริงที่ว่าการวัดอย่างใดอย่างหนึ่งแสดงให้เห็นว่า FORTRAN แสดงออกได้ดีกว่า C โดยมีระยะขอบ (!) ในขณะที่อีกฝั่งหนึ่งระบุตรงกันข้ามในขณะที่ระบุว่า C ++ มีความหมายเท่า ๆ กัน "
จูลส์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.