C++的愤青
来源:互联网 发布:澳洲航空 知乎 编辑:程序博客网 时间:2024/04/28 06:16
C++98中曾经的一些stl class的接口过于晦涩,例如最最最基本的string,其接口简直可以说是摧残人性。C++的list等几乎所有需要分配额外node的容器都是通用的,但是并非高效率的,在高性能的情况下并不适合,不如使用linux中的list_head这种预先需要被插入元素有特定数据成员的方法,简洁,高效仍不失为一种优雅。
C++0x 新增加的一些libs越来越沦为一些C++语言Guru的卖弄技巧的玩物,脱离平均水平的C++程序员越来越远。
无休止的使用template,造成语义模糊,难以理解,大量的语言dirty角落的细节背景,各种编译器的trick,编译时间增加,代码膨胀,无法调试,仅仅满足编译器编译成功,没有考虑到很难有合适的工具来解析整个源代码文件来生产tags,references等,难以跟踪bug,这些都是过渡追求技巧带来的直接后果。实际上更加进一步降低了C++的生产力,特别是非guru们。
异常处理仍然过于复杂了,如果要实现强异常安全,或者基本异常安全在C++中都不容易。也就是guru们说的写“异常安全”的代码太难了,看看stl::stack的pop方法签名就明白了。但是,如果你不是开发核电站控制程序,其他大部分情况下你只要不自己抛出异常,那么可能的唯一情况就是内存异常,这种情况为什么不“难得糊涂”呢?crash就crash吧,最多打印一行遗嘱,而由此带来的代码简洁是一种不错的选择。
C++的内存问题从来都没有宣传的那么恐怖,内存问题过于夸大了,使用合适的工具,宏替换等手法,可以检测出绝大部分的内存泄漏,倒是一些系统资源很难检测,没有确定性析构的语言更加没有什么好方法,C++的RAII是一个更好的选择。
C++最需要的不是GC,而是一些朴实的,不卖弄语言技巧的,跨平台库的,也许是准事实标准的库。能够有朴实的interface,同时内部的实现也通俗易懂,哪怕写法不是那么的优雅,但是越容易,简单的东西就越有市场。
c++需要一个绝对权威,能够控制整个C++的方向,并紧密联系群众,体会民众疾苦。
- c++/C 的用户手册
- c的
- C,C++,C#,java的区别
- C,C++,C#,java的区别
- C,C++,C#,java的区别
- C&C++(1) - extern "C"的作用
- Awesome C/C++ (了不起的C/C++)
- 【linux/c/c++】linux C的开发
- C、C++、C# 三者的关系
- 完美的C++:C++/CLI
- c/c++/java的网址
- 完美的C++:C++/CLI
- 完美的C++:C++/CLI
- [c/c++]函数的隐藏
- 完美的C++:C++/CLI
- C++/C试题的答案
- C#(C Sharp)的特点
- c、c++、java的区别
- C/C++是程序员必须掌握的语言吗?
- 一个网上下载的ftp类(修改了其中几个bug)
- 暴风3巨头(^_^)
- 最近的学习方向
- 中国经济为着陆做准备
- C++的愤青
- 技术过时又如何?
- 一个测试,马上知道你的年龄!超准哦!
- 24点算法
- 11月23日spring mvc复习培训日记
- 字符串截取的问题
- 小议HashMap
- 美国联邦2007夏令时改变详述
- Windows2003的7003错误(LanmanServer)