Meskipun mereka mungkin berguna bagi Anda sebagai bentuk dokumentasi, sistem yang mengelilingi file header sangat tidak efisien.
C dirancang sehingga setiap pass kompilasi membangun satu modul tunggal; setiap file sumber dikompilasi dalam menjalankan terpisah dari kompiler. File header, di sisi lain, disuntikkan ke langkah kompilasi untuk masing-masing file sumber yang mereferensikannya.
Ini berarti bahwa jika file header Anda termasuk dalam 300 file sumber, maka file tersebut akan diuraikan dan dikompilasi berulang-ulang, 300 kali terpisah saat program Anda dibuat. Hal yang persis sama dengan hasil yang sama persis, berulang-ulang.Ini sangat membuang waktu, dan merupakan salah satu alasan utama mengapa program C dan C ++ membutuhkan waktu lama untuk dibangun.
Semua bahasa modern sengaja menghindari inefisiensi kecil yang absurd ini. Alih-alih, biasanya dalam bahasa yang dikompilasi, metadata yang diperlukan disimpan dalam output build, memungkinkan file yang dikompilasi untuk bertindak sebagai semacam referensi pencarian cepat yang menjelaskan apa yang terkandung dalam file yang dikompilasi. Semua manfaat file header, secara otomatis dibuat tanpa ada pekerjaan tambahan di pihak Anda.
Bergantian dalam bahasa yang ditafsirkan, setiap modul yang dimuat akan tetap tersimpan dalam memori. Merujuk atau memasukkan atau membutuhkan pustaka akan membaca dan menyusun kode sumber terkait, yang tetap penduduk sampai program berakhir. Jika Anda juga memerlukannya di tempat lain, tidak ada pekerjaan tambahan karena sudah dimuat.
Dalam kedua kasus tersebut, Anda dapat "menelusuri" data yang dibuat oleh langkah ini menggunakan alat bahasa. Biasanya IDE akan memiliki semacam browser kelas. Dan jika bahasa tersebut memiliki REPL, itu juga dapat sering digunakan untuk menghasilkan ringkasan dokumentasi dari setiap objek yang dimuat.