1. C语言是不是过时了?
在浏览各大门户网、论坛时,可能会发现网络上频繁讨论的语言大多是Java,Python,Javascript等比较时髦的语言。
C语言作为一种1972年创立的语言,到今天已经将近有半个世纪了。然而计算机又是一个日新月异的学科,肯定会让大家有这样的疑问——C语言是不是过时了呢?
如果C语言已经过时了,与其花时间学一款已经没人用的冷门语言,为什么不去学习正当势头上的热门语言呢?
C语言真的过时了吗?答案是否定的。
2. 从TIOBE指数看C语言。
为了确认C语言是否真的过时了?是否已经没有人讨论并使用它了?我们可以参考一下“TIOBE编程语言指数”。
TIOBE指数是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据,只是反映某个编程语言的热门程度。重要的是要注意,TIOBE指数与最佳编程语言或编写语言的代码行数无关。
TIOBE虽然不能告诉我们什么是最佳语言(世界也不存在这么一种语言),也不能告诉我们世界上到底哪种语言的代码行数最多。
但是TIOBE能告诉我们,在某个时间点上,哪种语言被广泛地讨论和使用了。
上图为2002年到2020年各种编程语言的TIOBE指数。
从图中我们可以看到,代表C语言的蓝色线条在大多数时间段内都占据了20%左右的份额,仅次于Java的黑色线条。并且有少许时间段反超了Java,登顶TIOBE指数榜首。
很显然,C语言依然保持着非常优势的地位。
3. 为什么网上都不讨论C语言?
既然C语言这么火,那网络上处处都应该在讨论C语言。为什么网上看到的都是有关Java,Python,Javascript的讨论呢?
目前,中国的互联网发展处于世界的前列,而互联网企业通常会需要大量的岗位来编写网页、移动端应用、服务端程序,或者是做数据分析。供需关系导致了这些语言被频繁讨论。
网页开发中所使用的脚本语言,如今默认使用Javascript。
Java是安卓端开发所使用的主力语言,并且在服务端程序开发上也使用广泛。
Python在自动化处理,数据分析上拥有很大优势。
我们当然希望用更合适的选择来做一件合适的事情,如果你关注的是怎样又好又快地解决互联网企业的需求,那么很容易得出:“Java,Python,Javascript正在风口上,而C语言几乎从不被人提起”这样的结论。
当然这并不意味着互联网公司不需要C语言。遇到以性能为核心的需求时,往往都是C语言大展身手的时候。当你在刷短视频时,就离不开C语言的支持。
我们可以换个角度来看待C语言。假如,你是一名电子,图像处理,音视频处理,通讯等方向的工程师。需要尽量减少语言带来的额外开销,从而尽可能最大化获取计算机的性能。你会发现,除了C语言好像也只有汇编可供选择了。
C语言的最大优势就在于:C语言具有通常是汇编语言才具有的微调控能力,可以根据具体情况微调程序以获得最大运行速度或最有效地使用内存。
4. 从学习的角度看C语言。
常常听到有人说,学习C语言有助于打好学习计算机知识的基础。为什么会有这种说法呢?
发明C语言的目的,就是希望有一款语言可以代替汇编,来编写UNIX操作系统代码。因此,C语言的抽象层次是比较低的,拥有是汇编语言才具有的微调控能力。但是,C语言并不涉及到具体机器的工作细节。
C语言在一个高于汇编而又低于其他高级语言的抽象层次。在学习和使用时,需要理解比其他高级语言更多的计算机工作的底层原理。而又不会像汇编一样,陷入某类具体计算机工作细节的繁文末节当中。
5. 从职业生涯的角度看C语言。
在职业生涯中,大部分人都会接触到多种语言。例如:在安卓移动端开发时,大部分的代码使用Java来编写,而性能关键的功能可能需要使用C语言来编写。而如果你想为微处理器写一个程序。由于微控制器的内存和只读存储非常小,并且计算能力也很有限。用C语言往往是你的首要选择。
热门跟贴