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

其实我很反感去讨论某某语言的优劣问题。但是最近看了很多对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++绝对是不二的选择

Optimized C++: Proven Techniques for Heightened Performance 1st Edition Paperback: 388 pages Publisher: O'Reilly Media; 1 edition (May 23, 2016) Language: English ISBN-10: 1491922060 ISBN-13: 978-1491922064 In today’s fast and competitive world, a program’s performance is just as important to customers as the features it provides. This practical guide teaches developers performance-tuning principles that enable optimization in C++. You’ll learn how to make code that already embodies best practices of C++ design run faster and consume fewer resources on any computer—whether it’s a watch, phone, workstation, supercomputer, or globe-spanning network of servers. Author Kurt Guntheroth provides several running examples that demonstrate how to apply these principles incrementally to improve existing code so it meets customer requirements for responsiveness and throughput. The advice in this book will prove itself the first time you hear a colleague exclaim, “Wow, that was fast. Who fixed something?” Locate performance hot spots using the profiler and software timers Learn to perform repeatable experiments to measure performance of code changes Optimize use of dynamically allocated variables Improve performance of hot loops and functions Speed up string handling functions Recognize efficient algorithms and optimization patterns Learn the strengths—and weaknesses—of C++ container classes View searching and sorting through an optimizer’s eye Make efficient use of C++ streaming I/O functions Use C++ thread-based concurrency features effectively
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值