- 论坛徽章:
- 17
|
本帖最后由 myworkstation 于 2013-07-14 19:02 编辑
1、谈谈这些年来C++规范演变给您带来的感受
C++标准差不多从c++98标准以来没什么大变化,c++2003才是真正的c++98(是对c++98的修订版,没有明显变化)。boost为c++标准的演变提供了巨大的作用,这些年来由c++引发的模板技术热潮在其它语言中也遍地开发,虽然不再阳春白雪,但真要搞懂template meta programming还是很高深莫测的。TR1算是很实用的变化也适应潮流发展,奈何推广过于有限,教程书上也少着笔墨,导至新手认识不足,影响了其对库的认识和使用。新人不用,老手也不用,对老手来讲boost更完善,TR1反而像鸡肋。C++ 0x算是不小的变革,但由于有过重的历史包袱反而显得C++更为复杂,新加入的Variadic templates使的模板更加强大,bind使用不再受限止,也为tuple实现提供了便利,function对象以及lambda表达式的引入让C++更灵巧也更动态,thread引入为c++在下一波并行计算发展中提供了基本支持,promise和future的引入使的语言在并行运算设计抽象上更上一层。右值引用对stl来讲绝对是最大的福音,对象copy的成本以及临时对象的成本将会极大的得到改善。智能指针,auto,decltype,为对象管理和编码带来极大的便利性,并且引入了统一初始化方法。由于C++本身的开放性,在C++ 0x这次大变革中引入了太多的特性,也拒绝了很多特性,总得来讲如果只使用C++ 0x标准来写程序那么C++本身是复杂库应该是降低了,但由于旧代码的存在和学习曲线过高的问题,短时间内是不可能看到这一点能带来的多大的影响了。
2、C++作为一门争议性很大的语言,谈谈您这么多年来工作中的使用经验
由于Windows事实上在国内的霸主地位,VC++曾独霸国内C++领域多年,其非标准的行为以及MFC的设计方法影响了一大批C++程序员,使得许多人不知道真正的C++是什么,只以为VC++就是C++。近年来C++的发展有所改观。但VC++的风格在国内的C++的社区中依然显的浓重。早期的C++标准库系统相对C#,JAVA来讲太弱了,这让C++在很多时候失去了应用的机会,现在C++发展应该说受其它的语言挤压是最利害的。boost在很大程度上改善了C++的境遇。工业级且大而全的库让C++加速开发周期的同时保证了交付质量。
3、口水话题,你为啥使用C++,说说它的优劣之处
C++是唯一能同时满足:性能、系统接口一致性、面向对象、相对完善的库支持这几个特点的语言,所以应用的场景依然广泛。带来这些好处的同由于语言本身的复杂性导致学习曲线过高,让多数初学者进门而不入其内反而心生敬畏离其而去。而且由于编译器对标准理解不一,扩展也比比皆是,从而为C++的可移植性也提出了不小的挑战,经常性的在VC++,g++这两个编译器间会出现不一至行为。总得来讲C++对人的要求过高,成为事实上的expert friendly语言。但反过来讲把C++学好用好其实就是一部计算机的发展史,对计算机的理解将会豁然开朗,现在Java,C#等抽象层次过高的语言已经屏蔽了用户深入理解计算机的途径。深入理解计算机是所有语言的根本,当今天下唯独C/C++最有优势。 |
|