"STL" ditulis oleh Alexander Stepanov pada hari-hari jauh sebelum C ++ distandarisasi. C ++ ada sejak tahun 80-an, tetapi apa yang sekarang kita sebut " C ++ " adalah bahasa yang distandarisasi dalam ISO / IEC 14882: 2014 (dan versi sebelumnya, seperti ISO / IEC 14882: 2011).
STL sudah banyak digunakan sebagai perpustakaan untuk C ++, memberikan akses programmer ke wadah, iterator dan algoritma. Ketika standardisasi terjadi, komite bahasa merancang bagian-bagian dari Perpustakaan Standar C ++ (yang merupakan bagian dari standar bahasa) untuk sangat cocok dengan STL.
Selama bertahun-tahun, banyak orang - termasuk penulis buku terkemuka, dan berbagai situs web - terus menyebut Perpustakaan Standar C ++ sebagai "STL", meskipun kedua entitas itu terpisah dan ada beberapa perbedaan. Perbedaan-perbedaan ini bahkan lebih nyata dalam standar C ++ baru yang akan datang, yang mencakup berbagai fitur dan secara signifikan mengubah beberapa kelas.
STL asli sekarang sering disebut "implementasi Perpustakaan Template Standar C ++" (agak mundur ke sejarah aktual!), Dengan cara yang sama seperti Microsoft Visual Studio atau GCC Anda mengirimkan implementasi Perpustakaan Standar C ++. Tetapi "Perpustakaan Templat Standar" dan "Perpustakaan Standar" bukanlah hal yang sama.
Pertempurannya adalah tentang apakah Perpustakaan Standar saat ini harus disebut "STL" secara keseluruhan atau sebagian, dan / atau apakah itu penting apa namanya.
Untuk "STL"
Ada aliran pemikiran yang mengatakan bahwa semua orang sekarang tahu bahwa "STL" berarti perpustakaan standar, sama seperti semua orang sekarang tahu bahwa "C ++" adalah bahasa berstandar ISO.
Ini juga termasuk mereka yang percaya bahwa itu tidak masalah asalkan semua pihak mengerti apa yang sedang dibicarakan.
Ini adalah istilah yang dibuat lebih lazim oleh sifat binatang, banyak yang membuat penggunaan fitur C ++ dikenal sebagai "templat".
Untuk "C ++ Standard Library" (atau stdlib)
Namun, ada aliran pemikiran lain - yang saya ikuti - yang mengatakan bahwa ini membingungkan. Orang yang belajar C ++ untuk pertama kalinya tidak tahu perbedaan ini, dan mungkin tidak melihat perbedaan bahasa yang kecil.
Penulis artikel itu telah berkali-kali bertemu dengan orang-orang yang percaya bahwa seluruh C + + Standard Library adalah STL, termasuk fitur yang tidak pernah menjadi bagian dari STL itu sendiri. Sebagian besar pendukung vokal "STL", sebaliknya, tahu persis apa yang mereka maksud dengan itu dan menolak untuk percaya bahwa tidak semua orang "mendapatkannya". Jelas, penggunaan istilah ini tidak seragam.
Selain itu, ada beberapa perpustakaan seperti STL yang sebenarnya merupakan implementasi dari STL asli, bukan Perpustakaan Standar C ++. Sampai baru-baru ini, STLPort adalah salah satu dari mereka (dan bahkan di sana, kebingungan berlimpah!).
Lebih lanjut, Standar C ++ tidak mengandung teks "STL" di mana saja, dan beberapa orang terbiasa menggunakan frasa seperti "STL termasuk dalam Perpustakaan Standar C ++", yang jelas-jelas salah.
Adalah keyakinan saya bahwa terus menyebarkan penggunaan istilah dengan cara ini hanya akan menyebabkan kesalahpahaman berlangsung selamanya. Sayangnya, mungkin sama sekali tidak produktif untuk mencoba mengubah sesuatu, bahkan jika itu seharusnya menjadi lebih baik. Kita mungkin terjebak dengan makna ganda selamanya.
Kesimpulan
Saya menghargai bahwa posting ini sedikit bias: Saya menulis artikel yang Anda tautkan. :) Pokoknya, saya harap ini membantu menjelaskan pertempuran sedikit lebih baik.
Pembaruan 13/04/2011
Berikut adalah tiga contoh sempurna seseorang yang menggunakan "STL" untuk merujuk ke seluruh Perpustakaan Standar C ++. Itu terus membingungkan saya bahwa begitu banyak orang bersumpah bahwa tidak ada yang pernah melakukan ini, ketika jelas terlihat hampir setiap hari.