网易首页 > 网易号 > 正文 申请入驻

为取代 C++,Google 强势开源 Carbon 语言!

0
分享至

整理 | 彭慧中 责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

每一种编程语言都曾想一统江湖,将其他语言取而代之。但事实上,能够在众多竞争者中脱颖而出并雄霸一方天地并非易事。今天,谷歌重磅公开了其内部建立的最新编程语言——Carbon,剑指 C++,欲成为其实验性继任者。

历朝历代的“继承者们”

多年来,谷歌创建了许多编程语言,其中一些已经广为流行并深受大家的喜爱。例如,Golang(简称 Go)是为了改善服务器和分布式系统的开发而创建的,后来被公众采用。同时,Dart 编程语言,最初是作为 JavaScript 的替代品,直到 Flutter 的发布后终于成为主流语言。

日前在多伦多举行的 Cpp North 大会(专门讨论 C++ 的会议)上,谷歌首席软件工程师和开源软件开发者 Chandler Carruth 分享了一种名为 Carbon 的新编程语言的愿景。Carruth 展示了当今许多最流行的编程语言是如何拥有继承者的,这些继承者们利用了现代语言设计的优势,使开发者能够迅速提高生产力。

正如我们熟知的,C++ 是 C 语言的继承者,Kotlin 是 Java 的继承者,Swift 是 Objective-C 的继承者,而来自微软的 TypeScript 彻底增强了 JavaScript,同时保持舒适的使用并能够“转译”回 JavaScript。那么,C++ 的继承者会是哪一个?Rust 或者是这个新出现的 Carbon?

或许很多人会选择 Rust 作为 C++ 的后继语言。不可否认,想要启动新项目,Rust 是一种很好的语言选择,但它不像 Java 和 Kotlin 那样具有“双向互操作性”,因此很难稳定地迁移。借用Conor Hoekstra 的说法,“如果 Rust 今天适合你的项目,你应该使用它。但是未来想要将 C++ 项目背后的整个生态系统迁移到 Rust 是困难的。”

为此,虽然 Carbon 有许多与 Rust 相同的目标,如帮助开发者创建“性能关键型软件”,但 Carbon 也打算与现有的 C++ 代码完全互通,并使从 C++ 迁移到 Carbon 尽可能容易。

取代 C++,Carbon 的使命

为什么 C++ 开发人员可能想考虑在他们的代码库中引入 Carbon?

尽管 C++ 仍然是性能关键型软件的主流编程语言,拥有庞大且不断增长的代码库。但其易用性较差、掌握难度大、以及由于语言功能过于丰富而易导致混乱等特点,也经常被人诟病。由于积累了几十年的技术债务,企图逐步改进 C++ 是非常困难的,这既是由于技术债务本身,也是由于其进化过程中的挑战。解决这些问题的最好方法是避免直接继承 C 或 C++ 的“遗产”,而是从坚实的语言基础开始,如构建现代泛型系统、模块化的代码组织和一致、简单的语法。

正因如此,Carbon 应运而生,其目标如下:

1. 速度快,可与 C++ 一起使用

  • 性能与使用LLVM的C++相匹配,具有对位和地址的低级访问

  • 从“遗产”到模板,实现与现有的 C++ 代码互操作

  • 快速和可扩展的构建,与现有的 C++ 构建系统一起工作

2. 现代化和并且能不断发展

  • 坚实的语言基础,易于学习,特别是对于已经使用过 C++ 的人

  • 简单的、基于工具的 Carbon 版本之间的升级

  • 更安全的基本原理,以及逐步实现内存安全子集的途径

3. 打造受欢迎的开源社区

  • 明确的目标和优先级,具有强大的管理能力

  • 社区致力于成为一个欢迎、包容和友好的社区

  • 包含“电池”的方法:编译器、库、文档、工具、包管理器等

尽管 Carbon 是在谷歌内部开始的,但该团队愿意将其开源,为的是使其在未来能够获得成功,Carbon 需要成为一个“独立的并且由社区驱动的项目",而不仅仅是为谷歌自用。

“学不动”的开发者们,依然期待

随着这门新语言的正式发布,不少开发者跃跃欲试,仅在 Hacker News(https://news.ycombinator.com/item?id=32151609)上就引发 400 多名开发者关于该语言的探讨。

前排“课代表”对 Carbon 做了进一步的总结:

@cogman10:如果你像我一样,想知道 "是什么让 Carbon 与 Rust 或 Zig 不同?那我总结三点:

1. 能够与各种各样的代码互操作,如类/结构和模板,而不仅仅是自由函数。

2. 愿意将 C++ 的习性暴露在 Carbon 代码中,必要时也可以反过来,以使互操作层的性能最大化。

3. 使用包装器和通用编程,包括模板,以减少或消除运行时的开销。

换句话说,Carbon 可以做 Rust 不能做的事情,就是用一个'foo'方法调用一个 C++ 类。或者创建一个带有'foo'方法的类,然后从 C++ 中调用该方法。这可能是实现 C++ 相互操作中要克服的最大障碍之一。大多数人不会这样做,相反,你会做一个 C 函数绑定和结构,并通过它移动数据/调用函数。

另一名开发者指出了 Carbon 在安全方面可能存在的问题。

@ansible:总的来说,Carbon 在安全方面做出了妥协,以便为 C++ 的发展提供一条道路。C++ 开发者必须能够自如地迁移他们的代码库,并且能够以一种基本自动化的方式进行迁移。为了实现自动迁移,Carbon 不能要求对迁移的 C++ 代码进行根本性的重新设计。虽然迁移工具在理论上可以将所有被迁移的代码标记为不安全的,但 Carbon 应该使用一种安全策略,对 C++ 代码进行优雅地降解并提供改进,无论是否被迁移。

这并不意味着 Carbon 永远不会默认采用有保障的安全策略,只是 C++ 代码的性能和迁移需要优先考虑,任何设计都需要在其他目标的背景下考虑。以后仍有可能采用有保障的安全,尽管这需要确定一个迁移路径。

这是非常有趣和务实的。如果他们最终能通过与 Rust 的借用检查器不同的路径得出同样水平的安全保证,那就很有意思了。

由于他们的目标之一是将现代 C++ 自动翻译成Carbon,我确实想知道这在一般情况下会有多大效果。

我绝对欢迎一个更容易阅读和理解的C++的替代品。这将是对世界的一个好处。

对于想要尝鲜的小伙伴,现在就可以下载源代码(https://github.com/carbon-language/carbon-lang#getting-started)在自己的电脑上体验了。另外,值得注意的是,Carbon 与免费的 Compiler Explorer 网络应用也进行了整合(https://carbon.compiler-explorer.com/),所以大家可以直接在浏览器中开始使用 Carbon 编程语言,用了之后也别忘了回来分享一下你的体验~~

参考链接:https://9to5google.com/2022/07/19/carbon-programming-language-google-cpp/

现在订阅即有机会获取『CSDN夏季定制T恤』一件

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
彻底想通!托卡耶夫-12度舷梯上等普京,高规格接待,闭门会开始

彻底想通!托卡耶夫-12度舷梯上等普京,高规格接待,闭门会开始

小彭谈历史
2024-11-28 13:00:32
詹姆斯带伤作战!他连续1240场得分上双!胜场逼近历史第一!

詹姆斯带伤作战!他连续1240场得分上双!胜场逼近历史第一!

历史第一人梅西
2024-11-28 15:40:51
中国富人的喜好又变了:加拿大鹅之后,又一个大牌羽绒服吃到红利

中国富人的喜好又变了:加拿大鹅之后,又一个大牌羽绒服吃到红利

探寻者
2024-11-28 12:02:25
航母快养不起了,砍一艘吧

航母快养不起了,砍一艘吧

航空知识
2024-11-27 21:33:13
建议中老年,天冷了别心疼钱,少吃牛羊肉多吃它,腿脚有劲身体棒

建议中老年,天冷了别心疼钱,少吃牛羊肉多吃它,腿脚有劲身体棒

第一名厨官方
2024-11-28 11:11:48
申花新闻官:韩国遭遇百年一遇大雪,球队返程整整用了14个小时

申花新闻官:韩国遭遇百年一遇大雪,球队返程整整用了14个小时

直播吧
2024-11-28 22:48:18
比亚迪,好大的官威?

比亚迪,好大的官威?

新动察
2024-11-28 09:42:48
人心散了?爱德华兹负国王赛后怒称森林狼队已经“分崩离析”

人心散了?爱德华兹负国王赛后怒称森林狼队已经“分崩离析”

懂球帝
2024-11-28 13:25:05
这些全都不是街机游戏,我的青春是喂了狗?

这些全都不是街机游戏,我的青春是喂了狗?

街机时代
2024-11-28 12:25:26
笑不活了!杭州名菜“西湖醋鱼”有多难吃?评论区全是段子手!

笑不活了!杭州名菜“西湖醋鱼”有多难吃?评论区全是段子手!

奇特短尾矮袋鼠
2024-11-27 16:49:12
43岁余文乐罕见内地捞金,“屈尊”当探店博主,颜值暴跌被群嘲

43岁余文乐罕见内地捞金,“屈尊”当探店博主,颜值暴跌被群嘲

八卦先生
2024-11-27 22:47:12
中央军委委员、军委政治工作部上将主任苗华被停职检查

中央军委委员、军委政治工作部上将主任苗华被停职检查

新京报
2024-11-28 19:49:16
具俊晔给大s丢人了!画展合影时皮带掉出来 网友:跟汪小菲差远了

具俊晔给大s丢人了!画展合影时皮带掉出来 网友:跟汪小菲差远了

小咪侃娱圈
2024-11-28 08:56:11
喜欢咬指甲的孩子,研究发现:逃不过这些结局!

喜欢咬指甲的孩子,研究发现:逃不过这些结局!

大爱三湘
2024-11-26 20:29:55
司美格鲁肽要翻车?国际顶刊发文:3000名男性受试者睾酮下降90%

司美格鲁肽要翻车?国际顶刊发文:3000名男性受试者睾酮下降90%

李药师谈健康
2024-11-27 10:42:31
韩媒:塞尔吉尼奥和奥斯卡即将加入中国队 他俩看到世界杯希望

韩媒:塞尔吉尼奥和奥斯卡即将加入中国队 他俩看到世界杯希望

大头博士记
2024-11-28 12:15:15
0-0!继曼城后,又一英超豪门崩盘:连续7场不胜,欧冠从第1跌第9

0-0!继曼城后,又一英超豪门崩盘:连续7场不胜,欧冠从第1跌第9

侃球熊弟
2024-11-28 06:20:52
就在今天,科比尘封了8年的NBA历史纪录,被35岁哈登打破了

就在今天,科比尘封了8年的NBA历史纪录,被35岁哈登打破了

大西体育
2024-11-28 10:43:30
没有宇宙勇?莱利:严格意义上来讲,NBA历史上只有三支王朝球队

没有宇宙勇?莱利:严格意义上来讲,NBA历史上只有三支王朝球队

鸡丁侃球
2024-11-28 07:50:30
喜报!地方财政难题终于找到解决办法了,各地均可借鉴、可推广…

喜报!地方财政难题终于找到解决办法了,各地均可借鉴、可推广…

慧翔百科
2024-11-28 11:30:54
2024-11-28 23:04:49
CSDN
CSDN
成就一亿技术人
25090文章数 241906关注度
往期回顾 全部

科技要闻

讽刺谁?特斯拉称供应链付款周期缩至90天

头条要闻

专家:特朗普或采用五种方式来打贸易战 但天塌不下来

头条要闻

专家:特朗普或采用五种方式来打贸易战 但天塌不下来

体育要闻

道心破碎的姆巴佩,交出一张负分答卷

娱乐要闻

冯绍峰新恋情曝出!女方第一时间发文辟谣

财经要闻

洪灏:不要误解增量政策 不是数越大越好

汽车要闻

ID. CODE概念车/探岳L领衔 大众汽车携25款车亮相

态度原创

手机
本地
旅游
艺术
公开课

手机要闻

vivo X200S大揭秘:纯直屏+超声波指纹,外围参数都提升了

本地新闻

云游中国|来伦布夏果感受充满Passion的人生

旅游要闻

张家口一滑雪场吊厢突然停运 游客-15℃被困

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

公开课

一块玻璃,如何改变人类世界?

无障碍浏览 进入关怀版