C++ ACE vs Boost vs Poco vs wxWidgets

C++ ACE vs Boost vs Poco vs wxWidgets,c++,boost,ace,poco-libraries,C++,Boost,Ace,Poco Libraries,我对……和……有相当多的经验。我最近找到了图书馆。是否有人对它们有任何经验,以及它们在性能和可靠性方面与ACE、Boost和wxWidgets相比如何 我对用POCO代替ACE特别感兴趣。我无法让ACE使用VS2008编译x64目标。我主要使用ACE_任务,所以我想我可以用Poco的线程和消息队列来代替它们 我感兴趣的POCO的其他部分是HTTPServer、HTTPClient和LayeredConfiguration。这些库与Boost和wxWidgets中的库相似,但我试图将wxWidge

我对……和……有相当多的经验。我最近找到了图书馆。是否有人对它们有任何经验,以及它们在性能和可靠性方面与ACE、Boost和wxWidgets相比如何

我对用POCO代替ACE特别感兴趣。我无法让ACE使用VS2008编译x64目标。我主要使用ACE_任务,所以我想我可以用Poco的线程和消息队列来代替它们

我感兴趣的POCO的其他部分是HTTPServer、HTTPClient和LayeredConfiguration。这些库与Boost和wxWidgets中的库相似,但我试图将wxWidgets的使用限制在GUI组件上,而类似的Boost库是。。。困难


我对任何人都可以分享的关于POCO的经验感兴趣,无论是好是坏。

我从未使用过ACE,但我使用过Boost和POCO。我真的很喜欢Poco的编码风格。包是一致的,源代码易于阅读。他们不像boost那样疯狂。根据我的经验,我花了数小时阅读如何使用boost—序列化包、指针映射容器等—而很少花时间阅读如何使用Poco。我会说他们有很好的设计,并在需要的地方使用模板

消极的一面是,他们有API文档,但没有关于如何使用软件包的详细文档。为此,您通常会查看示例源代码或其单元测试源代码

我让HTTPServer在Windows/Linux上工作,没有任何明显的错误


所以把它记为一次积极的体验。

我时不时地使用POCO的部分内容,发现它是一个非常好的库。几年前我基本上放弃了ACE,但POCO包含了一些相同的模式——任务、反应堆等。我从来没有遇到过任何问题,所以我不得不假设它是稳定的

我喜欢的一些方面:

  • 它是一个集成良好的OOP层次结构,因此组件之间可以很好地协同工作。它有一种比Boost更具凝聚力的感觉,Boost相当于一顿饭

  • 源代码是可用的,非常清晰。您不需要花费大量的时间来理解它在做什么(ACE,至少在我上次查看源代码时是这样),也不需要成为模板向导(Boost)

  • <> >组件接近标准C++。异常源于std::exception;他们没有重新发明另一个字符串类,等等

  • 这是令人惊讶的全面。那里有比乍一看要多得多的东西

缺点是:

  • 这是个人偏好的问题,但是作者坚持每个头文件一个类的模式,因此最终会包含很多不同的文件

  • 有限的文件。主要是doxygen类型的API页面和一些指向源示例的PDF。它是可用的,但考虑到lib的大小,最初很难确定您是否充分利用了组件

  • 如果有一个活跃的社区建立在它周围,我从来没有找到它。这个软件包是由一些欧洲公司维护的,他们有一个wiki,但我觉得它没有那么活跃或有用


从各方面考虑,不利因素很小。我认为这是一个很好的库,当然会推荐它。

< P>对我来说,似乎Boost对于新的C++库有最大的吸引力,而且很多人都接受了即将到来的C++标准,这说明了它自己。 我使用ACE并提升自己,我选择他们的原因是他们成熟(尤其是ACE),拥有强大的用户社区,确保他们得到维护和提升,并且我可以获得高质量的专业支持。我们对ACE/TAO的支持非常满意

AS ACE是比Boost更古老的库,它的目标之一是支持更异国情调(如嵌入式)平台,它不使用如此多的流血边缘C++技术作为Boost。我使用的是ACE和Boost的混合体,我对这两种组合非常满意


我不太清楚为什么要将wxWidgets放在匹配中,因为它主要是一个图形UI库。但是如果我必须做一些C++ UI项目,我会去做,主要是因为这也是一个广泛使用的库(所有KDE桌面都是在QT之上),因此维护得很好,我可以访问大量的用户群来支持问题和问题。联系Steve Huston-他在ACE上工作了很长时间。当我在前一家公司与ACE共事时,我和他谈了我们遇到的问题,他很好,非常乐于助人。我们最终从他那里购买了支持,这是值得的。你的标题是误导性的,就像你试图比较苹果和橙子一样。我还是不明白你为什么提到wx和boost?POCO和boost之间有很大的重叠(例如共享指针、asio、程序选项)。类似地,POCO和WxWiDes重叠了很多。WxWiDebug确实定义了自己的字符串和集合类,以及许多文件/套接字的跨平台实用类。这是C++编译器支持STL(或模板)之前的几天的遗产,这是一个普遍的误解,WxWigGET只是GUI的东西。但还有更多。@Jere.Jones QT也是如此,但这并不意味着我会将其用于非UI内容:-)对我来说,QT的问题是moc。。。wxWidgets可以在没有moc之类的东西的情况下做很多事情。此外,wxWidgets可以作为单独的lib进行编译,因此与QT不同,您只能在应用程序中使用部分。(在这一点上我可能错了,但我想我没有错)