C语言能够被替换吗?
共 3067字,需浏览 7分钟
·
2021-07-22 12:30
作者 | Erik Engheim
译者 | 弯月 责编 | 张文
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)
【编者按】C 语言真的很老了,而且事实证明他在很多地方都已经不再是最佳选择。为了使工作更加轻松,无数的开发者都想着寻找一种新的语言取代 C 的位置。那么,什么样的语言才能取代 C ?
英文:Do We Need a Replacement for C?
原文链接:https://erik-engheim.medium.com/do-we-need-a-replacement-for-c-3256a8b44814
作者:Erik Engheim,现居挪威,热衷于UX、Julia编程、科学与写作。
以下为译文:
操作系统内核。例如 Linux 等
微控制器
视频编解码器
底层共享库,例如 OpenSSL 等
Unix 命令行工具,例如 ls、cat 和 git 等
1、Go 和 Rust 有一定的可能性
2、LLVM:填补空白
Zig:一门开源的编程语言,专为稳定性、可维护性和最优性而设计。
Odin:C 语言的替代品,与 Go 非常相似。
V 语言:另一个类似于 C 的语言,受到了 Go 和 Rust 的大量启发。
3、什么样的语言可以替代 C?
能够重用现有的 C 库。Ada、Modula-2 等语言在很大程度上就在这一点上栽了跟头,因为你无法在大型 C 生态系统中有效使用这两种编程语言。
建立在已有的知识和惯例之上。Go 语言很容易上手,因为尽管语法有所变化,但 API 和编程的方式与 C 非常相似。
没有垃圾回收,或者采用手动内存管理。在 C语言占主导的领域内,你需要严格控制内存的使用。在这里领域内,垃圾收集派不上用场,这就是 Go 无法完全代替 C 的原因。
控制可执行文件的大小。像 C 一样,Zig 可以将可执行文件压缩到很小。你无法在嵌入式等领域使用 Go 语言,因为这些语言生成的可执行文件都太大。
系统层面的友好。你需要能够操纵位和字节。你需要良好的二进制运算符和指针。在过去的几十年中,许多语言都没有合适的指针。Java 为指针带来了各种骂名,好在 Go 挽回了一些。
逐步替换 C 代码。能够良好地兼容 C 的可执行文件。
4、总结
原文:https://erik-engheim.medium.com/do-we-need-a-replacement-for-c-3256a8b44814