来源:麦叔编程
作者:麦叔
作为一个有十多年行业经验的人,我深知C语言的重要性。
但是我也时常纳闷,为什么C语言经常排在第一名呢?
放眼望去,我好像不认识一个以C语言为主要工作语言的人。这个排名第一是怎么来的呢?
image-20210316072640560
世界仍然运行在C语言之上
这里有三个问题,我们分清楚:
- C语言是否是一个优秀的语言?和就业无关。
- C语言是否值得学习?和就业无关。
- C语言的就业怎么样?
我对前两个问题没有困惑:
- C语言是一个非常优秀的语言,这个世界仍然运行在C语言之上!Windows系统,Mac系统,Linux系统的大部分模块都是C语言开发的。就连这几年大火的Python的解释器也是C语言写的,就是传说中的cpython。https://github.com/python/cpython
- C语言非常的重要!对于想要成为一个名专业程序员的人,和计算机专业在校大学生来说,是非常值得学习。对于应用型程序员,只是为了学点编程,快速应用在工作中的人,没有必要。
C语言为什么排在第一位?
大家对C语言排在第一位的认知主要来源于TIOBE网站:
https://www.tiobe.com/tiobe-index/
国内各种媒体平台基本上也都是翻译的这个网站上的数据。
在我写字的今天(2021年3月份),C语言还是稳稳的排在第一名,随后是Java, Python和C++:
image-20210316072640560
为什么C语言排名第一,而我却不认识一个以C语言为主要工作语言的人呢?
当然,我孤陋寡闻,圈子小是一个原因。应该也有其他原因吧?
有,原因就是这个排名不是和就业正相关的,而是基于搜索引擎的搜索结果来的。我们来看一下维基百科的说明:
https://en.wikipedia.org/wiki/TIOBE_index
image-20210316074002269
翻译成中文:
这个index是根据搜索引擎的结果中包含编程语言名字的数量来计算的。index中包括谷歌,MSN,Yahoo!,Baidu, Youtube等。
这里有一份更完整的搜索引擎列表,官方说明:
https://www.tiobe.com/tiobe-index/programming-languages-definition/
image-20210316074334868
哈哈,天猫的权重竟然比百度还要多。牛了!还有qq.com, sohu.com等等。
搜的多确实可以代表流行程度,但是不能代表就业多。很多搜的人都是学生。
前面我也说了,C语言还是非常值得学习的。所以学习的人很多一点都不奇怪,学习者们会:
- 去天猫买书
- 百度上搜教程
- 论坛上提各种问题
这样就排名就上去了。
看就业更好的排名
从就业和专业程序员的角度,有两个更好的参考。
一个是github的编程语言排行:
https://madnight.github.io/githut/#/pull_requests/2020/4
这是去年的数据,但是一年变化不大。这里可以看到:
- 前面是JavaScript, Python, Java, Go, C++。这和我所了解的情况基本属实。
- C语言排在第10位,占比3.127%,这是C语言比较合理的就业位置。
image-20210316075016807
这里也可以看到各大语言历年的情况:
https://octoverse.github.com/
和上面的排名基本一致。
image-20210316075248563
还有一个地方就是我前面说过的全球第二大同性交友社区Stackoverflow:
找代码上github,找答案上Stackoverflow。
https://insights.stackoverflow.com/survey/2020
这是2020年的数据,我觉得前3个都不是主流语言(JavaScript是前端主流语言),真正的排名可以从第4个开始算。和上面基本吻合。
image-20210316075456790
C语言仍然是很牛的语言
说到这里,大家千万不要误解我的意思。
- 这个世界仍然运行在C语言之上,前面说了。我现在正在打字的电脑也是用C语言写的内核。
- C语言一个很优秀的语言,值得大家去学习和研究。只能不能作为主要的就业语言。
同时C语言仍然有一定的就业空间,总的方向:
- 是偏底层的地方:用C语言开发一个Python解释器,这个就比较底层了。但是从就业的角度,Python的使用者和Python解释器的开发者相比,前者肯定多的多的多的多的多。
- 需要效率的地方:比如Python的科学计算库numpy就是用C语言开发的,因为需要效率。速度是Python的列表的百倍。
- 运行在资源比较少的硬件上:各种嵌入式软件的开发,比如智能体重秤等。但随着硬件的性能提升和价格降低,这其实也不是很大的问题了。
从行业上来看,下面行业用C语言比较多,这也和上面的方向吻合:
- 通信行业
- 物联网行业
- 安防行业
- 工控行业
- 嵌入式与自动控制
- 物联网
- 底层开发(操作系统、数据库、网络协议栈)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/5169.html