繁体   English   中英

ACE vs Boost vs Poco vs wxWidgets

[英]ACE vs Boost vs Poco vs wxWidgets

我在ACEBoostwxWidgets方面拥有丰富的经验。 我最近找到了POCO库。 有没有人对它们有任何经验,以及它们在性能和可靠性方面与ACE,Boost和wxWidgets相比如何?

我特别感兴趣用POCO取代ACE。 我无法让ACE使用带有x64目标的VS2008进行编译。 我主要使用ACE_Task,所以我认为我可以用Poco的线程和消息队列替换它们。

我感兴趣的POCO的其他部分是HTTPServer,HTTPClient和LayeredConfiguration。 这些库与Boost和wxWidgets中的库类似,但我尝试将wxWidgets的使用限制为GUI组件,而类似的Boost库则很难。

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

我一次又一次地使用POCO的部分,发现它是一个非常好的lib。 我在很多年前基本上放弃了ACE,但是POCO包含了一些相同的模式 - 任务,反应器等。我从来没有遇到任何问题所以我必须假设它是稳定的。

我喜欢的一些方面:

  • 它是一个非常好的集成OOP层次结构,因此组件可以很好地相互协作。 它具有比Boost更具凝聚力的感觉,而Boost则相当于零食。

  • 源代码可用且非常清晰。 您不需要花费大量时间来了解它正在做什么(ACE,至少最后我查看了源代码)或者是模板向导(Boost)。

  • 组件贴近标准C ++。 异常来自std :: exception; 他们没有重新发明另一个字符串等等。

  • 令人惊讶的是全面的。 乍看之下还有很多东西。

不足之处:

  • 个人偏好的问题,但作者坚持每个头文件模型一个类,所以你最终包括很多不同的文件。

  • 有限的文件。 主要是doxygen类型的API页面和几个指向源示例的PDF。 它是可用的,但考虑到lib的大小,如果你正在充分利用组件,最初很难确定。

  • 如果围绕它建立了一个活跃的社区,我从未找到它。 该软件包由一家欧洲公司维护,他们有一个wiki,但我没有发现它是活跃的或有用的。

考虑到所有因素,缺点是很小。 我认为这是一个非常好的图书馆,肯定会推荐它。

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

从消极方面来看,他们有API文档,但他们没有关于如何使用包的大量文档。 为此,您通常会查看示例源代码或其单元测试源代码。

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

所以把它作为一个积极的经验。

对我而言,似乎提升对于新的C ++库来说是最有吸引力的,并且它们中的许多已被接受进入即将推出的C ++标准的事实说明了一切。

我自己使用ACE和Boost,我选择它们的原因是它们已经成熟(特别是ACE)拥有一个强大的用户社区,确保它们得到维护和增强,并且我可以获得高质量的专业支持。 我们使用Remedy IT来获得ACE / TAO支持,并且非常满意。

由于ACE是一个比Boost更老的库,其中一个目标是支持更多异国情调(如嵌入式)平台,因此它不会像Boost那样使用如此多的前沿C ++技术。 我正在使用ACE和Boost的混合物,我很满意这种组合。

我不太清楚为什么你把wxWidgets放在匹配中,因为它主要是一个图形UI库。 但是,如果我不得不做一些C ++ UI项目,我会使用QT ,主要是因为这也是一个广泛使用的库(所有KDE桌面都建立在QT之上),因此维护良好,我可以访问大型用户群提问和支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM