如果提到一种语言,可能说这辈子都不敢说精通,有相当数量的人辉选择c++,看看大家如何评述c++,
c++这门语言比较特殊,是大家的人类不能精通的一门语言,如果精通了基本确定这人是类了。
记得有人说过这么一句话,要学会C++几乎相当于学会了好几种语言,C语言,OOP,STL等,每一个都够你学上几年。
c++为了增加运行过程的安全性,严格控制编译的每个技术细节,这下可是苦了,入门的或者技术底子不厚的程序员,每一次重构模块或者大的模块升级,简直就是经历一次噩梦。重构了几百个函数,基本上能产生上万个编译错误,笔者曾经用chromium的javascript的引擎V8代码直接对接网页播放器,为了提高性能用c++层面对接,在一次升级中,发现V8中的基础接口都能大规模的变动,50多个函数需要重构,整整一天一动没动才编译过,晚上做地铁回家直接倒床就睡一觉到天亮。这就是c++经常带来。
每次经历这种事情之后都会觉得C++还需要继续提升,就会拿出c++的泛型编程以及类库的实现重温一遍。还发现一个现象,在开源项目中只要是C++写的代码,重构的概率会特别高,同样是一个代码模块这次拿下代码研究的时候是这么实现的,没过几天梳理代码的时候发现实现方式又有写的变化,看明白了发现功能基本一致,实现的模式却不尽相同。google的工程师这种事情干的太多了,研究过chromiun源码的小伙伴估计会有这种印象。
c++的版本还在不断的更新,每次更新都会带来大量的新鲜玩意,当你还没适应完上一个版本的规则的时候新的版本又会带给你新的冲击。c++中泛型编程变幻无穷,为了防止内存泄露用上的类模板,消耗的心思都快赶上自己去管理内存了。所以造成一种感觉在写代码的时候,永远觉得还会有更好的实现方式,所以在重构次数最多的编程语言中,c++频率是最高的,在这种痛苦的中会产生难以割舍的感情。
做的时间越长,越是觉得这门语言的精深,越是觉得自己掌握的浅薄。笔者前几天查看了实际编程语言排行榜,发现c++稳居前三,不能只看到国内的排行榜,放眼全球c++在编码界还是不折不扣的强势语言,更多是在底层搭建框架,我们大家现在使用的手机的框架层很大一部分是c++实现,很多软件的底层框架都是c++来担当。
目前世面上恐怕没有一种语言,执行效率高同时又具备丰富的编程框架。正是这两种特性,所以大多数的底层框架设计c++是不二人选,其实c++语言本身暗合了优秀程序员自身很多特质,优秀的程序员都喜欢不断尝试更优的程序,会不断的重构自己的代码,而c++自带这么多的组合,不得不在写完代码之后回过头来看看还有没有更好的方法。优秀的程序员还会喜欢迎接挑战,c++提供了最优的平台,在这种相爱相恨中,变得更加紧密。
很多的架构师都对c++语言爱不释手,喜欢拿C++里面的思想来磨练自身的基本功,做的时间越长越觉得神圣。所以很多高手一般都不入门语言选择c++,可能直接把很多优秀的编程苗子挡在大门之外。