Sunting Kembali ke Pertanyaan Ini Setelah Beberapa Tahun
Setelah terus menggunakan lebih banyak dan lebih banyak perpustakaan, saya pikir saya akan memperbarui pertanyaan ini untuk memberikan alasan yang kuat mengapa Anda harus menggunakan peningkatan ketika deskripsi produk cocok dengan fungsionalitas yang Anda inginkan. Ini bahkan akan meyakinkan para penentang. Unduh openSSL, cobalah membuat aplikasi klien dan server dengannya. Sekarang coba dan buat itu bekerja di setiap platform. Kemudian, unduh dan gunakan boost :: asio :: ssl untuk membuat aplikasi yang sama. Jika Anda tidak yakin bahwa peningkatan adalah tempat yang tepat untuk mencari kode lintas-platform yang bersih, dioptimalkan dengan baik, ditinjau sejawat, latihan sederhana ini akan mengubah Anda.
Tl; versi dr:
Menurut pendapat saya, Anda tidak melihat satu ton pun perusahaan pengembangan indie atau kecil hingga menengah yang menggunakan boost karena itu adalah binatang buas besar dan kuat yang tidak mudah dijinakkan dan Anda pada dasarnya sendiri saat mencoba mempelajari cara untuk menggunakannya. Dokumentasi kurang dalam beberapa cara (lihat versi lama) dan "komunitas" di sekitar proyek entah itu hilang, tersebar atau tidak aktif (dibandingkan dengan proyek lain).
Very Long Winded Version:
Saya menyadari sudah ada jawaban yang diterima tetapi sebagai seseorang yang benar-benar menggunakan dorongan di hampir setiap proyek yang saya lakukan, saya pikir saya akan mengirim jawaban.
Saya ingat ketika saya pertama kali mencari-cari dorongan dan jujur saya tidak tahu apa yang terjadi. Boost tidak didokumentasikan dengan baik sama sekali. Orang mungkin tidak setuju dengan saya karena saya yakin karena ada banyak potongan kode contoh dan komentar dan semacamnya, tetapi semuanya sangat dingin dan tidak jelas serta sulit dinavigasi.
Tampaknya juga sulit untuk menemukan tempat di mana Anda merasa telah menemukan "komunitas" di sekitar proyek. Kenyataannya komunitas itu tampaknya tidak ada, atau nomaden. Sayangnya, bahkan milis mereka telah dikendalikan oleh begitu banyak situs lintah sehingga Anda bisa turun ke lubang kelinci ini dan selalu kembali ke tempat Anda memulai.
Kedua faktor ini menjadikan belajar menggunakan perpustakaan pendorong merupakan tugas yang agak menakutkan. Sekalipun teknis penggunaan dorongan tidak terlalu rumit, itu adalah kumpulan besar perpustakaan dan menatapnya ketika semua yang Anda miliki hanyalah beberapa cuplikan kode dan potongan milis yang tersebar di sudut-sudut tergelap internet. ... baik Anda mendapatkan ide.
Saya mulai bermain-main dengan peningkatan sekitar versi 1.45 dan hanya sekarang dalam versi 1.52 / 1.53 saya merasa cukup nyaman untuk menggunakannya dalam produksi. Ada begitu banyak hal untuk dibiasakan dan diingat, bahkan hal-hal sederhana seperti bagaimana Anda telah mengonfigurasi peningkatan dan mengingat konfigurasi itu, karena bagaimana perpustakaan dibangun dan fungsinya dapat sangat bervariasi berdasarkan pada preferensi Anda pada waktu kompilasi karena bagaimana hal-hal yang dapat disesuaikan adalah.
Namun , jangan salah , begitu Anda dapat menggunakan boost, Anda telah mendapatkan senjata yang kuat untuk membangun program lintas platform yang solid dengan cepat. Ambil saja boost::asio
contohnya. Anda dapat menulis server web asinkron yang sangat kuat, dapat diskalakan, dan kokoh, hanya dalam beberapa ratus baris. Saya telah menulis banyak klien, server, proksi dll selama bertahun-tahun hanya dengan beberapa ratus baris kode yang masing-masing belum membuat saya gagal, dan dapat memindahkan mereka dari platform ke platform dalam hitungan menit.
Seperti yang ditunjukkan orang lain, perusahaan besar biasanya terjebak dengan barang warisan atau suka menggulung sendiri yang benar-benar saya pahami. Ada juga hal yang sangat konyol yang pernah saya dengar dan temui di mana dev memimpin dan atau manajer proyek melarang menggunakan dorongan karena itu "terlalu besar". Dugaan saya adalah bahwa mereka percaya bahwa peningkatan adalah 1 perpustakaan tunggal atau mereka belum pernah mendengar tentang BCP .
Adapun MENGAPA saya memilih untuk menggunakan boost
Saya akan mengatakan saya menggunakannya karena seperti yang Anda maksudkan dalam pertanyaan Anda, itu adalah "the" C ++ library. Boost dipandang di dunia C ++ sebagai pisau tentara swiss dari hal-hal yang pada akhirnya perlu Anda gunakan. Jadi idenya adalah bahwa jika ada kebutuhan, harus ada versi yang sangat berkinerja tinggi dan portabel. Perusahaan-perusahaan besar berkontribusi untuk meningkatkan , orang-orang yang sangat berpendidikan dengan resume yang mengesankan berkontribusi dan memeliharanya , dan ketika standar baru C ++ sedang dikembangkan, orang-orang biasanya ingin meningkatkan untuk melihat bagian mana yang harus menjadi standar C ++ ISO.
Jadi jika saya perlu menambahkan beberapa fungsionalitas yang mungkin ada untuk pustaka yang ada, tempat pertama yang akan saya lihat adalah meningkatkan hanya karena saya cukup aman dalam bertaruh bahwa itu dioptimalkan dengan baik, portabel, itu akan didukung dan dikelola untuk waktu yang sangat lama dan bug akan ditemukan dan ditangani. Di dunia open source kualitas-kualitas itu bisa sangat sulit didapat.