Pertanyaan ini bukan, "Mengapa orang masih menggunakan bahasa pemrograman lama?" Saya mengerti itu dengan cukup baik. Sebenarnya dua bahasa pemrograman yang saya tahu paling baik adalah C dan Skema, yang keduanya berasal dari tahun 70-an.
Baru-baru ini saya membaca tentang perubahan C99 dan C11 versus C89 (yang tampaknya masih menjadi versi C yang paling banyak digunakan dalam praktik dan versi yang saya pelajari dari K&R). Melihat sekeliling, sepertinya setiap bahasa pemrograman yang banyak digunakan mendapat spesifikasi baru setidaknya sekali dalam satu dekade. Bahkan Fortran masih mendapatkan revisi baru, terlepas dari kenyataan bahwa kebanyakan orang menggunakannya masih menggunakan FORTRAN 77.
Bandingkan ini dengan pendekatan, katakanlah, sistem pengaturan huruf TeX. Pada tahun 1989, dengan rilis TeX 3.0, Donald Knuth menyatakan bahwa TeX adalah fitur-lengkap dan rilis masa depan hanya akan berisi perbaikan bug. Bahkan lebih dari ini, ia telah menyatakan bahwa setelah kematiannya, "semua bug yang tersisa akan menjadi fitur" dan sama sekali tidak ada pembaruan lebih lanjut akan dibuat. Yang lain bebas untuk memotong TeX dan telah melakukannya, tetapi sistem yang dihasilkan diganti namanya untuk menunjukkan bahwa mereka berbeda dari TeX resmi. Ini bukan karena Knuth menganggap TeX itu sempurna, tetapi karena ia memahami nilai sistem yang stabil dan dapat diprediksi yang akan melakukan hal yang sama dalam lima puluh tahun seperti yang dilakukannya sekarang.
Mengapa sebagian besar perancang bahasa pemrograman tidak mengikuti prinsip yang sama? Tentu saja, ketika suatu bahasa relatif baru, masuk akal bahwa itu akan melalui periode perubahan yang cepat sebelum menetap. Dan tidak ada yang bisa benar-benar keberatan dengan perubahan kecil yang tidak melakukan lebih dari kodifikasi standar pseudo yang ada atau mengoreksi pembacaan yang tidak diinginkan. Tetapi ketika suatu bahasa tampaknya masih perlu perbaikan setelah sepuluh atau dua puluh tahun, mengapa tidak hanya garpu atau mulai lagi, daripada mencoba mengubah apa yang sudah digunakan? Jika beberapa orang benar-benar ingin melakukan pemrograman berorientasi objek di Fortran, mengapa tidak membuat "Objective Fortran" untuk tujuan itu, dan meninggalkan Fortran sendiri?
Saya kira orang bisa mengatakan bahwa, terlepas dari revisi di masa depan, C89 sudah menjadi standar dan tidak ada yang menghentikan orang untuk terus menggunakannya. Ini agak benar, tetapi konotasi memang memiliki konsekuensi. GCC akan, dalam mode pedantic, memperingatkan tentang sintaksis yang sudah usang atau memiliki makna yang agak berbeda di C99, yang berarti programmer C89 tidak bisa sepenuhnya mengabaikan standar baru. Jadi harus ada beberapa manfaat dalam C99 yang cukup untuk memaksakan overhead ini pada semua orang yang menggunakan bahasa
Ini adalah pertanyaan nyata, bukan undangan untuk berdebat. Jelas saya memang memiliki pendapat tentang ini, tetapi saat ini saya hanya mencoba untuk memahami mengapa ini bukan hanya bagaimana hal sudah dilakukan. Saya kira pertanyaannya adalah:
Apa keuntungan (nyata atau yang dirasakan) dari memperbarui standar bahasa, sebagai lawan dari menciptakan bahasa baru berdasarkan yang lama?
--std=x
Sakelar GCC ), jadi bukan berarti menciptakan hasil standar yang lebih baru pada alat yang membuat kestabilan kode lama.