关于C++,一些不得不说的话

来源:互联网 发布:淘宝直通车登录 编辑:程序博客网 时间:2024/06/10 00:33

其实我很反感去讨论某某语言的优劣问题。但是最近看了很多对C++0X标准 和旧C++评头论足的文章,对一些说法甚是不以为然,故凑凑热闹,对其中一些观点发表一下自己看法。

这是我从某博客上面看到的文字:

从上一个标准C++98发布到现在,将近有10年的时间了,在这十年的时间里编程语言发生了翻天覆地的变化,首先是JAVA异军突起,然后是微软借助.NET平台的优势推出了C#,C++已经不再是编程语言中的明星了,它被挤下了神坛,慢慢沦为边缘编程语言。这中间的主要原因并不是C++的语法落伍了,而是使用C++开发软件效率低下并且容易出错。效率低下的原因是因为C++缺少库的支持,C++只提供了编程语言的基本功能,缺少强有力的库支持,比如字符串处理就一直是C++的诟病。容易出错的原因是C++从C继承了动态内存分配和指针,这一点被认为是软件发生错误的根源,虽然C++引入STL来解决这个问题,比如用vector代替内置数组可以防止内存泄漏,用迭代器代替直接下标操作可以防止地址越界。但是STL毕竟太简单了,比如字符串处理就只有一个简单的string,比起Perl差远了。C++唯一的优势就是速度,但是随着处理器和内存的快速发展也慢慢被遗忘了,所以就沦落到了现在的地步

效率低下的原因是因为C++缺少库的支持,C++只提供了编程语言的基本功能,缺少强有力的库支持,比如字符串处理就一直是C++的诟病”:

关于这个,我想问问作者:汇编语言效率低下是不也是因为“缺少库的支持”?那机器语言呢?也需要“库的支持”么?!

容易出错的原因是C++从C继承了动态内存分配和指针,这一点被认为是软件发生错误的根源,虽然C++引入STL来解决这个问题,比如用vector代替内置数组可以防止内存泄漏,用迭代器代替直接下标操作可以防止地址越界。”:

关于这个,我不想再多说了:请不要为自己的错误找借口!如果你认为动态内存分配是错误的根源,那么整个计算机软件系统都是错误,因为他们都要“动态内存分配”。

但是STL毕竟太简单了,比如字符串处理就只有一个简单的string,比起Perl差远了

?!是Perl比起C++差远了吧?你要这么比,C++将一无是处,怎么不拿C++在内存操作的灵活性上和Perl比比呢?

 

 

最后在写这么一两句话:如果你的工作只是写个什么管理系统,OA系统之类,C++的确是不适合你,但注意,是不适合,并不说明C++已经落伍了。为什么不适合呢?说句难听点的话,那是因为你的工作技术层次太低,中国有句古话,叫“杀鸡焉用牛刀”。如果你的工作是写某语言的编译器,或者是开发什么虚拟机之类,C++绝对是不二的选择

原创粉丝点击