Editar Voltando a esta pergunta após alguns anos
Tendo continuado a usar cada vez mais bibliotecas de reforço, pensei em atualizar essa pergunta para apresentar um argumento sólido sobre por que você deve usar o impulso quando a descrição do produto corresponde à funcionalidade desejada. Isso convencerá até negativistas. Baixe o openSSL, tente criar um aplicativo cliente e servidor com ele. Agora tente fazer isso funcionar em todas as plataformas. Em seguida, faça o download e use o boost :: asio :: ssl para criar o mesmo aplicativo. Se você não está convencido de que o impulso é o lugar certo para procurar código de plataforma cruzada limpo, bem otimizado e com revisão por pares, este exercício simples o converterá.
Tl; dr versão:
Na minha opinião, você não vê uma tonelada de empresas de desenvolvimento indie ou de pequeno e médio porte usando o boost porque é uma fera maciça e poderosa que não é fácil de domar e você está basicamente sozinho quando tenta aprender como para usá-lo. A documentação está faltando de algumas maneiras (veja a versão longa) e a "comunidade" em torno do projeto parece estar ausente, dispersa ou inativa (em comparação com outros projetos).
Versão muito longa:
sei que já existe uma resposta aceita, mas como alguém que realmente usa o impulso em quase todos os projetos que eu faço, pensei em publicar uma resposta.
Lembro-me de quando comecei a bisbilhotar e, honestamente, não fazia ideia do que estava acontecendo. O impulso não está muito bem documentado. As pessoas podem discordar de mim porque tenho certeza de que há muitos trechos de código de exemplo, comentários e afins, mas tudo é muito frio, vago e difícil de navegar.
Também parece difícil encontrar qualquer lugar em que você sinta que encontrou "a comunidade" ao redor do projeto. De fato, a comunidade parece inexistente ou nômade. Infelizmente, até a lista de e-mails deles foi vasculhada por tantos sites de sanguessugas que você pode descer por essa toca de coelho sempre voltando para onde você começou.
Esses dois fatores tornam o aprendizado do uso de bibliotecas de impulso uma tarefa bastante assustadora. Mesmo que os detalhes técnicos do uso do impulso não sejam excessivamente complexos, é um conjunto enorme de bibliotecas e o encaramos quando tudo o que você está armado são alguns trechos de código e partes dispersas da lista de discussão dos cantos mais sombrios da Internet ... bem, você entendeu a idéia.
Eu comecei a mexer com o boost na versão 1.45 e é só agora na versão 1.52 / 1.53 que me sinto confortável o suficiente para usá-lo na produção. Há tantas coisas para se acostumar e lembrar, até coisas simples, como você configurou o boost e a lembrança dessa configuração, porque a forma como as bibliotecas são construídas e as funções podem variar bastante com base nas suas preferências no momento da compilação, devido à personalização das coisas estão.
No entanto , não se engane , uma vez que você pode usar o impulso, você ganhou uma arma poderosa para criar rapidamente programas sólidos e multiplataforma. Pegue boost::asio
por exemplo. Você pode escrever um servidor Web assíncrono de plataforma cruzada imensamente poderoso, escalonável e sólido em apenas algumas centenas de linhas. Escrevi vários clientes, servidores, proxies etc. ao longo dos anos, com apenas algumas centenas de linhas de código cada uma que ainda não me falharam, e posso portá-las de plataforma para plataforma em minutos.
Como outros já apontaram, as empresas maiores geralmente ficam presas a coisas antigas ou gostam de criar suas próprias, o que eu entendo completamente. Também há uma coisa realmente boba que eu ouvi e descobri onde os líderes de desenvolvimento e / ou os gerentes de projeto proíbem o uso do boost porque é "muito grande". Meu palpite é que eles acreditam que o impulso é uma única biblioteca ou nunca ouviram falar do BCP .
Quanto a POR QUE eu escolho usar o impulso
Eu diria que o uso porque, como você sugere na sua pergunta, é "a" biblioteca C ++. O Boost é visto no mundo C ++ como o canivete suíço de coisas que eventualmente você precisará usar. Portanto, a idéia é que, se houver uma necessidade, deve haver uma versão com alto desempenho e portátil dela em impulso. As grandes empresas contribuem para impulsionar , pessoas muito instruídas com currículos impressionantes contribuem e mantêm-no , e quando um novo padrão de C ++ está sendo desenvolvido, as pessoas geralmente procuram aumentar para ver quais partes dele devem se tornar C ++ padronizadas pela ISO.
Portanto, se eu precisar adicionar alguma funcionalidade para a qual provavelmente exista uma biblioteca existente, o primeiro lugar que procurarei será o aumento apenas porque tenho certeza de que é bastante otimizado, portátil, que será suportado e mantido por muito tempo e erros serão encontrados e solucionados. No mundo do código aberto, essas qualidades podem ser muito difíceis de encontrar.