C++本身浩如烟海,C++的库更渺如云烟,几乎各个方面都没有落下,那么,为什么我们要用poco呢?   首先一个原因,就是poco自己所说的:“Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server and embedded systems.” —— 一个现代化、功能强劲的开源C++类库和框架,它可以用来创建在桌面、服务器和嵌入式系统上运行的网络应用和因特网应用。

  现代化,C++的年龄作为一个人才刚刚一个步入而立之年,但是作为一门语言,嗯……在Java / C#的历史当中,C++是作为史前动物出现的。那么,所谓的现代化,就是说这门语言可以像史前动物一样迟缓笨重,也可以像未来战士一样炫丽敏捷,但是无论史前与未来,它永远强大。什么样的C++类库不是现代化的?你可以打开MFC的源代码看看,到处都是丑陋的宏定义,宏起了它应该的作用,也做了它职责以外的事情,比如下面:

void CDiaTemplateEdit::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    DDX_Text(pDX, IDC_EDIT_NAME, tempAftEdit);
    DDX_Text(pDX, IDC_EDIT_COTENT, tempBefEdit);
}

程序员必须谨小慎微,否则就会遇到意想不到的问题——花大力气搞清楚宏会怎么扩展——然后怎么嵌套扩展……当然,MFC的宏是很有规则的,但是再好的恐龙,也不会比一只猴子敏捷。

但是你打开poco C++的代码,会发现namespace把代码整齐的规制的分门别类,从函数到模板,一切实现简洁明了,整个架构仿佛数学理论一样严密。这就是现代化的C++代码特征。这里倒不是说MFC不高明,而是时代所限,在MFC的年代C++编译器和标准化程度还远不如现在发达,引入那么多宏也是无可奈何之举;而poco能现在这样写出漂亮的代码,也和C++编译器的进化和标准化程度的提高有关,当然和作者本人更是有根本的关系。

  作为功能强大,个人觉得这方面poco并没有给我留下特别深刻的印象,因为C++自己就是功能强大,而功能强大的类库也是挺多的。不过要说Poco是一个功能强大和方便使用的类库,确实更加有特色。在最开始我们配置Poco工程虽然有五个步骤的配置,但是都是和编译器相关的,而不是类库本身造成的原因,可以说Poco基本上是一个拿来就能用的类库,而且要调用它的功能,也并不困难(这也说明Poco在设计上很有功力,能把强大的功能设计的易于使用),这一点,在后面介绍如何使用poco的时候,会更多的介绍到。

  对我个人而言,Poco是一个让C++有了类似VB或者Delphi一样友好编程接口的类库。

  还有一个不能不提的优点,和Poco名字的来历相关,Po两个字母就是来自Protable,可移植。Poco是一个可以在Windows/Linux上都可以编译的类库,可以用在服务器到嵌入式设备当中——说实话,我还只在Windows上用过,如果说XP到Win7算跨平台的话,那我也算体会过Poco的跨平台特性了。

  总之,Poco C++的优点就在于语言优美,体现了C++的特征;功能强大又方便使用;可移植性好。

[原文在百度空间已经关闭]