为什么C++被公认为是最难的语言?
Posted C语言编程俱乐部
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么C++被公认为是最难的语言?相关的知识,希望对你有一定的参考价值。
目前世界500强中市值最高的几个IT公司多数使用C++。
如谷歌,苹果,微软,造硬件的更是如此,如amd的,英传达,英特尔,他们都有C++加速库。
C++难就难在你如果达到顶峰,像些公司一样,是非常难的。因为这些公司已经垄断了市场。
C++编译后你看不到源代码,只能看到反汇编的汇编代码,这个隐藏了源代码,可以起到软件保密作用,如我不给你源码,你想增长大的功能几乎不可能了(只能玩破解这种极小的增加),控制了源代码就垄断了一切。
后面升级,打补丁,都要听他们的,这样控制了整个生命线。像微软为什么这么多年一直保持这么高的市值,一方面软件是编译过的,你没有办法知道源码,另一方面使用盗版搞倾销,导致本国的本土公司的软件发展不起来,这样光是卖大客户就够赚钱了,如只需要雇一批律师,没事时给上市公司寄律师函(没有购买的),这样就钱就滚滚来了。而对个人盗版可以视而不见,甚至放任自由,这样在盗版打压下就没有了竞争对手。
美国这些巨头公司使用C++建立了整个IT业基础设施的垄断,如你学人工智能框架tensorflow,pytorch底层都是C++,学数据库底层也是C++,学机器学习库底层也是C++,学开发gui底层也是C++,学虚拟机底层也是C++,学驱动开发底层也是C++,学游戏引擎底层也是C++,而你想用C++开发出这些基础框架会非常难。如中国的wps使用C++开发的,就是经历了几十年才发展起来,中间差点被盗版整死了,后来发展云计算才发展起来。
你认为C++不重要,那是因为美国巨头公司使用C++建立了整个IT业基础设施的垄断平台,你只能用,如果你想逃脱重新开发,这个成本极高,因为C++是慢工出细活的语言,光是一个内存管理很多人都玩不转,经常在365天*24小时的服务器上出现内存泄露,需要经常重新启动服务器。
想要打造IT业的基础设施平台c++是绕不过去的,否则你只能做一些应用程序,如团购买菜这种,这种竞争激烈也没有什么利润要烧钱,而且别人很容易复制你的模式,没有技术门槛。
C++难就难在你想建立世界顶级水平和美国巨头竞争的软件就很难,因为会是一个巨大的工程量,而且研发时间和周期都无法保障,只能慢工出细活,一步步走,所以很艰难,如果运营不好,也不会很理想,主要是美国对软件基础设施垄断太厉害了。
不过未来随着中国国产化替代的需求出现,未来估计会有很多公司会加强基础设施研究,对C++人才的需求会进一步提高,而传统业务语言如Java可能因为互联网流量红利增长出现瓶颈会衰退,对系统级的C/C++人才的需求增长也是产业不断升级的表现。
我们大一直接学习的C++,当时也是感觉很难!
C++难相信很多初学者,甚至老手也有同样的感慨!
1、语法细节琐碎且复杂,特性多,奇技淫巧比较多,用好比较难,C++大佬就是用这种魔幻的特性写出代码实现魔幻的功能,还在不断增加中
2、多种编程范式、设计模式也复杂。面向对象、面向过程、模板元编程、泛型编程、函数式编程......
3、开发环境多样复杂,工程调试引入第三方库,一不小心报错就1000+,哈哈哈
......
送给C++学习者的一句话:
当你凝视深渊时,深渊也在凝视你!战术上藐视,战略上重视!
当你学习一年c++后,不论你c++学会没有,你再学其他语言就感觉容易很多!
C语言->C with class -> C++; 由C++的演变可以看出来,C++ 刚开始就是带类的 C 语言,C 语言和 C++ 的关系到底是什么呢?看过《Effective C++》这本书就知道,现如今我们提到 C++,都应该视其为一个庞大的「语言联邦」,最起码包含如下几个重要的组成部分:
● 面向过程编程
● 面向对象编程
● 泛型编程
● 元编程
● 函数式编程
● STL标准库
其中「面向过程编程」,正是 C++ 提供的向后兼容 C语言的部分。
C++演化(C++ 98 ->C++ 03 -> C++ 11 -> C++ 14 -> C++20 -> ..... )
C++ 相关书籍
书籍推荐:
《C++ Primer中文版》本书面向 C++ 语言的初学者,是一本很友好的自学教材。作者把 C 语言的基础概念和需要注意的编程细节说得很清楚,并且例程和习题丰富,相信认真读过之后,可以完成 C 语言入门这个目标。
《高质量程序设计指南》,墙裂推荐,这本书看得比较过瘾,书里面有一些编程规范的东西,对于写程序的人来说,还是不错的,可以培养好的编码习惯,加深了一些知识的巩固。比较实用,也适合面试前看看。
《Essential C++中文版》是一本内容不多但很实用的 C++ 入门书籍,强调快速上手与理解 C++ 编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只学到 C++ 的函数和结构,也会学习到它们的设计目的和基本原理。
《More Effective C++(中文版)》,该书围绕55条准则,每一条都介绍了一个可让你写出更好的C++程序代码的方法,并以特别设计过的例子详加讨论。
《提高C++性能的编程技术》,本书认为 20% 的性能缺陷将会占用我们 80% 的时间。因此我们把精力集中在最有价值的地方。本书详细讨论了临时对象、内存管理、继承、虚函数、内联、引用计数以及 STL 等一切有可能提升 C++ 效率的细节内容。无论你是相关领域的从业人员,还是 C++ 程序设计爱好者,或者是渴望突破编程瓶颈、大幅提升自我修为的程序设计爱好者,本书都必将使你获益良多。
《从缺陷中学习C/C++》从本质上来说,这就是一个 C/C++ 的错题集。全书中包括 63 个问题引发的错误,即书名中的缺陷。也是避坑指南。
《C++ Templates中文版》,深入了解现代 c++ 模板的实用书籍。本书不仅是对 C++ 模板的权威解释,而且本书还深入地介绍了其他一般的 C++ 思想。
《STL源码剖析》详细地了解 STL 的底层实现机制,同时也可以对常用数据结构,C++ 内存管理拥有更深的理解。
还有《C++标准库(第2版)》、《C++并发编程实战》、《C++编程思想(两卷合订本)》等,介绍的这些书我都买了,不过说实话,后面的几本都是泛泛的看了下,当作工具书。
另外,我这里准备了很多编程资料可供小伙伴学习参考,获取请访问主页简介下载~
涉及:C语言、C++、Windows编程、网络编程、QT界面开发、Linux编程、游戏编程、mysql数据库、OpenCV图像处理等等......
程序员编程入门资料:
程序员推荐学习书籍:
以上是关于为什么C++被公认为是最难的语言?的主要内容,如果未能解决你的问题,请参考以下文章