BerandaComputers and TechnologyFitur Bahasa vs. Kegunaan dan Mudah Dipahami

Fitur Bahasa vs. Kegunaan dan Mudah Dipahami

Sebagian besar bahasa pemrograman modern memiliki banyak fitur, dan beberapa bahasa terpopuler menambahkan fitur dengan kecepatan tinggi dengan harapan hal itu akan membuat bahasa menjadi lebih baik. Tetapi, bagaimana jumlah fitur bahasa pemrograman terkait dengan kegunaan dan pemahamannya?

Kegunaan

Mari pertimbangkan bahasa pemrograman modern dan populer, seperti JavaScript, Java, C, C ++ atau C #. Semua ini mendukung fitur menambahkan nilai ke dalam variabel secara langsung, tugas singkat: x +=5; Kita dapat menghapus fitur ini. Kita harus menulis ini sebagai gantinya: x=x + 5; Ini pasti kurang nyaman, tetapi tidak mengurangi kegunaan bahasa dengan banyak.

Bayangkan sebagai gantinya kita menghapus fungsi. Itu pasti akan mengganggu dan sebagian besar sekarang akan kesulitan menulis kode dengan bahasa tersebut. Ini akan banyak mengurangi kegunaan bahasa.

Bayangkan kita menghapus variabel floating point. Ini akan menjadi masalah yang lebih kecil daripada fungsi, tetapi masalah yang cukup besar dibandingkan dengan tugas singkat yang dibahas di atas.

Kita dapat menetapkan nilai kegunaan untuk setiap fitur dalam bahasa pemrograman. Fungsi akan mendapatkan 100 (misalnya) sedangkan tugas singkat yang dibahas di atas akan mendapatkan 0,1. Jika kita memesan fitur berdasarkan kegunaannya, kita akan mendapatkan daftar angka yang menurun. Bayangkan membuat bahasa pemrograman dari N fitur yang paling berguna, dan mari kita pertimbangkan untuk menyusun bahasa dengan fitur nol. Kegunaan bahasa-bahasa ini kemudian dapat diplot, dan akan terlihat seperti ini:

Language Features vs. Usefulness

Perhatikan bahwa jumlah fitur pada sumbu x tidak dapat dianggap secara harfiah. Sumbu y adalah derajat kegunaan, dari 0 menjadi tidak berguna dan 1 sangat berguna.

Perhatikan beberapa hal menarik tentang grafik ini. Fitur pertama meningkatkan banyak kegunaan bahasa pemrograman, kemudian kurva mulai mendatar. Ini kemudian menjadi hampir sepenuhnya datar. Di sisi yang lebih datar, meskipun fitur berikutnya berguna, tetapi tidak berkontribusi banyak. Contoh dari Java adalah penugasan singkat, penginisialisasi kelas statis, berlabel putus dan lanjutkan, hubung singkat “dan” dan “atau”, penginisialisasi kurung ganda, literal bilangan oktal, putus, lanjutkan, akhirnya, kelas dalam. Contoh dari C adalah operator koma, tugas singkatan, literal bilangan oktal, blok pernyataan tunggal, trigraf, goto, operator terner, tugas sebagai ekspresi.

Ini tidak berarti bahwa menambahkan fitur baru ke bahasa pemrograman membuatnya sedikit lebih berguna. Fitur baru ini mungkin sangat berguna sehingga memengaruhi awal plot.

Perhatikan juga bahwa tidak ada fitur tambahan yang membuat bahasa pemrograman kurang berguna. Alasan dasarnya adalah seseorang dapat memilih untuk tidak menggunakan fitur tersebut. (Beberapa bahasa mengandung fitur yang membatasi penggunaan fitur lain, misalnya pemeriksa pinjaman Rust, tetapi tidak biasa untuk memperkenalkan fitur tersebut sebagai wajib nanti dalam evolusi bahasa karena akan merusak kompatibilitas ke belakang.)

Suatu bahasa akan tetap sangat berguna meskipun banyak fiturnya telah dihapus. Sebenarnya, jika Anda mengambil modul perangkat lunak yang diimplementasikan di, katakanlah, Java, dan memutuskan untuk menghapus penggunaan fitur tunggal yang tidak terlalu penting, katakanlah “penginisialisasi kurung ganda”, Anda akan melihat hal yang menarik: Ini tidak akan sangat memengaruhi kode, tetapi membaca dan memahami kode memerlukan lebih sedikit pengetahuan tentang fitur bahasa. Dengan demikian, mengurangi jumlah fitur yang digunakan secara tidak perlu berarti meningkatkan kode: Sekarang dibutuhkan lebih sedikit orang yang bekerja dengannya tanpa melepaskan sesuatu yang penting.

Dapat Dipahami

Jika menambahkan lebih banyak fitur ke suatu bahasa membuatnya lebih berguna, mengapa tidak hanya mengemasnya dengan semua fitur yang dapat kita bayangkan? Ada pengorbanan! Semakin banyak fitur yang ditambahkan, dan seiring pengembang mulai menggunakan fitur-fitur tersebut, pemahaman kode akan menurun dan kode tersebut akhirnya menjadi tidak dapat dibaca, terkadang dikenal sebagai kode hanya-tulis.

Bahasa pemrograman dengan fitur yang sangat sedikit juga tidak dapat dimengerti. Contoh klasik adalah kode assembly, tetapi masih sangat mudah digunakan dibandingkan dengan menggunakan mesin Turing secara native, yang mungkin merupakan salah satu model pemrograman yang dikenal dengan fitur paling sedikit.

Jadi, menambahkan fitur pertama yang sangat berguna ke bahasa pemrograman membuat kode lebih mudah dipahami dengan cepat. Pada titik tertentu, pemahaman mulai menurun.

Seringkali, proyek perangkat lunak membatasi fitur mana yang dapat digunakan. Ini mungkin diterapkan melalui tinjauan kode, analisis kode statis, atau pedoman tentang cara menulis kode. Selain itu, sangat sedikit yang merekomendasikan penggunaan sebagian besar fitur bahasa pemrograman sepanjang waktu.

Sekali lagi, bayangkan membuat bahasa pemrograman dengan N fitur paling berguna, sekali lagi mempertimbangkan perakitan bahasa dengan fitur nol. Pemahaman kode dalam bahasa pemrograman ini dapat diplot:

Language Features vs. Understandability

Sekali lagi, harap diperhatikan bahwa jumlah fitur pada sumbu x tidak dapat dipahami secara harfiah. Juga, sumbu y adalah tingkat pemahaman, dari 0 sangat sulit dan 1 sangat mudah. ​​

Perlu dicatat bahwa menulis kode yang tidak mungkin dipahami cukup mudah dalam bahasa pemrograman apa pun. Grafik ini menunjukkan kesulitan memahami kode yang ditulis dengan baik menggunakan semua fitur yang tersedia.

Alasan lain mengapa grafik terlihat seperti ini adalah kombinatorik. Sebuah fitur baru berpotensi berinteraksi dengan semua fitur lain yang ada. Mengetahui, menangani, dan memahami semua interaksi ini menjadi semakin sulit.

Sekarang mari kita letakkan grafik ini di atas grafik lainnya. Pada grafik berikut, kurva merah adalah kegunaan dan kurva biru adalah kemudahan pemahaman.

Language Features vs. Usefulness and Understandability

Garis abu-abu bergaris digambar di mana kurva pemahaman berada pada posisi tertinggi. Hal yang menarik tentang bahasa pemrograman semacam itu adalah bahwa ia memiliki sedikit fitur, sehingga mudah dipelajari tetapi kurang bermanfaat. Bahasa seperti itu mungkin tidak akan terlalu populer karena tidak memiliki banyak fitur yang berguna. Para ahli pemrograman akan menertawakannya saat mereka membuat kalimat yang sulit dipahami dengan bahasa pemrograman yang kaya fitur. Tetapi, sangat sedikit yang mempertimbangkan biaya tambahan untuk menulis kode yang sulit dipahami.

Di mana pada grafik ini kita dapat menempatkan bahasa modern?

C adalah bahasa yang cukup miskin fitur, mungkin ada di kiri tengah grafik.

Perl 5 terkenal karena dianggap sebagai bahasa hanya-tulis, jelas berada di paling kanan jika tidak di luar grafik.

C ++ dan Java menambahkan fitur dengan kecepatan tinggi, menggesernya ke kanan dengan cepat.

Bahasa yang berada tepat di garis garis abu-abu di progsbase, bahasa pemrograman yang dirancang hanya untuk memiliki fitur yang paling berguna.

Jika kita mengurutkan fitur dari banyak bahasa pemrograman berdasarkan kegunaan, kita akan melihat bahwa sebagian besar bahasa memiliki fitur yang paling berguna, misalnya fungsi, floating point, boolean, loop, ifs, array, struktur data. Namun, fitur yang kurang berguna sering kali membuat bahasa pemrograman menjadi istimewa. Memang, jika mereka dianggap sangat berguna, bahasa lain harus mengadopsinya atau kehilangan sebagian besar basis penggunanya. Inilah sebabnya mengapa bahasa pemrograman progsbase dapat diterjemahkan antarbahasa, karena mengandung fitur paling berguna yang oleh karena itu umum untuk sebagian besar bahasa.

Bahasa pemrograman dengan jumlah fitur yang sedikit cenderung bertahan lebih lama. Tiga bahasa penting: COBOL, assembly dan C. COBOL adalah bahasa yang cukup sederhana yang sering diejek oleh para pengembang. Namun, itu terus bertahan dekade demi dekade. Ada dua alasan bagus untuk ini: 1) bahasa pemrograman dengan sedikit fitur lebih mudah berkembang, baik secara perlahan. Dengan banyak fitur, hampir tidak mungkin untuk mempertahankan kompatibilitas ke belakang dalam semua kasus. 2) Kode yang ditulis dalam bahasa yang lebih mudah dimengerti lebih mudah dipertahankan dari waktu ke waktu. Dibutuhkan lebih sedikit tahun atau dekade pengalaman untuk belajar menulis atau membaca kode secara efektif.

Bahasa dengan banyak fitur cenderung tidak stabil. Ini terlihat jelas dalam ekosistem yang berubah dengan cepat dari bahasa pemrograman modern dan keren. Hal ini selanjutnya diperkuat oleh versi bahasa, dialek, varian, dan subset. Meskipun suatu bahasa memiliki nama yang sama, versi baru mungkin cukup berbeda untuk menjadi bahasa yang berbeda, misalnya, C ++ 98 vs. C ++ 20 dan Java 4 vs. Java 15. Selain itu, beberapa bahasa juga begitu kaya fitur sehingga bagian-bagian bahasa menjadi dialek atau gayanya sendiri, misalnya, Java prosedural vs. Java fungsional.

Kesimpulannya, menambahkan fitur ke bahasa pemrograman adalah kompromi. Terkadang, bersikap konservatif dan memikirkan fitur mana yang akan disertakan dapat memiliki manfaat jangka panjang dalam pemahaman dan umur panjang bahasa pemrograman.

Read More

Berita sebelumyaAyahku, Pornografer
Berita berikutnyapengalihan
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments