C++?你疯了吗?

作者:Don Marti

大约两年前,程序员 Dan Egnor 在 advogato.org 上发帖提问:“为什么 C++ 和自由软件不融合?” 他指出,热爱自由的软件开发者往往会远离 C++。

但是,他补充说,虽然 C++ 是一门庞大而复杂的语言,具有“可怕的陷阱和简单的错误特性”,但它是标准化的,并提供了良好的灵活性和性能。 而且,他写道,“它的标准库包括 STL,它在能力、灵活性和效率方面都远远超过 C 语言世界中的任何东西。”

或者,正如许多人所认为的那样,C++ 是否代表了两全其害,介于 C 语言的简单性和控制性与 Perl 和 Python 的几乎全自动性之间的贫瘠中间地带?

然而,今天,也许是时候重新审视这门备受诟病的语言了。 主要有两个原因,关于标准 C++、模板等书籍在我的待读列表中高于那些更具吸引力的关于下一个伟大的脚本语言的书籍。 首先,工具很好。 GNU 编译器集合 (GCC) 中的 C++ 支持正在被积极清理,二进制文件越来越小,并且 3.2 版本提供了一个稳定的应用程序二进制接口 (ABI),这将有助于部署用 C++ 编写的软件。

除了 GCC 之外,还有许多其他好的工具可以帮助使用 C++,正如 Cal Erickson 在第 34 页指出的那样。 Cal 进行嵌入式开发,并且那篇文章在嵌入式部分,但他的开发策略——尽可能多地在您的工作站上工作——意味着该文章对任何 C++ 程序员都有用。

其次,新的或新近发布的 C++ 项目,例如 IBM 贡献的 Xerces XML 解析器,意味着您的新 C++ 代码可以利用大量已经过测试、支持的功能。 有关示例,请参见 John Dubchak 在第 50 页上的文章。 随着越来越多的公司开始共享内部代码,诸如 C++ 之类的公司技术偏好在外部变得越来越重要。

如果您正在寻找应用您的软件开发技能的地方,Len Kaplan 有一个很棒的地方——您当地的博物馆。 在第 89 页,他介绍了为博物馆展览创建应用程序的独特挑战和回报。 而且,您也可以从那篇文章中获得一些 C++ 和 XML 提示。

另一种思想流派赞成用 C 语言进行面向对象编程。 有关内核中如何发生这种情况的示例,请参见 Greg Kroah-Hartman 在第 28 页的 Driving Me Nuts 专栏。 你的大脑在你的头脑里,所以人们不会看到你阅读他的代码后留下的妊娠纹。

但说到大脑,别担心。 我们不能让开发问题溜走,而至少没有一篇常规的 C 语言文章,你会很高兴地知道,解释封面上测试对象脑电波的性能关键部分是用 C 语言编写的。 在第 56 页上欣赏 Sam Clanton 的 Matlab-to-C 移植建议。

Don MartiLinux Journal 的主编。

加载 Disqus 评论