本文转载自面包板社区 作者: 赵岩/Serdar等
原文链接请点文末阅读原文
01、为何C语言不会过时评估任何一门编程语言,都是招人骂的。永远是这般。就像是春寒料峭的季节,街上穿棉袄和穿单衣的擦肩而过,双方必定是同期在心里显现了两个字:“傻逼!”这个在心理学上有个专业的名字:叫做“二逼”现象!
那我为啥还要做这个挨骂的事呢?做为《C语言点滴》《drop of knowledge of C++》书籍的作者,《C语言新思维,第二版》的译者(赵岩老师),我觉得我有责任系统的介绍一下这本语言,他的特点,还有他的将来。这个问题对非常多刚才踏入程序猿这个行业的新手至关重要。由于她们有深深的担忧,万一C语言就像Fortran那样过时了怎么办?
先上一个表,这个便是著名的TIOBE语言排行榜。日前它是一个最权威的一个语言流行度的排行榜。
就在5月,时隔5年,C语言再次领先Java,荣登TIOBE编程语言排行榜第1!
排名前十的分别是:
C,Java,Python,C++,C#,Visual Basic.NET,JavaScript,PHP,SQL和R。
有无发掘亮点?没错, 第1易主了,C 语言反超了 Java 。要晓得,C 语言上次第1还是在 5 年前,是什么原由让其“西山再起”了呢?时隔五年,C语言重回榜首。
据TIOBE CEO Paul Jansen 的猜测,“这听起来可能很难以置信,然则某些编程语言确实能够从这种状况中受益。"
嵌入式语言(C 和 C++ 等)越来越流行,由于它们被用于医疗设备软件中。对所有的编程语言,她们的最后的目的其实便是两种:加强硬件的运行效率和加强程序员的研发效率。
遗憾的是,这两点是不可能并存的!你只能选同样。在加强硬件的运行效率这一方面,C语言无竞争者!举个简单的例子,实现一个列表,C语言用数组int a[3],经过编译以后变成为了(基位置+偏移量)的方式。针对计算机来讲,无运算比加法更快,无任何一种办法比(基位置+偏移量)的存取办法更快。 C语言已然把硬件的运行效率压缩到了极致。 这种设计思想带来的问题便是易用性和安全性的缺失。例如,你不可在数组中混合保留区别的类型,否则编译器无办法计算正确的偏移量。同期C语言针对错误的偏移量亦不闻不问,这便是C语言中臭名昭著的越界问题。
C语言自诩的“相信程序员”都是美丽的说辞,它的独一目的便是快,要么飞速的运行,要么飞速的崩溃。C语言只关心程序飞的高不高,不关心程序猿飞的累不累。便是这般!
此刻来瞧瞧哪些非C的语言,她们的长处都在于加强程序员的研发效率上。 或支持动态的列表,或支持安全的列表。然则加入任何的中间层,加入任何的安全检验,它不可能比(基位置+偏移量+无检验)的方式更快。这个世界上不存在“研发容易,运行快”的语言,研发容易毕竟源自于对底层的一层一层又一层的包装。 此刻回答两个最广泛的问题: 硬件这么便宜了,有必要让软件更快吗?
有这种疑问的人大部分都是网吧的固定客户,她们理解的计算机仅在电脑城,她们理解的计算只是游戏和播放硬盘中的小电影。不要玩个游戏开个挂就乐得不行不行的,别忘了还有全实景仿真,还有3D渲染,还有自动驾驶。
人在开车的时候,每秒要收集60个区别的物体,而后按照这60个物体的区别组合和反映来做20个最重要的决定。而后从这20多个决定中选一个执行。因此就算用上最快的硬件,自动驾驶此刻还不敢说能像人那样开车。就算是自动驾驶成功了,下一步还要自动飞行呢?由于咱们老早就预言了:你咋不上天呢!
因此说: 计算速度永远是不足的!由于新的应用会越来越繁杂,越来亦实时。
对了!我还忘了一个更重要的限制:计算的能耗!NASA飞行器上的CPU最多便是32位的,说出来你可能不信,国际空间站上无一个CPU是64位的,我猜一个最重点的原由是航天员不爱看硬盘小电影吧。
另一一个流行的疑问是:我能够发明一种一样快的语言,然则无C语言那样多的坑。想法是能够的,况且还真巧有这个语言,真巧它的名字叫D语言,真巧无太多的人用!这是由于一个基本的事实。此刻有太多,太多太多的C代码,她们大部分都在正常工作,就像Linux, Window, MacOS,Unix,Vxworks。你无看错,这些操作系统的内核都是C,我虽然不确定C在Window中所占的比例,然则我相信微软的人不会傻到用C#去所有改写一个操作系统的内核。你想让这些人去用你的全新的语言,这就不是“有点”很傻,很天真了!
况且有些代码,咱们基本就不可改!NASA一个简单的5个CPU飞控软件编写完毕后,要进行一种“全覆盖”测试。倘若CPU A坏了会出现什么?倘若CPU A,B坏了呢?倘若CPU A,C坏了呢。。。。?倘若你愿意,你能够做个简单的数学组合。测试完毕后,别说重写,就算加个注释都不行。由于主管payload的大妈会非常严肃的质问你,为何你上报的东西数量增多了,然则质量无增多?你需要和她仔细的解释:硬件和软件是区别的,硬件是那种摸起来硬硬的东西,然则软件不是那种摸起来软软的东西。看着大妈鄙夷的眼神,这个时候你会非常懊悔自己手欠加入的哪一行注释。你还别欠妥真,这个是NASA的真实故事。
那为何C语言还下降这么多呢?很简单,有些任务本身就不是C语言的。我上学的时候还用C语言编过窗口界面呢?而后火速微软的人就推出了MFC,便是一大堆宏把底层的C windowAPI包装了起来。
再后来这个技术亦过时了。由于微软的人认识到,带有窗口的应用程序说到底不是C语言的本职工作,再这么一层一层包下去就有露馅的危险,于是她们发明了一个全新的语言C#来负责这个任务。
Java亦是这般,明显网络,易用,安全,跨平台。无论是Java, c#还是python, 她们都有意避开加强硬件的运行效率这个问题,由于这个问题上没办法和C竞争,亦没法撼动Linux, Unix,GNU tool这些已有C代码的位置。剩下的就只是加强程序员的研发效率上大作文案。这对C语言是好事,把自己不善长的东西去掉,让自己跑的更快!
伴同着嵌入和实时系统的兴起,AI,设备人,自动驾驶等。这些都是C语言的核心应用,况且在这种应用上面,C语言无竞争者。
因此我感觉C语言会稳定在自己核心的应用中,并起始逐步回升。
最后说点闲话,C++不会淘汰C语言。有了对象后你会发掘再简朴的对象亦耗费资源,况且有了对象以后,总是不由自主的去想继承这个事,一但继承实现了,你会发掘继承带来的麻烦远超过你的想象。Java的发明人James被问到倘若能够从新设计Java语言的话,第1个要做什么事?他说:“去掉对象”!做为一个已婚,有两个孩儿的程序猿,我感同身受。倘若大众感兴趣,我能够再写一个博客,聊聊C++和C的真实区别所在。
倘若你看到这儿,还什么都没记住。那就只记住一点:没人能预测将来。
倘若再有人对你说C语言已然过时了,最好自己思考一下,能求真最好,倘若不可,最少要做到存疑。
02、为何C仍占据统治地位?于一种计算机行业的技术来讲尤其如此。自1972
年诞生败兴,C语言始终保持生龙活虎的状态,时迄今日它仍然是咱们用来搭建软件世界的基本建筑材料之一。
但有时一种技术能够长时间存在,只是由于人们还无来得及发明新的东西来取代它罢了。在过去的几十年里,显现了许多其他语言——其中有些知道地被设计用于挑战C的主导地位,有些语言试图凭借自己的人气慢慢瓦解C语言的统治地位。
为C需要被替换掉的观点争辩是简单的。编程语言科研和软件研发实践都暗示了怎样比C更好地去办事。但历经数十年的科研和研发,C语言的地位却依旧稳妥。很少有其他语言能够在性能、裸机兼容性或通用性等方面击败它。不外,2018年C是怎样与哪些明星编程语言竞争的呢,其中细节仍值得一看。C vs. C ++
当然了,C最常被拿来与C ++进行比较,正如其名叫作本身所暗示的那样,C++做为对C语言的扩展而被创建出来。C ++和C之间的差异能够概括为C++更加广泛(褒)或更加宽泛(贬),详细取决于这个问题你是问的C还是C++程序员。(笑)
虽然C ++的语法等方面仍然是类C的,但它供给了许多在原生的C中本不可用的非常实用的功能:命名空间(namespace),模板(template),反常(exception),自动内存管理(automatic memory management)等等。需要顶级性能的项目,例如触及数据库,设备学习系统的项目一般是用C ++编写的,以便项目能尽可能地榨取以及利用到每一点性能。
另外,与C相比,C ++在连续地更加积极地扩展。即将推出的C ++ 20会带来更加多功能供研发者享用,包含模块,协同程序,同步库,以及概念,这些使模板更易于运用。C standard的最新版本只进行了少量更新,并侧重于保持向后兼容性。
事实上,C ++中的所有附加功能一样亦可能作为负担。况且是很大的负担。您运用的C ++专属功能越多,引入的繁杂度就越高,对结果的修正就越困难。将自己局限于仅一个C ++子集的研发人员能够避免许多研发中严重的坑和额外包袱。然则有些团队想要从根儿上防范C ++的过度繁杂性。保持运用C能迫使研发人员将自己局限于一个子集。例如,Linux内核研发团队就直接避开了C ++。
选C而不选C++对您——以及任何将会守护你代码的研发人员——来讲都是可行的,经过采用强制简约主义来避免与C ++的繁杂性纠缠。当然,C ++持有丰富的高级功能,这是有它自己的道理的。但倘若极简主义更适合当前和将来的项目——以及负责项目的团队——那样还是选C更明智有些。C vs. Java几十年了,Java仍然是企业软件研发的主力军之一——并且亦是宽泛而言的研发的主力军之一。许多最重要的企业软件项目都是用Java编写的——包含绝大都数Apache Software Foundation项目——而Java仍然是研发企业级需要项目的可行语言。Java的语法从C和C ++中借鉴了非常多东西。然则,与C区别的是,Java默认状况下不会编译为本机代码。相反,Java运行时环境,JVM,JIT(实时)编译Java代码以在目的环境中运行。在适当的状况下,JIT编译后的Java代码能够接近乃至超过C的性能。Java背面的“一次编写,随处运行”的理念亦准许Java程序在目的架构上进行相对较少的调节就可运行。相比之下,虽然C已被移植到许多架构中,但任何给定的C程序仍可能需要重新量身定做才可在,打个比方,Windows与Linux,两种区别的os之间正常运行。这种可移植性和强大性能的结合,以及庞大的软件库和框架构成的生态,使Java作为构建企业应用程序的首选语言。Java输给C的地区是一个Java从未打算竞争的行业:靠近底层结构运行,或直接与硬件打交道。C代码被编译成设备代码,由进程直接执行。Java被编译成字节码,这是一种随后会被JVM解释器转换为设备代码的中间代码。另外,尽管Java的自动内存管理在大都数状况下都是个优点,但C更适合于必须充分利用有限内存资源的状况。亦便是说,在某些方面,Java在速度方面能够接近于C。JVM的JIT引擎在运行时按照程序行径优化例程,准许进行许多类型的优化,而这些优化是在未提前编译的C中没法实现的。虽然Java运行时自动执行内存管理,但有些较新的应用程序能够处理这个问题。例如,Apache Spark部分地经过使用绕过JVM的自定义内存管理代码来优化内存中处理。C vs. C#和.Net在推出近二十年后,C#和.Net 框架仍然是企业软件世界的重点构成部分。有人说C#和.Net是微软对Java的回复——一个托管代码编译器系统和通用运行库——C和Java之间的许多种对比亦适用于C和C#或.Net之间。与Java(以及某种程度上来讲Python亦是如此)同样,.Net供给跨各样平台的可移植性和庞大的集成软件生态系统。思虑到.Net世界中有多少面向企业的研发,这些都是不小的优良。当您运用C#或任何其他.Net语言研发程序时,您能够运用为.Net运行时编写的海量工具和库。.NET另一个类似Java的优良是JIT优化。C#和.Net程序能够根据C语言提前编译,但它们重点由.Net运行时进行即时编译,并运用运行时信息进行优化。JIT编译准许对没法在C中执行的运行着的.Net程序进行各样就地优化。与C同样,C#和.Net供给各样直接拜访内存的机制。堆,栈和非托管系统内存都能够经过.Net API和对象拜访。开发人员能够运用.Net中的unsafe模式来实现更高的性能。但这些都不是无代价的。托管对象和unsafe对象不可被任意交换,并且它们之间的编组会降低性能。因此呢,要最大化.Net应用程序的性能需要将托管和非托管对象之间的变动保持在最低限度。倘若您没法承担托管与非托管内存之间变动导致的性能损失,或.Net运行时针对目的环境(例如,内核空间)来讲是一个糟糕的选取,或可能基本不可用,那样C便是你所需要的。与C#和.Net区别,C被默认能够解锁对内存的拜访权。C vs. GoGo的语法很大程度上借鉴了C——花括号做为定界符,语句以分号结束,等等。精通C的研发人员一般能够毫不费力地直接运用Go,乃至算上Go的独有功能,如命名空间和包管理,对研发人员来讲亦并不困难。代码可读性是Go的指点设计目的之一:让研发人员能够容易把握任何Go项目,并在短期内熟悉把握代码库。C代码库可能很难理解,由于它们很容易聚集海量专属于某个项目或某个团队的宏和和#ifdef。Go的语法及其内置的代码格式以及项目管理工具旨在避免这种结构性问题。Go还供给了诸如goroutine和channel之类的附加功能,用于处理并发性和组件之间的信息传递的语言级别的工具。C需要研发者手动完成或由外边库供给,但Go供给了开箱即用的这些功能,使得构建需要这些功能的软件变得更加容易。Go与C最深层次的区别之处在于内存管理方面。默认情况下,Go的对象会被自动管理并自动进行回收。针对大都数编程工作来讲,这非常方便。但这亦寓意着任何需要确定性处理内存的程序都会更难编写。Go确实包括了用于绕过Go的某些类型处理安全性的unsafe包,例如运用Pointer类型读取和写入任意内存。但unsafe会附带一个warning说用它编写的程序“可能是不可移植的,并且不受Go 1兼容性指南的守护。”Go非常适合构建命令行实用程序和网络服务等,由于这些很少用到太过细致的操作。然则,倘若是低级设备驱动程序,内核空间操作系统组件以及其他需要严格掌控内存布局和管理的任务,那样就最好用C来创建。C vs. Rust在某些方面,Rust是对C和C ++创建的内存管理困难的回复,亦是对这两种语言的许多其他缺点的回复。Rust编译为本机设备代码,因此呢就性能而言,它被认为与C相当。但默认状况下,内存安全才是Rust的重点卖点。Rust的语法和编译规则可帮忙研发人员避免平常的内存管理错误。倘若程序有一个不符合Rust语法的内存管理问题,它就不会被编译。刚接触这种语言的新手,尤其是以前用C语言的研发者,因为C语言为这类bug供给了充足的容错空间,因此她们接触Rust的第1步是学习怎样安抚编译器。但Rust的支持者认为,这种短期的痛苦有一个长时间的报答:更安全的,不会减缓速度的代码。Rust还经过其工具改进了C语言。默认状况下,项目和组件管理是Rust提供的工具链的一部分,与Go相同。有一种默认的,举荐的办法来管理包,组织项目文件夹,以及处理C需要单独处理的其他许多事情,每一个项目和团队以区别的方式处理它们。然而,在Rust中被吹捧为优良的东西针对C研发者来讲可能并无太大吸引力。Rust的编译时安全功能没法禁用,因此呢即使是最小的Rust程序亦必须符合Rust的内存安全限制。默认状况下,C可能不太安全,但在必要时它更灵活,更宽容。另一个可能的缺点是Rust语言的体积。即使思虑到标准库,C的功能亦相对较少。Rust功能集非常庞大并且还在持续增长。与C ++同样,很强的Rust功能集寓意着更强大的功能,但亦寓意着更高的繁杂度。C是一种较小的语言,但更易在头脑中进行建模,因此呢可能更适合哪些对Rust来讲太小,不值得大动干戈的项目。C vs. Python当今,每当谈论软件研发时,Python似乎总是能出此刻对话中。毕竟,Python是“对所有项目的第二佳语言”,毫无疑问是最通用的语言之一,持有数千个第三方库。Python强调的,以及它与C最不同的地区,是有利于研发速度而不是执行速度。一个可能需要一个小时才可用另一种语言写出来的程序——例如C——可能用Python几分钟内就能写好。另一方面,该程序在C中执行可能需要几秒钟,但需要一分钟才可在Python中运行完。(一个很好的经验法则:Python程序一般比它们对应的C语言程序运行速度慢一个数量级。)然则针对现代硬件上的许多工作,Python已然足够快了,这是它如今广泛应用的一个重要原由。另一个重点区别是内存管理。Python程序完全由Python运行时进行内存管理,因此呢研发人员不必担心分配和释放内存的细节。但一样,研发人员的容易亦是以运行时性能为代价的。编写C程序需要严格关注内存管理,但生成的程序一般是纯设备速度的黄金标准。然则,在二者的血脉中,Python和C共享一个深层的关系:Python运行时参考是用C语言编写的。这准许Python程序包装用C和C ++编写的库。第三方库的Python生态系统的非常多重要模块,例如设备学习方面的库,其核心是C代码。倘若研发速度比执行速度更重要,并且倘若程序的大都数高性能部分能够被隔离到独立组件中(而不是遍布全部代码),那样纯Python或Python和C库的混合使得会是比单独运用C更好的选取。否则的话,C仍然是老大。03、C语言为么值得去学1. 嵌入式行业,C语言依然是首选语言, 嵌入式并无由于其他上层语言的发展而没落,此刻嵌入式依然还在其自己的行业展现强大的生命力。手机,电视机,机顶盒,空气净化器等等电子制品都是其行业范畴,从长远看短期内不可能被消失。况且智能设备人的崛起,C语言的运用频率又起始加大了。2. 操作系统内核代码还是C语言为主打, 就语言的灵活性以及执行的效率来看C语言还是最合适的语言,况且在系统层次的代码,C语言还是首选语言。况且此刻非常多流行语言的底层绝大部分的C语言构建完成。从这个层面讲C语言是永远不会过时的,顶多算是应用范围变窄,但其功效依然强大。3. C语言的职位比例相对应用级语言是低了点,然则全部软件行业在发展,绝对的C语言编程职位并无减少。 况且针对有志于作为架构师层次的程序员来讲,C语言还是必修课,构建软件框架还是需要对底层有所认识。退一步来讲,即使觉得C语言方面的职位比例低有些,欠好找工作,能够先从C语言入手,把自己的知识体系创立起来,编程语言属于工具范畴,熟练一种工具的运用,很容易触类旁通,切换到别的语言亦相对容易些,况且给全部职业生涯起了个好头,打好了基本为更上一层楼做足准备。C语言之因此流行这么年,生命力这么旺盛和本身鲜明的有效,方便灵活挂钩。即使在上层语言运用概率变低,并不妨碍在系统级别继续发挥功效。任何一种语言都有其存在的社会价值所在。C语言还是值得做为入门语言深刻的学习。4.C/C++程序员的收入无受到影响, 依据100offer的后台数据显现,此刻经过100offer入职的程序员年薪最高达47W,最低22.4W,C/C++程序员的收入与其它编程语言的岗位相比并无呈现下风。随 着C/C++逐步变成某些特定机构和特 定项目所需的语言 后 ,高级C/C++程序员的收入亦会更拥有竞争 性。知乎红人vczh说:「我在上大学的时分简直就只学习C/C++,后来实习的时分去了微软,成果到了那里才晓得,那个组是不必C/C++的,怎么办?凭借着C++带给我的富裕的功底,我准时完结了老板给我的"两个星期内学会C#和WCF基本知识"的作业,顺畅开端作业。」
当然,这只是vczh的个人经历,不拥有广泛性,但不可否认的是C/C++仍拥有不可代替性。某家创业机构CTO在接受采访时暗示:「即使有许多人唱衰C/C++,但在今世,仍有许多许多项目的目的途径暂时只供给C/C++编译器的支撑,仅从这一点而言,C/C++是不可能完全消逝的。」
从应用范畴来讲,C/C++适用于高性能计算、嵌入式体系、研发服务器软件、游戏、实时体系、网络通信等,短期内能完全代替C/C++的语言并不存在,因此依然拥有很强的竞争性。
04、除了C,需要把握多种语言吗?
想要把握多种编程语言的9个理由能用多种方式来处理一样的问题,把握区别的编程语言寓意着持有更加多的选取。毕竟,当你仅有锤子时,一切看起来都像是钉子。更有竞争力,持有更加多的就业机会。学习第二门编程语言,有时能加倍工作机会的数量。然而,这取决于你学习的语言种类。但无论怎么说,你将会有更加多的合适机会,从而增多求职能力。显示你具备学习新语言的能力。潜在的雇主会认为你并非是死板或惯守成规的人。学习是特别有趣的。学习新的事物会让你的头脑保持兴奋。这将有助于你在新行业的成长和加强。紧跟当前的技术发展趋势。认识哪个行业在独领风骚,就能够永远站在潮流的尖端,你的技能便不会过时。这将提醒你为何应该热爱你的“主”语言,或怎样将事情做得更好。有时候,仅有尝试过新语言,才会晓得主语言是何等的优秀。你会更加欣赏自己最爱的语言。与此同期,新语言可能会有有些惊人的特性,让你深觉相见恨晚。有助于作为一个更加优秀的程序猿。学习新的语言,有助于加强在所有语言之间通用的技能,例如:设计和架构算法,或处理区别的数据结构。针对工作选取最佳的工具。尺有所短寸有所长 - 有的语言更善于处理某些特定方面的事情。把握了多种语言,你能够在工作中选择最佳的工具显示你的学习能力强。无任何事情比把握第二语言更能证明你的学习能力。
不想把握多种编程语言的9个理由把握一种语言更易。一般,集中精力和全心投入才可精通某一事物。倘若持续地在多种语言之间进行切换,那样真正精通一门语言的概率就会降低。把握一种语言亦有助于你集中精力。大都数人只需要一份工作,大部分机构只运用一种语言。在你被录用后,把握多种语言不必定会有所帮忙。有时候,只要把握项目所用的语言就够了。总有有些东西值得学习;有时候,这寓意着要更深入地学习一种语言。大都数状况下,专家能提更高的薪资需求,由于人们更愿意为专家支付更加多的薪水。John Sonmez在其视频《 I’m Not Sure I Want To Be A Specialist》中谈到为何多面手并不总是最好的。即便仅把握一种语言,仍然能够被认为是一个伟大的研发者。是不是是伟大的研发者与你把握多少种语言无关。关键在于你创造的是什么。由于只触及一种语言,因此你能够花更加多的时间进行创造。你只需要学习有限的软件研发工具。大都数语言仅有为数不多的有些工具。切换语言常常寓意着要切换工具。只把握一种语言,你就能够更快地把握关联的工具。这将有助于加强工作效率。更易于定位自己的市场。由于只把握一种语言,基本上你只会朝这个方向安排下来(即使不是出于自己的选取)。你能够凭借任何一种语言处理大都数软件问题。不管有多少人告诉你,大都数语言能够用于处理任何问题。倘若处理问题是你的重点目的(本应当是),把握更加多的语言并不必定有助于实现这个目的。深入理解一件事比表面认识十件事更好。这并非是一个非黑即白的问题。和其他问题同样,最好的处理办法是取中间值:总有一片灰色地带。倘若你是一个初学者,那样学习一种语言,并将其应用到前十多个项目中会比较容易。但此之后,意见你作为一个「T形」软件研发者。
什么是「T形」软件研发者?所说「T形」软件研发者在某一个特定的区域持有很深的造诣,况且是一种语言的专家,T字母中的垂直线表率了这一点;另外,她们会继续广泛学习另一种技能,T字母中的水平线表率了这一点。
那样,这与软件研发,尤其是编程语言的学习,有什么关系呢?我的意见是精通一种编程语言,这将作为你以后的生计,并用于处理大部分问题。你应该尽你所能把握这门语言。这里基本上,能够学习最适合工作的第二种语言或技能。
T形软件研发者是一个多面手,精通于某一行业。在作为T形研发者的历程中,你将灵活地把握多种语言,同期具备某个行业专家的优点。
应该把握哪种编程语言?一个平常的问题是,应当学习哪种语言。或说,假如你是初学者,应当首要学习哪种语言。一般,我会选取有必定历史的语言做为重点语言。这种语言应当用于多个行业,并且有广泛的运用群体和海量的研发工具。符合这些标准的语言包含但不限于:C、C++、Java、JavaScript、C#、Python、Go等等。TIOBE软件基于这些标准连续跟踪软件语言的流行性,并编入索引中。你能够点击TIOBE Index查看完整的编程语言列表。索引会每月更新,前20名中的大都数语言都是不错的选取。将来10年,这些语言还会流行吗?我不确定。不外最少在将来几年内还是很可能保持流行的,我想,这对任何准备着手的项目都是够用的。
说实话,关于是不是需要把握更加多的语言,其实并无绝对正确或错误的答案,不谈需要选语言都是耍流氓,最后的决定还是取决于你的需要。【参考资料】
1、Serdar Yegulalp
https://www.infoworld.com/article/3402023/why-the-c-programming-language-still-rules.html
2、赵岩
http://zhaoyan.website/blog/index.php/2017/07/15/future/
3、佚名
https://dzone.com/articles/do-you-need-to-know-more-than-one-language
免责声明:该内容转载自其他媒介,目的在于传递更加多信息,并已著名作者和出处。如若文案内容侵犯您的权益,请即时联系本站删除。联系方式能够文末留言,或发送邮件到[email protected]
认识旬月容易考过乃至容易考优秀的正确办法,后台(不是文末留言)回复:学习办法
选取题怎么复习?请关注本公众号,后台(不是文末留言)回复:选取题
学习C语言,请关注本公众号,后台(不是文末留言)回复数字:1
下载最新题库?请关注本公众号,后台回复:
题库
仔细认识教材?请关注本公众号,后台回复:
玩转
刷题遇到问题?请关注本公众号,后台回复你的问题关键词,例如:目录、页眉、页脚、空白页、Excel、函数、人口普查、停车收费、税率、要求格式、母版、像素、行网格、作坏处……都能够的噢
题库下载,或咨询答疑,请加QQ群:
欢迎加入QQ群讨论
(二级C语言群):383595657
(综合读者群):321761403
(1)
玩转二级office答疑群16:1128908761
(2)玩转题库用户①群(Sept,20):310833175
(3)玩转二级office答疑群⑾:348719553
(4)玩转二级office答疑群⑭:933470742
(5)二级office玩转答疑群⑤:742642048
(6)二级office玩转答疑群:762460187
https://jq.qq.com/?_wv=1027&k=5AG9HCs
(7)玩转二级office学员交流群:906876172
请朋友尽可能只加一个群,留出空间给其他朋友,不要几个群都同期加;然而,老师,或已经过考试期盼为其他朋友答疑服务的朋友,欢迎同期加几个群,并申请管理员,为朋友服务!
感谢为大众热情服务的群主、老师和朋友们!
|