Editar Volviendo a esta pregunta después de unos años
Después de seguir usando más y más bibliotecas de impulso, pensé en actualizar esta pregunta para dar un caso sólido de por qué debería usar impulso cuando la descripción del producto coincide con la funcionalidad deseada. Esto convencerá incluso a los que no lo dicen. Descargue openSSL, intente crear una aplicación de cliente y servidor con él. Ahora intenta hacer que funcione en todas las plataformas. Luego, descargue y use boost :: asio :: ssl para hacer la misma aplicación. Si no está convencido de que impulsar es el lugar correcto para buscar código multiplataforma limpio, bien optimizado, revisado por pares, este simple ejercicio lo convertirá.
Tl; versión dr:
En mi opinión, no ves un montón de empresas de desarrollo independientes o pequeñas o medianas que usan boost porque es una bestia salvaje masiva y poderosa que no es fácil de domesticar y básicamente estás solo cuando intentas aprender cómo para usarlo La documentación falta de varias maneras (ver versión larga) y "la comunidad" en torno al proyecto parece estar ausente, dispersa o inactiva (en comparación con otros proyectos).
Versión muy larga:
me doy cuenta de que ya hay una respuesta aceptada, pero como alguien que realmente usa el impulso en casi todos los proyectos que hago, pensé en publicar una respuesta.
Recuerdo la primera vez que busqué un impulso y, sinceramente, no tenía una idea de lo que estaba sucediendo. Boost no está muy bien documentado en absoluto. Es posible que la gente no esté de acuerdo conmigo en que estoy seguro porque hay toneladas de fragmentos de código de ejemplo y comentarios y demás, pero todo es muy frío y vago, así como difícil de navegar.
También parece difícil encontrar un lugar donde sienta que ha encontrado "la comunidad" en torno al proyecto. De hecho, la comunidad parece inexistente o nómada. Desafortunadamente, incluso su lista de correo ha sido controlada por tantos sitios de sanguijuelas que puedes ir por este agujero de conejo siempre volviendo a donde comenzaste.
Estos dos factores hacen que aprender a usar las bibliotecas de impulso sea una tarea bastante desalentadora. Incluso si los tecnicismos del uso de boost no son excesivamente complejos, es un conjunto masivo de bibliotecas y lo mira cuando todo lo que está armado es con algunos fragmentos de código y partes dispersas de la lista de correo desde los rincones más oscuros de Internet ... Bueno, ya captas la idea.
Empecé a jugar con el impulso alrededor de la versión 1.45 y solo ahora en la versión 1.52 / 1.53 me siento lo suficientemente cómodo como para usarlo en la producción. Hay tantas cosas a las que acostumbrarse y recordar, incluso cosas simples como la forma en que ha configurado boost y recordar esa configuración, porque la forma en que se construyen y funcionan las bibliotecas puede variar enormemente según sus preferencias en el momento de la compilación debido a las cosas personalizables son.
Sin embargo , no se equivoque , una vez que puede empujar impulso, ha ganado un arma poderosa para construir rápidamente programas sólidos y multiplataforma. Solo toma boost::asio
por ejemplo. Puede escribir un servidor web asíncrono multiplataforma inmensamente potente, escalable y sólido como una roca en solo un par de cientos de líneas. He escrito varios clientes, servidores, servidores proxy, etc. a lo largo de los años con solo unos cientos de líneas de código cada uno que aún no me han fallado, y pueden portarlos de plataforma en plataforma en minutos.
Como otros han señalado, las compañías más grandes generalmente están atrapadas con cosas heredadas o les gusta rodar las suyas, lo que entiendo completamente. También existe esta cosa realmente tonta de la que he oído hablar y que encontré donde los líderes de desarrollo y / o gerentes de proyecto prohíben el uso de impulso porque es "demasiado grande". Supongo que creen que el impulso es 1 biblioteca única o que nunca han oído hablar de BCP .
En cuanto a POR QUÉ elijo usar boost
Yo diría que lo uso porque, como usted implica en su pregunta, es "la" biblioteca de C ++. Boost es visto en el mundo de C ++ como la navaja suiza de las cosas que eventualmente necesitarás usar. Entonces, la idea es que si hay una necesidad, debe haber una versión portátil de alto rendimiento en impulso. Las grandes empresas contribuyen a impulsar , las personas muy educadas con currículums impresionantes contribuyen y lo mantienen , y cuando se desarrolla un nuevo estándar de C ++, las personas generalmente buscan impulsar para ver qué partes del mismo deberían convertirse en C ++ estandarizado por ISO.
Entonces, si necesito agregar alguna funcionalidad para la que probablemente haya una biblioteca existente, el primer lugar que buscaré es impulsar solo porque estoy bastante seguro al apostar que está bastante bien optimizado, es portátil, será compatible y mantenido para mucho tiempo y se encontrarán y solucionarán errores. En el mundo del código abierto, esas cualidades pueden ser muy difíciles de conseguir.