中国开发网: 论坛: 程序员情感CBD: 贴子 246393
holly
设计与发展
C++0x 将几乎 100% 地与现在的标准 C++ 兼容. 你现有的代码, 如果他们相容于现有的 C++98 标准的话, 有非常非常大的可能性是符合 C++0x 的. 这个相容性的最好的保证是 C++ 标准委员会的成员全都需要负责比你现有的老得多的代码. 不过, 考虑到将来, 我们认为 C++ 的发展是必需的, 而且我们希望将来的代码能更容易写, 更加优雅, 更加容易维护, 并且可能比现有的运行得更好.

我们致力于兼容性, 也认识到付出某些小小的不兼容的代价可能可以得到很大的好处. 一个明显的例子就是一个新的关键字. 我们努力避免不兼容性, 但是一个绝对的 "没有不兼容性" 规则的代价是 "不能改变" 或者为新的特征引入模糊的语法表达. 我个人非常不喜欢 workarounds, 比如通过一个宏来提供一个一个 __XXX 关键字:

#define XXX __XXX

workaround 与关键字 XXX 相比较, 通过额外的复杂性的引入, 满足了那些不想修改包含 XXX 的代码的用户, 但这是以使得社区的其他人不方便, 给学习者增加复杂度, 以及给予那些不希望 C++ 好的人一个廉价的笑话为代价的. 当然, 也会有某些人使用了 XXX 并且无法修改代码的情形, 但是在那种情形下也有别的选择 - 不要升级到新的编译器或者使用一个向后兼容的编译器开关.

C++ 的重点在于已经成为其主要力量的通用特征 (特别是类).


语言发展的思想往往与设计语言的思想形成对照的说法是一种错误的割裂. 语言的发展就是设计. 它与想象中的 "从头开始" 的设计不同. 它受到更多的来自于已经存在的代码的制约, 同时受益于更多的直接应用经验 (反馈). 回到强制兼容性的困难这一点上来, 我们获得了被一个巨大的社区相对容易地接受和新旧代码之间的平滑的互操作性的优势. 通过选择发展, 我们可以避免由于一种有用的编程技术仅仅是因为在我们的经验或者关注范围之外而被意外地去除了的这种情形的发生.

语言的设计会围绕这被很小的记号问题. 不过, 如果一种语言的特征能够带来一种对其用户有效的新编程方式的话, 它才是最有意义的. 就 C++ 来说, 那意味着语言和标准库的改变必须带给主流 (产业和教育) 以新的编程和设计技术. 只有这类特征才是我们认为真正值得提供的.

小结一下: C++0x 的目标是受到强有力的兼容性要求制约的发展. 发展的目标是提供主要的实际的增强.
若你在年轻时上过水木, 它会一生跟随着你, 如一场浮动的盛宴

禁色和禁果仍被保存吗?
这世界有否给潜移默化?
离过家回了家仍住中环吗?
-----信有带到新居里烧吗?

一切美好的都会消失

人要是没有理想, 跟咸鱼有什么两样?

“把人们引向艺术和科学的最强烈动机之一,是要逃避日常生活中令人厌恶的粗俗和使人绝望的沉闷,是要摆脱人们自己反复无常的欲望的桎梏。一个修养有素的人总是渴望逃避个人生活而进入客观直觉和思维的世界。”

不要忘了,这个世界穿透一切高墙的东西,它就在我们的内心深处,他们无法达到,也接触不到,那就是希望。(FROM《肖申克的救赎》)

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录