Kutipan dari Wikipedia artikel "Bahasa pemrograman tingkat tinggi":
Bahasa pemrograman tingkat tinggi adalah bahasa pemrograman dengan abstraksi yang kuat dari perincian komputer. Dibandingkan dengan bahasa pemrograman tingkat rendah, mungkin menggunakan elemen bahasa alami, lebih mudah digunakan, atau lebih portabel di seluruh platform. Bahasa semacam itu menyembunyikan detail operasi CPU seperti model akses memori dan manajemen ruang lingkup.
Yaitu, ketika tingkat bahasa pemrograman meningkat, semakin jauh programmer pergi dari perangkat keras yang menjalankan program.
Sekarang saya tidak tahu statistik penggunaan bahasa lintas level, tetapi saya menduga bahwa bahasa tingkat yang lebih tinggi semakin banyak menggantikan bahasa tingkat yang lebih rendah. Jika demikian, dapatkah hal ini menyebabkan defisit programmer dengan pengetahuan arsitektur komputer? Apakah ini akan menjadi masalah bagi industri?
Aku pikir begitu. Ini adalah tren yang membuat saya khawatir. Tidak ada abstraksi yang sempurna ; jika ada cara sempurna untuk menyederhanakan masalah rumit, itu akan mengganti yang asli dengan sangat cepat. (Itu terjadi di masa lalu, kadang-kadang dengan komputer, dan lebih sering di bidang lain yang tidak terlalu khawatir tentang kompatibilitas mundur seperti yang kita lakukan, seperti fisika.)
Artinya, setiap kali Anda menggunakan abstraksi, ada beberapa kompleksitas penting yang harus disembunyikan dari Anda. Jika Anda tidak tahu apa itu, mengapa ada di sana dan apa yang dilakukannya, Anda akhirnya secara tidak sengaja menulis bangkai kereta api besar, dan tidak tahu bagaimana cara memperbaikinya karena Anda tidak tahu apa yang sebenarnya terjadi.
Siapa pun yang mencoba memberi tahu Anda sebaliknya adalah menjual minyak ular atau tidak punya banyak pengalaman dengan perangkat lunak yang serius. Di tempat kerja, saya mengerjakan program yang menjalankan persentase yang baik dari semua stasiun TV dan radio di AS. Ketika stasiun dan jaringan menjadi lebih besar dan lebih kompleks, teknik cepat dan kotor yang bekerja dengan baik untuk merancang produk untuk satu stasiun kecil akhirnya menabrak dinding teknis besar ketika diimplementasikan untuk jaringan dengan 50 stasiun dan 200 saluran! Tanpa pemahaman mendalam tentang bagaimana bahasa bekerja, (dan bahasa yang efisien di tempat pertama), dan pemahaman mendalam tentang bagaimana database bekerja, coders kami tidak akan pernah bisa membuat skala produk berhasil.
Ini juga bukan kisah yang terisolasi. Perangkat lunak terus tumbuh semakin kompleks, tidak sederhana, dan saya khawatir bahwa tingkat keahlian teknis ini akan menjadi sesuatu yang hilang, dan program besok akan lebih buruk daripada hari ini, tidak lebih baik.
sumber
javascript:alert("Hello world")
membutuhkan PhD dalam teori string.Ya, saya pikir orang akan kurang memahami perangkat keras seiring kemajuan bahasa (dan, sama halnya, ketika instruksi membuat kemajuan). Tetapi seperti yang telah dicatat di banyak tempat lain, kendala utama pada sebagian besar program sekarang adalah waktu CPU atau efisiensi, tetapi waktu programmer. Jika orang yang mendesain bahasa terus melakukan pekerjaan mereka dalam membuat abstraksi efisien, dan jika orang tetap menggunakan abstraksi ini dengan benar, maka pemahaman tentang arsitektur komputer tidak sepenuhnya diperlukan; setidaknya pengetahuan yang lengkap tidak mendasar untuk menjadi programmer yang baik hari ini.
sumber
Tidak, itu tidak akan menyebabkan defisit programmer dengan pengetahuan arsitektur komputer. Bahasa digunakan untuk memecahkan masalah dalam domain tertentu. Jika Anda ingin menyelesaikan masalah tertentu, Anda menggunakan bahasa yang sesuai atau yang cukup baik diberikan sumber daya Anda.
Pada kenyataannya, domain apa yang sebenarnya membutuhkan pengetahuan tentang arsitektur komputer? Itu perlu diikat ke arsitektur perangkat keras tertentu? Sistem operasi? Driver Perangkat? Tentu, tetapi bahkan hanya sebagian dari kode tersebut yang membutuhkan pengetahuan arsitektur tertentu.
Peningkatan performa? Ya, Anda bisa menerapkan pengetahuan arsitektur komputer untuk meningkatkan kinerja algoritma. Tetapi dua faktor lain memiliki dampak yang lebih besar pada kinerja: penggunaan algoritma yang lebih baik dan pengetahuan tentang lingkungan runtime bahasa.
Intinya, bahasa pemrograman yang lebih abstrak memecahkan masalah yang detail arsitektur komputernya tidak perlu. Mereka memungkinkan lebih banyak masalah untuk dipecahkan. Orang-orang yang menggunakannya tidak menggunakannya untuk memecahkan masalah yang bergantung pada mesin. Orang-orang yang perlu memecahkan masalah yang bergantung pada mesin akan terus menggunakan bahasa yang mampu menggunakan mesin. Ini bukan masalah zero-sum.
sumber