头图

C语言,永远滴神!

写在前面

没事逛一逛TIOBE编程社区已经成了最近几年的小习惯。

TIOBE编程社区大家应该都听过,它是一个查看各种编程语言流行程度和趋势的一个社区网站,每个月都有榜单更新,每年也会有年度的榜单和总结出炉。

按照官方的说法,TIOBE榜单编程语言指数的计算和主流搜索引擎上不同编程语言的搜索命中数是有关的,所以某一程度上来说,可以反映出某个编程语言的热门程度(流行程度、受关注程度)。

而通过观察一个时间跨度范围内的TIOBE指数变化,则可以一定程度上看出某个编程语言的发展趋势。这对于学习者来说,可以作为一个参考。

本文 GitHub https://github.com/rd2coding/Road2Coding 已经收录,里面有我整理的6大编程方向(岗位)的自学路线+知识点大梳理面试考点我的简历几本硬核pdf笔记,以及我的程序员人生

C语言,YYDS!

前几天,像往常一样打开TIOBE网站时发现,在其公布的最新一期编程语言榜单上,意外的看到了C语言竟然再次领跑榜单,前三分别为C、Python和Java。

再掐指一算,发现C语言竟然将近50岁了!

C语言于1972年诞生于贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来的。

其实聊到C语言,还有一个和它有着不解渊源的老朋友,那就是UNIX操作系统。

以前的UNIX操作系统都是用汇编语言写的。后来在C语言主体设计完成之后,汤普逊和里奇用它完全重写了UNIX,并且在后来得到了不断的完善和发展。这样一来,也体现了C语言在编写系统软件时的优势,C语言也慢慢成为了写操作系统的主要语言。

为了便于C语言的全面推广和应用,专家学者联合一些厂商组成了C语言标准委员会,并在1989年诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”。后来又慢慢发展到“C99”和“C11”。截至2020年,最新的C语言标准是2018年6月发布的“C18”。


还记得去年2020开年那时候,老将军C语言厉兵秣马,凭借2.4%的年增长率就曾经获得了「年度编程语言」!而且当时也是C语言在继2008年和2017年后,第三次获得年度编程语言的殊荣:

没想到2021年8月,C语言又再次领跑榜单,说明其生命力依然还是很繁荣的。这对于一个诞生将近50年的编程语言来说,着实不易!

就像之前TIOBE网站上所说的那样,这可能主要和当下物联网(IoT)技术的发展繁荣,以及和当今发布的大量小型智能设备有关。毕竟C语言运行于这些对性能有着苛刻要求的小型设备时,C语言依然是最出色的。

所以现在明白了为什么上大学时不管是科班专业还是非科班专业,都要学习C语言了吧,而且往往是第一门编程课。C语言底子扎实,对于后续的学习和理解还是非常有帮助的。


历年年度编程语言榜单

下表给出了自2003年以来这17年,每年「年度编程语言」的排位情况:

  • C语言曾在2008和2017年度斩获年度编程语言殊荣,时隔两年,2019年再次荣获殊荣
  • 公认很牛的C++语言也仅在2003年拿过年度编程语言称号
  • Java也拿过两次年度编程语言,分别为2005年和2015年
  • 还是Python最野!已经拿到四次年度编程语言了(2007、2010、2018、2020)!

我们还可以看下过去几十年间比较流行的编程语言是哪些

所以总的来看,C语言、Java、Python这么多年基本都算是常青树了。

究其原因也好理解。C语言主要在嵌入式、物联网、操作系统、以及各种和底层打交道的场景下有着不可或缺的存在意义;Java则在互联网开发领域有着的繁荣的技术生态以及相当大的市场份额;而Python则在蓬勃发展的数据分析、数据挖掘和人工智能领域的市场占据主导地位。


各种编程语言历年趋势

Java:我是常青树

从图中代表Java趋势的蓝色线可以看出,代表Java的曲线一直处于高位游走。Java的霸主地位很好理解,毕竟Java可以说是构成当下互联网繁荣生态的重要功臣,无数的Web后端、互联网服务、移动端开发都是Java的领地。

C语言:我稳中求进

从图中代表C语言趋势的黑线可以看出,C语言也是唯一一个能总是跟Java争夺第一霸主的编程语言。自诞生之日起,C语言就凭借其易用性细粒度高性能等特性获得了无可替代的位置,就像上文说的,随着如今的万物互联的物联网(IoT)时代的兴起,C语言地位依然很稳!

C++:我有点疲惫了

C++的确是个强大的语言,但语言本身的包袱也的确是太大了,加油吧老大哥。

Python:我就要逆流而上

从图中代表Python趋势的绿线可以看出,尤其近两年,Python强势上扬,这主要和这几年的数据分析和挖掘人工智能机器学习科学领域的繁荣有关系。

PHP:我现在有点慌

PHP:我不管,我才是全世界最好的语言,不接受反驳!


以上。

另外最近花了大把力气,把自用的编程学习资源做了个大整理。

都是纯肝货,目录如下。

该内容 GitHub https://github.com/rd2coding/Road2Coding 已经收录,里面还有我整理的6大编程方向的自学路线+知识点大梳理我的简历面试考点几本硬核pdf笔记,以及我的程序员人生,欢迎star。

整理不易,欢迎支持,下期见!


CodeSheep的技术分享
分享虚拟化、容器化、API化、微服务化的WEB技术,更多务实、能看懂、可复现的原创文章尽在作者公众号 Co...
3.4k 声望
7.6k 粉丝
0 条评论
推荐阅读
GPT-4,终于来了!
就在昨天凌晨,OpenAI发布了多模态预训练大模型GPT-4。这不昨天一觉醒来,GPT-4都快刷屏了,不管是在朋友圈还是网络上都看到了很多信息和文章。GPT是Generative Pre-trained Transformer的缩写,也即生成型预训练...

CodeSheep阅读 396评论 3

封面图
Spring事务传播行为详解
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可...

JerryTse242阅读 122.6k评论 97

正则表达式实例
收集在业务中经常使用的正则表达式实例,方便以后进行查找,减少工作量。常用正则表达式实例1. 校验基本日期格式 {代码...} {代码...} 2. 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊...

寒青56阅读 8.4k评论 11

JavaScript有用的代码片段和trick
平时工作过程中可以用到的实用代码集棉。判断对象否为空 {代码...} 浮点数取整 {代码...} 注意:前三种方法只适用于32个位整数,对于负数的处理上和Math.floor是不同的。 {代码...} 生成6位数字验证码 {代码...} ...

jenemy48阅读 6.8k评论 12

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木75阅读 7k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs42阅读 6.8k评论 12

封面图
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木45阅读 8.4k评论 6

3.4k 声望
7.6k 粉丝
宣传栏