作者khoguan (Khoguan Phuann)
看板C_and_CPP
标题[FAQ集] 基本:古董级的 C++ 还有竞争力吗?
时间Wed Sep 7 23:06:46 2005
ptt.cc BBS 站 C_and_CPP 板 FAQ (0.1版)
基本中的基本问题
Q: 像 C++ 这麽古董级的语言,能与更新更先进的语言竞争吗?
A: (本则原作者 Bjarne Stroustrup
http://www.research.att.com/~bs/bs_faq.html#advanced
引文撷取自叶秉哲先生的中译。
http://william.cswiz.org/CPPbook/bs_faq.html)
从「把 C++ 唤作古董级语言」这句话就嗅得出你有偏见。嗯,回到正题。
会问这问题的人,多半会把 Java 或 C# 视为更新更进步的语言。我虽然不
想做语言之间的比较,但我必须指出:「新」未必代表「更好」,你看,Java
和 C# 的观念都源自 1980 年代的 OOP 思维,甚至比早期的 C++ 更沉醉在
OOP呢。
但自从 1987 以来,C++ 的发展及编程技术早已汇集模板、静态多型、泛型
编程、多维编程(Khoguan按:multiparadigm programming)……等,远远
超出某些被过度神化的专属语言的视野。另一个重大差异是:C++ 对用户自
订型别照顾到几乎与内建型别差不了多少,尤其是加上模板、建构式、解构
式等设施之後,C++ 程式员更可发挥更高等的编程及设计技术,以我个人看
来,C++ 远远胜过那些成天隔岸叫阵的对手。
标准 C++,以及所支援的设计与编程风格,要归功於函数式程式语言(functional
language),尤其是 ML。ML 型别推导机制的早期变形,启发了模板的设计;
函数式语言之中更强大的技术则启发 STL 及函数物件。可惜的是,函数式语
言阵营错过了物件导向思潮热,语言及工具很少受惠於成熟的大型产业经验。
我并不认为垃圾回收功能是界定语言「先进」与否的唯一标准,尤其是像 C++
这样提供了极富弹性又有效率的记忆体管理机制,即使没有垃圾回收器,也可
消弭资源漏失现象。当然啦,如果你不同意,想要替 C++ 装上一个垃圾回收器,
市面上也有许多产品任你选择。
edited by Khoguan Phuann
-----------------------------------
敬请指正错误,或提出更合适的答案。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.227.252.33