Verbosity menjadi kecenderungan untuk menggunakan teks dalam jumlah yang luas, dan Terseness menggunakan teks yang sangat sedikit ...
Verbositas buruk karena:
- itu memperkenalkan lebih banyak peluang untuk kesalahan ketik
- itu membuatnya lebih sulit untuk membaca kode di layar atau kertas, dan / atau memasukkan pada kartu punch
- ini meningkatkan waktu debug
- ini membuat pemahaman kode untuk peningkatan / pemeliharaan lebih sulit
- ini dapat menyebabkan duplikasi kode yang tidak diinginkan
- itu agak meningkatkan kemungkinan kesalahan sintaksis
- itu mengurangi fleksibilitas pengkodean, dalam hal itu, sebagian besar bahasa verbose sangat terstruktur dan tidak memiliki banyak cara untuk mengatakan hal yang sama.
- ini meningkatkan waktu pengkodean dan kompilasi
- dapat mengambil lebih banyak ruang penyimpanan.
Tingkat verbositas tertentu sangat penting untuk kejelasan, namun ...
tingkat Verbositas minimal baik karena:
- lebih mudah bagi manusia untuk membaca dan melampirkan nilai semantik daripada kode simbolik murni
- Dalam penamaan variabel dan fungsi, membuatnya lebih mudah untuk debug, port, dan memelihara kode
- dalam operasi bahasa tingkat dasar dan kata kunci dari bahasa yang kompleks, itu mengarah ke lebih sedikit penugasan operasi / kata kunci yang salah.
Beberapa contoh yang indah dari perintah terlalu singkat bagi banyak orang termasuk standbys BASIC lama val(x$)
, str$(x)
dan chr$(x)
... kembali nomor dari representasi string nya, kembali string untuk nomor, dan kembali satu karakter yang memiliki nilai ascii x sebagai string.
Atau pointer C / C ++ dan oleh operator referensi &
dan *
versus byref
kata kunci BASIC . Dalam C / C ++, saya dapat memiliki variabel X, dan melewatkan pointer ke variabel itu, tetapi saya harus mengingat yang mana adalah pointer dan yang merupakan "gunakan pointer sebagai variabel yang ditunjuknya"; pada dasarnya, saya cukup meneruskan referensi dengan kata kunci byref di panggilan fungsi, yang lebih jelas, tetapi kurang fleksibel:
def fn Foo(x byref as float) foo= (x += x+1)
...
Foo(x)
Dalam kode ini, konten x bisa dimodifikasi karena bendera byref. Beberapa rasa memungkinkan byref di panggilan, yang lain dalam definisi, beberapa di keduanya.
Verbositas penting bagi programmer kasual untuk dapat menggunakan simbolisme dengan lebih mudah; BASIC atau python lebih mudah dibaca manusia dan lebih bertele-tele daripada C / C ++, dan karenanya jauh lebih berguna untuk programmer biasa; kesederhanaan C / C ++ membuatnya jauh lebih baik untuk programmer yang lebih berpengalaman, yang perlu melihat lebih banyak kode dan kode yang lebih kompleks pada satu layar penuh, tetapi harus mempelajari berbagai konvensi struktur simbolik. Pada akhirnya adalah APL, yang hampir sepenuhnya tidak dapat dibaca manusia.
Masalah yang terkait erat adalah kode kejelasan yang sering tidak jelas, dan kode yang terlalu bertele-tele (seperti dalam AppleScript) bisa sama tidak jelasnya. Keakraban dengan bahasa yang diberikan meningkatkan kejelasan kode singkat dalam bahasa tersebut - pemula yang mentah, menghadapi kode C ++ cenderung hanya dapat menguraikan rumus, dan bahkan banyak BASIC atau kode Python yang fungsional terlalu singkat untuk dipahami, tetapi applescript dapat menjadi bingung, umumnya, tanpa bantuan kamus bahasa. Yang paling jelas saya temui tanpa kebingungan yang disengaja adalah Inform 7 ...
Di masa lalu
Pertimbangan penting lainnya di masa lalu, tetapi yang tidak lagi penting bagi pembuat kode hobi, adalah ruang operasi dan penyimpanan. (Ini masih penting di kelas atas.) Ingatlah bahwa banyak bahasa diinterpretasikan, terutama rasa BASIC, dan banyak lagi yang dikompilasi run-time, ruang kode penting, terutama ketika disk hanya menampung 128KiB, dan kartu punch individu hanya 80B.
Ada beberapa solusi - tokenisasi sangat umum di BASIC; kata kunci bahasa individu dikurangi menjadi 1 atau 2 kata byte baik di atas 128 atau ruang karakter kontrol. Tokenisasi juga mengarah ke kompilasi bytecode (seperti pada Inform and the Z-Machine).
Kompilasi dan menghubungkan banyak file objek juga digunakan untuk mengatasi keterbatasan ruang. Bagian kode Pascal 100KiB hanya dapat dikompilasi menjadi 5KiB; dengan menautkan banyak file yang dikompilasi, seseorang dapat membangun aplikasi besar tanpa memiliki akses ke drive format besar (mengingat bahwa 10MiB luar biasa besar, dan membeli mobil baru yang mahal).
Namun, semakin banyak bahasa, semakin banyak kode yang dimasukkan ke dalam potongan disk dan ram, dan dengan demikian mengkompilasi potongan yang lebih besar sekaligus. Perlu diingat: "minicomputer" pada awal 1970-an mungkin hanya memiliki 64KiB ram (Honeywell 800 memiliki instalasi dasar 4 bank masing-masing 2048 kata masing-masing 8B). APL dan bahasa simbolik serupa mendekati 1B per instruksi ditambah operandnya, dibandingkan 3B-10B jauh lebih besar per instruksi plus operan. (Itu adalah mimpi buruk untuk mengetikkan kartu punch, terutama karena simbol pada dasarnya adalah font pada tipe-bola, dan banyak cardpunches tidak memiliki simbol pada tombol ...)
Juga, perlu diingat bahwa kartu tidak dapat dihapus ... dan banyak program dimasukkan pada kartu. Meskipun tidak mahal secara individual, kode Anda yang lebih terkompresi dapat berada di kartu, semakin sedikit yang Anda butuhkan, dan semakin besar programnya, atau semakin murah. Ini adalah bagian dari alasan BASIC memiliki rangkaian beberapa instruksi per baris dalam berbagai rasa - ini diperkenalkan untuk menghemat kartu punch. (Atau begitulah kata teks pemrograman Vax Basic saya.) Walaupun saya belum memprogram untuk pembaca kartu, saya sudah melakukan kartu meninju untuk Honeywell 800 dalam FORTRAN, BASIC, APL, dan beberapa bahasa simbolis lainnya.