为什么这么多人惧怕C++?

C++在诞生之处,赢得了很多了口碑,但是随着编程大众化,以及编程语言的简单化趋势的发展,这门语言很多的弊端表现的越来越明显,特别让初学者选择c++作为初级入门语言,整体来说还是偏难。里面涉及到的语法规则太繁琐了,严格意义来说c++不适合做入门语言,但是目前大型的客户端软件框架使用c++作为基础开发语言还不在少数,根本原因又是啥?

是什么导致让c++让这么多程序员用起来不爽,不停的吐糟?

(1).先看历史方面的原因,c++是在c语言基础上面拓展出来的,另外的一套的不同的编程思想(面向对象)但是c++里面为了兼容C语言做了大量怪异的语法,使用的适合陷阱的确优点大,其实java的诞生也c++也是起到了一定的助推作用,c++语言虽然实现了面向对象的概念,但是保留了c语言里面太多的东西,还没有摆脱底层语言的痕迹,使用者还是需要关心指针的释放以及申请,开发者付出的成本还是偏高。

(2).繁杂的语法点,而且新的标准还在变化延伸,举个简单的例子隐式的转化,以及编译错误的处理,让很多初学者都晕菜,太多的语法细节让初学者在学习的时候,产生太多的疑惑,想差不多掌握这门语言,必须经历几次真正的项目的考验,才会对这个语言有点相对透彻的认识,基本要搞懂一个知识点需要付出比别的高级语言花费更多点的精力。

(3).类库的不完善,很多人都说,觉得c语言用的不舒服可以用高手写的类库,但是目前c++开源体系里面类库使用的适合参差不齐,给使用者带来了太多的使用成本,举个简单的例子很多stl模板里面的库函数的实现不支持多线程,就这一点让很多使用c++的编码者觉得使用起来相当的不方便。

列举了以上的几条是不是,难道c++即将被淘汰了?不推荐大家来使用了?

任何一个语言都有其存在的现实意义,一方面存在缺点,也会在另一个方向打开另外一扇门。

(1).c++保留了指针的概念,是最接近c语言的面向对象的语言,所以在执行效率方面比别的面向对象的语言更加高效,同时在兼容c语言,对于已经习惯于c语言开发的小伙伴切入到c++费力气会稍微少一些,而且在保证遵守面向对象概念的同时,还能通过指针直接操作底层的硬件,这就是为什么很多大型的软件框架使用c++的一个根本原因所在,在满足面向对象框架的同时在执行效率或者操作底层硬件方面也有其自身的优势。

(2).都在批判c++语言繁琐,语法混乱,但是同时造就另一个方面,熟悉了这套体系能打造出灵活性极强的框架,这也是为什么很多有经验的c++高手,还是愿意选择c++作为底层框架设计语言,规则再多掌握熟练了,解决问题的速度一样惊人,不建议小白直接选择c++作为入门语言,但是如果具备一定的编程基础了,再去学习使用c++,一样能做出不错的框架。目前流行的安卓底层框架很多都是基于c++搭建而成。

任何语言都有其自身不可替代的优势,不能简单的说行或者不行,只不过出发的角度不一样而已。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2016-02-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

编程思想:面向对象和面向过程

何谓面向对象?何谓面向过程?对于这编程界的两大思想,一直贯穿在我们学习和工作当中。我们知道面向过程和面向对象,但要让我们讲出来个所以然,又感觉是不知从何说起,最...

4235
来自专栏函数式编程语言及工具

scala泛函编程是怎样被选中的

      现在计算机技术发展现象是:无论硬件技术如何发展都满足不了软件需求;无论处理器变得能跑多快,都无法满足软件对计算能力的需要。按照摩尔定律(Moore...

2117
来自专栏C语言及其他语言

【图书】嗨翻C语言

内容介绍: 你能从这本书中学到什么? 你有没有想过可以轻松学习C语言?《嗨翻C语言》将会带给你一次这样的全新学习 体验。本书贯以有趣的故事情节、生动形象的图片...

3215
来自专栏老九学堂

【拓展】Hello World你以为你知道?

Hello Wold你造(知道)么?我知道啊,不就是你好世界么。呵呵..... 今天我们来讲讲到底什么才是Hello World!!别在很傻很天真的说你好世界了...

3305
来自专栏程序人生 阅读快乐

Python高性能编程

Python语言是一种脚本语言,其应用领域非常广泛,包括数据分析、自然语言处理、机器学习、科学计算、推荐系统构建等。 本书共有12章,围绕如何进行代码优化和加快...

1062
来自专栏java一日一条

记一次 Google 面试经历

这是我上周去面试的地方。很顺利,我觉得——至少我认为我已经尽我所能,并且无论发生什么事情对我都是有帮助的。

2801
来自专栏Python小屋

Python教学与学习过程中应注意的九句话

1、Python是以快速解决问题为出发点的,不建议把太多时间花费在底层语言细节上,例如内存分配与管理,千万别像教/学C语言一样教/学Python。

1064
来自专栏spring源码深度学习

业务开发工程师,你真的愿意做一辈子 CRUD boy 吗?

你是不是觉得数据结构和算法,跟操作系统、计算机网络一样,是脱离实际工作的知识?可能除了面试,这辈子也用不着?

1.8K1
来自专栏Java学习网

为什么程序员总是写糟糕的代码?这3个原因

我最近一直在想我们作为一个行业为什么总是产出糟糕代码的原因。 1.明显原因…… 我一下子想到的最明显的原因是,有好的程序员,也有不那么好的程序员,有的人技术水平...

3586
来自专栏企鹅号快讯

零基础入门Python,值得推荐的几本书籍!

于我个人而言,我很喜欢Python,当然我也有很多的理由推荐你去学Python我只说两点.一是简单,二是写Python薪资高.我觉得这俩理由就够了,对不对.买本...

26910

扫码关注云+社区

领取腾讯云代金券