Pergunta

Eu tenho uma quantidade considerável de experiência com ACE , Aumento e wxWidgets . Eu descobri recentemente o POCO bibliotecas. Alguém tem alguma experiência com eles e como eles se comparam a ACE, Boost e wxWidgets com relação ao desempenho e confiabilidade?

Estou particularmente interessado em substituir ACE com POCO. Eu fui incapaz de obter ACE para compilar com VS2008 com um alvo x64. Eu use ACE_Task então eu acho que pode substituir aqueles com tópicos de Poco e filas de mensagens.

Algumas outras partes do POCO que me interessam são o HTTPServer, HTTPClient e LayeredConfiguration. Essas bibliotecas são semelhantes às bibliotecas em Boost e wxWidgets mas eu tento limitar meu uso do wxWidgets para componentes GUI e as bibliotecas de impulso comparáveis ??são ... difícil.

Eu estou interessado em qualquer experiência que qualquer um pode compartilhar sobre POCO, bom ou mau.

Foi útil?

Solução

Eu usei peças de POCO e agora novamente e achei que era ser um muito bom lib. Eu praticamente abandonada ACE um número de anos atrás, mas POCO contém alguns dos mesmos padrões -. Tarefa, Reactor, etc. eu nunca tive qualquer problema com ele então eu tenho que assumir que é estável

Alguns aspectos que eu como:

  • é uma hierarquia OOP muito bem integrado de modo que os componentes funcionam bem uns com os outros. Tem uma sensação muito mais coesa do que algo como impulso que é bastante peça-refeição.

  • O código fonte está disponível e muito clara. Você não precisa dedicar grandes blocos de tempo para entender o que está fazendo (ACE, pelo menos última vez que olhei na fonte) ou ser um assistente de modelo (Boost).

  • Componentes vara perto de C ++ padrão. As excepções são derivados de std :: excepção; eles não reinventar classe ainda-another-corda, etc.

  • É surpreendente abrangente. Há muito mais lá do que parece à primeira vista.

A desvantagem:

  • Uma questão de preferência pessoal, mas os autores manter praticamente a uma classe um por modelo de arquivo de cabeçalho assim você acaba incluindo um monte de arquivos diferentes.

  • documentação Limited. Principalmente doxygen páginas API tipo e um par de PDFs apontando para exemplos de origem. É útil, mas considerando o tamanho da lib é inicialmente difícil de figura se você está fazendo o melhor uso dos componentes.

  • Se houver uma comunidade ativa construída em torno dele, eu nunca encontrou. O pacote é mantido por alguns companhia baseada Europeu e eles tinham um wiki mas eu não encontrá-lo, que ativa ou útil.

Todas as coisas consideradas, a desvantagem é muito menor. Eu acho que é uma biblioteca muito boa e definitivamente recomendo-lo.

Outras dicas

Eu nunca usei ACE, mas eu usei Boost e Poco. Eu realmente gosto do estilo de codificação de Poco. Os pacotes são consistentes e o código-fonte é fácil de ler. Eles não estão template louco como impulso. Na minha experiência, eu passar horas lendo como usar boost - pacote de serialização, tempo de leitura etc- e pouco ponteiro do mapa recipiente como usar o material Poco. Eu diria que eles têm um bom projeto e fazer uso de modelos quando necessário.

No lado negativo eles têm documentação da API, mas eles não têm uma extensa documentação sobre como você usaria um pacote. Por que você costuma olhar para exemplo de código fonte, ou o seu código fonte testes de unidade.

Eu tenho o HTTPServer trabalhando em Windows / Linux sem erros óbvios.

Assim giz-lo como uma experiência positiva.

Para mim, parece impulso tem o maior tração para novas bibliotecas C ++ e o fato de que muitos deles foi aceito para o próximo C ++ padrão fala por si.

Eu uso ACE e impulsionar a mim mesmo e as razões que eu escolhi-los é que eles são maduros (especialmente ACE) tem uma grande comunidade de usuários forte, que garante que eles serão mantidos e melhorados e que eu possa obter apoio profissional de boa qualidade. Usamos Remedy IT para nosso apoio ACE / TAO e estão muito satisfeitos.

Como ACE é uma biblioteca muito mais velho do que Boost e um de seus objetivos é apoiar mais exótico (como embutidos) Plataformas Ele não usa tanta tecnologia de ponta C ++ como Boost. Eu estou usando uma mistura de ACE e Boost e estou muito feliz com essa combinação.

Eu não sei bem por que você colocar wxWidgets no jogo, como é principalmente uma biblioteca gráfica UI. Mas se eu tivesse que fazer alguns projetos ++ UI C Eu iria com QT , principalmente porque esta é também uma ampla biblioteca usada (todo o desktop KDE é construído em cima de QT) e, portanto, bem conservado e eu gostaria de ter acesso a uma grande base de usuários para perguntas e apoio.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top