Poco:Why?
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的源代码看看,到处都是丑陋的宏定义,宏起了它应该的作用,也做了它职责以外的事情,比如下面:
程序员必须谨小慎微,否则就会遇到意想不到的问题——花大力气搞清楚宏会怎么扩展——然后怎么嵌套扩展……当然,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++的特征;功能强大又方便使用;可移植性好。
[原文在百度空间已经关闭]
标签集合/Tag clouds
C++
Symbain
轻松汇编
算法
论文学习
资治通鉴
Delphi
编程之美
Poco
MFC
Linux
IFC
知乎
汇编
数据分析
交叉编译
poco
j2me
android
XML
Java
DTD
飞信
零宽断言
诺基亚
联系人
编程
真值表
池西木
正则表达式
多线程
命令行
优化
stream
configure
cmake
VIM
UiAutomator
TDD
Symbian
Sqlite
SourceInsight
Python
MPAndroidChart
Kotlin
Flutter
Dokka
Chatgpt