美文网首页程序员
C++最强大的敌人是它的过去式

C++最强大的敌人是它的过去式

作者: 程序员__ | 来源:发表于2019-01-06 14:17 被阅读49次

在过去的几年里,我们谈到了关于“C++的复兴”。我们不得不承认微软是这项运动中主要参与者,我记得在Craig Symonds和Mohsen Agsen在视频中提到了这件事。

微软写了许多文章来宣布C++的回归,并且众多微软专家如Herb Sutter在很多会议上解释了为什么C++会重新崛起,主要原因是现代C++的推广使用。而同一时间。C++11标准的认可使我们重新把C++作为一门新的语言来讨论。

因此,让开发人员相信关于新的C++已经简化了过去许多令人失望的用法,而是使用了一种改进了C++代码的全新方法不是一件容易的事情。

让我们以内存管理为例,这也许是C++中最受争议的地方。多年来,对象的分配是通过new这个关键字来完成,开发者必须牢牢记住在代码中某些地方调用delete。“现代的C++”解决了这个问题并推进了共享指针的使用。

但是,关于现代C++的推广光靠活跃的C++社区和知名专家是不够的。有一句谚语是:“习惯成自然。”当你努力向某些人推介某个语言或者工具,他有可能觉得你有道理但是却不会照着你想的做。

这就是在C++上发生的事情,我们中的许多人仍然坚持使用new和delete,而这种影响还要持续很多年,而且许多非C++的开发者也会一直通过调用复杂的内存分配方式来使用这门语言。

C++的过去影响了很多东西甚至从项目的创建之初,许许多多的开发者仍然认为这门语言非常复杂。

C++的过去是如何在影响着它?

为了发现这点,我们来做一个测试,我们在网上搜索“C++对象分配”,查找第一个链接便是“C++中是怎样分配堆对象的?唯一的方法就是用new…”。这很令人吃惊,而搜索页前面谈论共享指针、智能指针的文章几乎没有。

另一个有趣的测试是到到任何大学的图书馆去找一本关于C++的书,去阅读关于对象分配的那一章节,你基本上不会找到关于“共享指针、智能指针”的介绍。

而C++开发者想要了解它们,一般查找的资源是来自于“C类”而不是现代C++。

如何预防C++的过去所带来的影响?

这里并没有特别有效的解决方案。我们可以希望C++编译器通过发出一些关于最新更新的启用和弃用警告,就象过去的字符串操作一样(strcpy、strcat…),但这个解决方案也不是根本的解决之道。现代C++新技术的推动需要学习和实践。

另外一个解决方案是将“C++”更名为“现代C++”,这个解决方案很简单也很有趣。在网络上搜索“现代C++”,那么在我们谈论的现代C++的对象分配问题上,第一个链接就谈论了“智能指针”。

因此,在未来的C++推广之路上,我们可以提醒新的C++开发者,在网络上查找关于C++的资料时,“现代C++”和“C++”会是两个非常不同的搜索结果,前者代表C++的最新用法,而后者只代表过去。

推荐C语言C++学习交流群:466572167

本文翻译自The first enemy of C++ is its past.

相关文章

  • C++最强大的敌人是它的过去式

    在过去的几年里,我们谈到了关于“C++的复兴”。我们不得不承认微软是这项运动中主要参与者,我记得在Craig Sy...

  • ​​​强大的敌人——宿命​​

    强大的敌人——宿命 看完许多微信订阅号里那些好的小文章,好久不曾...

  • 最强大的敌人

    6月17日两场小组赛仔细看来,有着惊人的相似之处。先说加纳队VS美国队,历史上加纳队曾在世界杯赛中两次以2:1的比...

  • 感谢强大的敌人

    这是最近最强烈的感受。 如何让自己变得强大?拥有一个强大的敌人。这个敌人甚至都可以不是个人,比如一个艰难的目标。 ...

  • 最强大的敌人

    哎呀!我输了 好久没有日更了,这次输的心服口服,常态就是一到假期就颓废。 安逸而幸福的生活总会让人想溺在里边而提不...

  • 读书笔记 |Google C++编程风格指南

    一、背景 每一个C++程序员都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得...

  • 【运维经】第9章——rust(cargo)加速

    rust(cargo)加速 因为本人主营业务是C++,那么就要更了解C++的敌人——RUST(听说她要取代C++)...

  • 时间是最残忍的敌人

    已经有几个月不来简书了,因为不知道说啥。见惯了这世界的虚伪丑恶,你发现竟然已经习惯了。爱情果然使人成长,我竟然受它...

  • 我们是最亲密的敌人

    就像我们不能理解为什么男生爱游戏,为什么大人总爱唠叨一样,女生之间的亲密无间,相爱相杀外人也永远理解不了。 那一年...

  • 私欲是最顽强的敌人

    我们一生中无论从事什么工作,最终都是在为改善生存环境、社会环境、家庭环境而努力,所以有人说人生如战场,勇者胜。其实...

网友评论

    本文标题:C++最强大的敌人是它的过去式

    本文链接:https://www.haomeiwen.com/subject/ixjsrqtx.html