Kembali pada masa itu, pengembang bekerja lebih dekat dengan logam. C pada dasarnya adalah pengganti tingkat yang lebih tinggi untuk perakitan, yang hampir sedekat dengan perangkat keras yang Anda bisa dapatkan, jadi wajar saja Anda membutuhkan petunjuk untuk menjadi efisien dalam menyelesaikan masalah pengkodean. Namun, pointer adalah alat yang tajam, yang dapat menyebabkan kerusakan besar jika digunakan secara sembarangan. Juga, penggunaan pointer secara langsung membuka kemungkinan banyak masalah keamanan, yang saat itu tidak menjadi masalah (pada tahun 1970, internet terdiri dari sekitar beberapa lusin mesin di beberapa universitas, dan bahkan tidak disebut seperti itu). ...), tetapi menjadi semakin penting sejak itu. Jadi saat ini bahasa tingkat yang lebih tinggi dirancang secara sadar untuk menghindari pointer memori mentah.
Mengatakan bahwa "hal-hal canggih yang dilakukan dalam VB.Net atau Java tidak mungkin dalam C" menunjukkan sudut pandang yang sangat terbatas, untuk sedikitnya :-)
Pertama-tama, semua bahasa ini (bahkan majelis) Turing lengkap sehingga dalam teori apa pun yang mungkin dalam satu bahasa, adalah mungkin dalam semua. Coba pikirkan apa yang terjadi ketika sepotong VB.Net atau kode Java dikompilasi dan dieksekusi: akhirnya, itu diterjemahkan ke dalam (atau dipetakan ke) kode mesin, karena itu adalah satu-satunya hal yang dimengerti mesin. Dalam bahasa yang dikompilasi seperti C dan C ++, Anda benar-benar bisa mendapatkan tubuh penuh kode mesin yang setara dengan kode sumber tingkat tinggi asli, sebagai satu atau lebih file / pustaka yang dapat dieksekusi. Dalam bahasa berbasis VM, lebih sulit (dan bahkan mungkin tidak mungkin) untuk mendapatkan seluruh representasi kode mesin yang setara dengan program Anda, tetapi pada akhirnya masih ada di suatu tempat, dalam ceruk yang dalam dari sistem runtime dan JIT.
Sekarang, tentu saja, ini adalah pertanyaan yang sepenuhnya berbeda apakah beberapa solusi layak dalam bahasa tertentu. Tidak ada pengembang yang masuk akal yang akan mulai menulis aplikasi web dalam perakitan :-) Tetapi perlu diingat bahwa sebagian besar atau semua bahasa tingkat tinggi itu dibangun di atas sejumlah besar runtime dan kode perpustakaan kelas, sebagian besar dari yang diimplementasikan dalam bahasa tingkat yang lebih rendah, biasanya dalam C.
Jadi untuk sampai ke pertanyaan,
Apakah menurut Anda pengetahuan tentang petunjuk kepada orang-orang muda [...] itu penting?
Konsep di balik pointer adalah tipuan . Ini adalah konsep yang sangat penting dan IMHO setiap programmer yang baik harus menangkapnya pada level tertentu. Bahkan jika seseorang bekerja hanya dengan bahasa tingkat yang lebih tinggi, tipuan dan referensi masih penting. Gagal memahami ini berarti tidak bisa menggunakan seluruh kelas alat yang sangat kuat, serius membatasi kemampuan pemecahan masalah seseorang dalam jangka panjang.
Jadi jawaban saya adalah ya, jika Anda ingin menjadi programmer yang benar-benar baik, Anda harus memahami pointer juga (serta rekursi - ini adalah batu sandungan khas lainnya untuk pengembang pemula). Anda mungkin tidak perlu memulainya - saya rasa C tidak optimal sebagai bahasa pertama saat ini. Tetapi pada titik tertentu seseorang harus terbiasa dengan tipuan. Tanpanya, kita tidak akan pernah bisa memahami bagaimana alat, pustaka, dan kerangka kerja yang kita gunakan benar-benar berfungsi. Dan pengrajin yang tidak mengerti bagaimana alatnya bekerja sangat terbatas. Cukup adil, seseorang dapat memahami itu dalam bahasa pemrograman tingkat yang lebih tinggi juga. Satu tes lakmus yang baik adalah menerapkan daftar yang ditautkan dengan benar - jika Anda dapat melakukannya dalam bahasa favorit Anda, Anda dapat mengklaim bahwa Anda memahami tipuan dengan cukup baik.
Tetapi jika bukan karena hal lain, kita harus melakukannya untuk belajar menghargai para programmer lama yang berhasil membangun hal-hal yang tidak dapat dipercaya dengan menggunakan alat-alat sederhana yang mereka miliki (dibandingkan dengan apa yang kita miliki sekarang). Kita semua berdiri di atas pundak para raksasa, dan sungguh baik bagi kita untuk mengakui hal ini, daripada berpura-pura bahwa kita adalah raksasa itu sendiri.