2021年了,C 语言会被淘汰吗?
一年365天,总有那么几百天听到有人说“C语言过时了”“C语言要被时代淘汰了”,那么真的会被淘汰吗?

C 语言发布于 1972 年,到2021年已经有49年的历史,C 是一种广泛非常使用的语言,从操作系统内核到加密算法的编写,到处都在使用 C,如:
1)操作系统内核,例如 Linux 等; 2)微控制器; 视频编解码器; 3)底层共享库,例如 OpenSSL 等; 4)Unix 命令行工具,例如 ls、cat 和 git 等
以上领域仍然是C语言主导,截止到目前还没有找到替代 C 语言的方案。
虽然C语言是最广泛的语言之一,但是按照如今的标准来看,C 语言也存在许多限制和缺陷。例如C 语言非常不善于处理类似于缓冲溢出的问题,例如C 语言没有类型安全,喜欢动态语言的人很难接受这一点。
既然C 语言这么坑,那么为什么还没有被替换掉呢?其中的原因很多。不过在某些地方,C 语言已经被替换了。以前很多用 C语言 处理的任务如今都改用 Java、C#、C++ 以及其他语言了。另外在 LLVM 的支持下,在 Go 的启发下,完全可以替换掉 C语言。
那么,2021年,甚至未来C 语言会被淘汰呢?
不会,起码在未来几十年会继续发光发热。
因为C语言的简洁性,如同毛细血管,平时没感觉,一旦受伤就出血,但马上又能快速愈合,你查觉不出C这块出了问题。
因为C 语言直接或间接地影响了无数语言,比如 C++、Java、Go、D、Rust、Perl,甚至是 PHP 和 Python。
因为C 语言非常成熟,重视对内存的管理,拥有内联汇编、少量抽象,且语言没有过度膨胀,能让程序员能够很好地控制程序。
所以,C 语言成为了 OS 内核(Linux、Windows NT 或 macOS 的 XNU 等)以及其他语言(例如 Python)的理想选择。
按照这个逻辑,就好比人类吃米饭有7千年的历史了,虽然老祖宗吃米饭的花样和品类没有现在多,但是在食物丰富的今天,现代出生的人就不吃米饭了?
关于C 语言,你觉得未来会被淘汰吗?
评论:适合IT行业的空闲兼职,可以搜小程序【云来米】,了解详情,登录输入邀请码:8KY4FQ4
2021年了,C 语言会被淘汰吗?的更多相关文章
- 2021 编程语言排行榜出炉!C#年度语言奖
IEEE Spectrum 发布了 2021 年度编程语言排行榜,其中 Python 在总榜单以及其他几个分榜单中依然牢牢占据第一名的位置.另外值得关注的是微软 C# 语言,它的排行从 2020 年的 ...
- JAVA语言学校的危险性
Java语言学校的危险性(译文) 作者: 阮一峰 日期: 2008年12月 7日 下面的文章是More Joel on Software一书的第8篇. 我觉得翻译难度很大,整整两个工作日,每天8小时以 ...
- [No0000184]JAVA语言学校的危险性
下面的文章是More Joel on Software一书的第8篇. 原文: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools ...
- 为什么90%的大学都要求计算机专业学习C语言?
编程语言是编程的工具,计算机相关专业的学生必须具备足够的编程能力.当然,关于"最好语言"的争论从来没有休止过,这里要强调一下:语言的选择真的没那么重要,学习语言的过程最重要是语言的 ...
- 简析.NET Core 以及与 .NET Framework的关系
简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...
- javascript实例——时间日期篇(包含5个实例)
本来想在网上找一些js实例来练练手,结果发现一本书<突破JavaScript编程实例五十讲>,看了下内容还不错,就下了下来: 后面又下了该书籍的源码,一看才发现这本书编的日期是2002年的 ...
- 转 Oracle全文检索http://docs.oracle.com/cd/E11882_01/text.112/e24436/toc.htm
SQL > exec ctx_ddl.create_preference ('my_test_lexer','chinese_lexer') : PL/SQL 过程成功完成 SQL > E ...
- NET Core 以及与 .NET Framework
简析.NET Core 以及与 .NET Framework的关系 简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core ...
- Xilinx HLS
Xilinx 的高层次综合(High Level Synthesis, HLS)技术是将C/C++/SystemC软件语言转换成Verilog或VHDL硬件描述语言的技术.现已应用在SDAccel,S ...
随机推荐
- PyQt(Python+Qt)学习随笔:Designer中ItemViews类部件的frameShadow属性
老猿Python博文目录 老猿Python博客地址 frameShadow属性是从QFrame继承的属性,对应类型为QFrame.Shadow,该属性表示框架提供三维效果的阴影类型,有如下取值: 可以 ...
- 【JAVA】SSM开源项目源码--城市学院移动后勤-毕业设计(Spring SpringMvc Mybatis Mui Redis )
项目简介 大学时期老师给我做的项目,学校后勤管理中心,也作为毕业设计项目. 有 后勤保修 二手交易 失物招领 后勤通知 等功能. 城市学院移动后勤 有APP端(webapp)和WEB端(PC) 后端使 ...
- Go微服务实践之增删改查
从此篇文章开始,我们来陆续介绍 go-zero 开发一个项目所需要的组件和开发实践. 首先我们从 model 层开始,来说说go-zero 的API以及封装细节.首先 model 层连接的API集中在 ...
- 题解 CF1446D2 【Frequency Problem (Hard Version)】
给出一个跑得快一点的做法,洛谷最优解 (时间是第二名的 \(\frac{1}{2}\)), CF 第一页 D1 首先找到整个序列的众数 \(G\), 很容易证明答案序列中的两个众数中其中一个是 \(G ...
- 题解-CF436E Cardboard Box
题面 CF436E Cardboard Box \(n\) 个关卡,对每个关卡可以花 \(a_i\) 时间得到 \(1\) 颗星,或花 \(b_i\) 时间得到 \(2\) 颗星,或不玩.问获得 \( ...
- 传输层-Transport Layer(上):传输层的功能、三次握手与四次握手、最大-最小公平、AIMD加法递增乘法递减
第六章 传输层-Transport Layer(上) 6.1传输层概述 在之前的几章内容中,我们自底向上的描述了计算机网络的各个层次,还描述了一些处于不同层次下的经典网络协议(如以太网.无线局域网.或 ...
- 阿里云OSS生成sts令牌
业务场景: 如果前端直接上传文件到OSS,势必要暴露令牌,无法精准控制上传内容等,使用临时令牌即可解决这个问题. 先去阿里云后台设置好token,角色,地区等 pom.xml <dependen ...
- logstash导入DNS解析数据到es中,中间有filebeat
这个过程中,主要用logstash处理数据的时候不好处理. 在logstash-sample.conf这个配置文件中的配置,我用这个监控filebeat的5044端口 # Sample Logstas ...
- JavaSE24-类加载器&反射&模块化
1.类加载器 1.1 类加载 类加载的描述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化.如果不出现意外情况,JVM将会连续完 ...
- 一文带你彻底了解大数据处理引擎Flink内存管理
摘要: Flink是jvm之上的大数据处理引擎. Flink是jvm之上的大数据处理引擎,jvm存在java对象存储密度低.full gc时消耗性能,gc存在stw的问题,同时omm时会影响稳定性.同 ...