Domanda

Ho una notevole quantità di esperienza con ACE, Boost e wxWidgets.Di recente ho trovato il POCO librerie.Qualcuno ha qualche esperienza con loro e come si confronta ACE, Boost e wxWidgets per quanto riguarda prestazioni e affidabilità?

Io sono particolarmente interessato in sostituzione di ACE con POCO.Sono stato in grado di ottenere ACE compilare con VS2008 con un x64 di destinazione.Io lo uso ACE_Task quindi penso di poter sostituire quelli con Poco thread e code di messaggi.

Alcune altre parti del POCO che mi interessano sono il HTTPServer, HTTPClient, e LayeredConfiguration.Tali librerie sono simili alle biblioteche di Spinta e wxWidgets, ma cerco di limitare il mio uso di wxWidgets di componenti dell'interfaccia grafica e le paragonabile librerie Boost sono...difficile.

Sono interessato a qualsiasi esperienza chiunque può condividere su POCO, buono o cattivo.

È stato utile?

Soluzione

Ho usato parti di POCO ora e di nuovo e l'ho trovato molto bello lib.Ho in gran parte abbandonato ACE un certo numero di anni fa, ma POCO contiene alcuni dei modelli stessi - Task, Reattore, etc.Non ho mai avuto problemi con esso, quindi devo presumere che sia stabile.

Alcuni aspetti che mi piace:

  • si tratta di una piuttosto ben integrato OOP gerarchia e i componenti funzionano bene con gli altri.Ha un molto più coesa sensazione di qualcosa come Boost che è piuttosto pezzo-pasto.

  • il codice sorgente è disponibile e molto chiaro.Non hai bisogno di dedicare molto tempo a capire di cosa si sta facendo (ACE, almeno per ultimo ho guardato il sorgente) o essere un modello wizard (Boost).

  • Componenti bastone in prossimità standard del C++.Le eccezioni sono derivati da std::exception;non reinventare ancora-un-altra-classe string, etc.

  • È sorprendente completo.C'è molto di più di quanto appaia a prima vista.

Il rovescio della medaglia:

  • Una questione di preferenze personali, ma gli autori stick praticamente ad una sola classe per ogni file di intestazione modello, in modo che si finisce per includere un sacco di file diversi.

  • Limitata documentazione.Soprattutto doxygen tipo API di pagine e un paio di Pdf indicando la fonte di esempi.E ' utilizzabile, ma considerando le dimensioni del lib inizialmente è difficile capire se si sta facendo il miglior uso dei componenti.

  • Se c'è una comunità attiva costruito intorno ad esso, non ho mai trovato.Il pacchetto è gestito da alcuni Europeo basato su società e avevano un wiki ma non ho trovato che attiva o utile.

Tutto considerato, il rovescio della medaglia è abbastanza minore.Penso che è una biblioteca molto buona e la consiglio vivamente.

Altri suggerimenti

Non ho mai usato ACE, ma ho usato Boost e Poco. Mi piace molto lo stile di codifica di Poco. I pacchetti sono coerenti e il codice sorgente è di facile lettura. Non sono pazzo come template spinta. Nella mia esperienza ho trascorrere ore a leggere come utilizzare spinta - pacchetto di serializzazione, puntatore della mappa contenitore tempo ecc- e poca lettura come utilizzare Poco roba. Direi che hanno un buon design e fanno uso di modelli dove necessario.

Sul lato negativo hanno documentazione delle API, ma non hanno una vasta documentazione su come si usa un pacchetto. Per questo di solito si guarda il codice sorgente di esempio, o la loro unità di test del codice sorgente.

Ho il HTTPServer lavorare su Windows / Linux senza errori evidenti.

Così gesso fino come esperienza positiva 1.

A me sembra spinta ha la più trazione per nuove librerie C ++ e il fatto che molti di loro si è accettato nel prossimo standard C ++ parla da sé.

Io uso ACE e aumentare me stesso e i motivi che le ho scelto sono che essi sono maturi (in particolare ACE) hanno una grande comunità di utenti forte che rende sicuro che saranno mantenuti e migliorati e che posso ottenere supporto professionale di buona qualità. Usiamo porvi rimedio per il nostro ACE sostegno / TAO e siamo molto soddisfatti.

Come ACE è una libreria molto più vecchio di Boost e uno dei suoi obiettivi è quello di supportare le piattaforme più esotici (come embedded) non fa uso di tanto sanguinamento tecnologia C ++ come Boost. Sto usando una miscela di ACE e Boost e sono molto felice con questa combinazione.

Non so bene il motivo per cui si mette wxWidgets nel match, in quanto è in gran parte una libreria grafica dell'interfaccia utente. Ma se ho dovuto fare alcuni progetti di interfaccia utente C ++ vorrei andare con QT , soprattutto perché questo è anche un ampiamente libreria usata (tutto il desktop KDE è costruito in cima ad QT) e, pertanto, ben tenuto e mi avrebbe accesso a una grande base di utenti per domande e supporto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top