机器心脏报告
编辑:杜威和陈平
目前,Carbon编程语言正处于实验阶段。
在编程语言的世界里,C++扮演着重要的角色。C++在2022年5月TIOBE编程语言排行榜中排名第四。同样,C++在Google中也广泛使用。
资料来源:https://hellogithub.com/report/tiobe/
然而,最近在加拿大多伦多举行的CPP North C++会议上,谷歌工程师钱德勒·卡鲁斯(Chandler Carruth)宣布,谷歌内部正在构建一种新的编程语言Carbon,它将成为C++的继任者。目前,Carbon编程语言正处于实验阶段。
就像微软创造TypeScript来更新JavaScript,JetBrains创造Kotlin来弥补Java的不足一样,Carbon将作为一种替代C++的语言,为开发者提供一种全新的语言来解决内存安全、泛型等现代开发理念。
在谈到为什么要取代C++时,Carruth表示,C++作为长期以来构建性能关键型应用的首选语言,其自身存在许多问题,这些问题一直困扰着现代开发者。C++积累了几十年的技术负债,很多过时的做法是它的前身C语言的一部分。C++的维护者优先考虑向后兼容,以便继续支持广泛使用的项目,如Linux及其包管理生态系统。
此外,C++语言的发展受到官僚委员会程序的阻碍,这种程序面向标准化而不是设计。这种方法很难添加新功能。C++在很大程度上处于一个孤立的开发过程中,在这个过程中可能需要几年的时间来做出一些重要的决定。
因此,Carruth希望通过一个更加开放的社区主导的环境来构建Carbon language,并且一直开源。目前该项目已经在GitHub上获得16.5k星。
GitHub开源地址:https://github.com/carbon-language/carbon-lang
碳的设计理念和特点
谷歌希望在2022年底推出Carbon的核心工作版本,即v0.1。Carbon将基于现代编程原则,包括一个通用系统,因此开发人员不再需要检查和重新检查每个实例的代码。
C++语言迫切需要的一个特性是内存安全。内存访问错误是安全漏洞的罪魁祸首之一。Carbon设计人员将探索更好的方法来跟踪未初始化状态,设计支持动态边界检查的API和习惯用法,并建立一个全面的默认调试构建模式。随着时间的推移,设计师还计划建立一个安全的碳子集。
Carbon语言将支持以下功能:
性能关键软件;
软件和语言进化;
易于阅读、理解和编写的代码;
实用的安全和测试机制;
以及快速和可扩展的开发;
现代操作系统平台、硬件架构和环境;
与现有C++代码的互操作性和移植。
同时,碳语言的亮点包括:
介绍者关键字和简单语法;
该函数的输入参数是只读的;
提供间接访问和指针的变体;
使用表达式来命名类型;
将包命名为root空;
导入APIs按包名;
用显式对象参数声明方法;
单继承,默认使用final类;
已经过定义检查的强大泛型;
类型显式实现接口。
Carbon设计团队会开始创建内置的包管理器,这是C++非常缺乏的。此外,团队还计划编写一些工具,将C++代码移植到Carbon代码。下图左边是C++代码,右边是Carbon写的同样的函数:
为什么不大力发展Rust language?
可能有人会问:最近有一种专门为满足内存安全应用需求而构建的Rust语言。为什么不直接用?卡鲁斯对此表示,如果Rust适合你,那就继续用吧。但是,把C++的生态系统转移到Rust上是非常困难的。
相比之下,Carbon建立在现有的C++生态系统之上,适合已经拥有大量C++代码库的开发者,这些代码库很难转化为Rust。
Carbon有望成为C++ 的“继承者”
计算机编程语言是编程最重要的工具,每个程序员都有一套自己熟悉的编程语言。
此前,谷歌也开放了自己的编程语言。例如,2006年,Google的开源Go语言旨在将Python等动态语言的开发速度与C/C++等编译语言的性能和安全性结合起来。短短几年时间,Go已经成为最火的语言之一,很多大公司都用Go来开发自己的产品。与此同时,Dart编程语言最初是为了取代JavaScript,直到Flutter发布后才成为主流。
这一次,谷歌新构建的编程语言Carbon还处于实验阶段。你对此有何评价?
有网友说:C++对特定任务很好,但现在看起来像个怪物,现在Carbon看起来很好。
甚至有人说Carbon有望成为C++的“接班人”:
但也有人认为碳的底层是用C++实现的,C++实现的编程语言,不足以取代C++。不过预测又有一批新程序员上岸,Carbon。
有网友想对比Carbon和JavaScript,看看哪个更好:
再过几年,Carbon会再次成为流行的编程语言吗?
原始链接:
https://twitter.com/code_report
https://9 to 5 Google . com/2022/07/19/carbon-programming-language-Google-CPP/
https://thenewstack . io/Google-launchs-carbon-an-experimental-replacement-for-c/
剧终
授权请联系本微信官方账号。
投稿或寻求报道:content@jiqizhixin.com