写点什么

C++ 将被取代?谷歌发布开源编程语言 Carbon:与 C++ 能双向互操作

  • 2022-07-21
  • 本文字数:1263 字

    阅读完需:约 4 分钟

C++将被取代?谷歌发布开源编程语言Carbon:与C++能双向互操作

在 7 月 15 日至 21 日举行的多伦多北部 C++开发者大会(The Northern C++ Conference)上,谷歌工程师 Chandler Carruth 宣布了名为“Carbon”的全新开源开发语言,并称它将是 C++的继任者。

 


 Carbon 项目地址: https://github.com/carbon-language/carbon-lang

 

Chandler Carruth 表示,Carbon就是谷歌内部构建的最新编程语言,它拥有与 C++的“双向互操作性”,也就是说开发者可以直接在 Carbon 语言的程序中使用 C++,这大大提升了项目迁移的便捷性。

 

多年来,谷歌构建出了多个新兴的编程语言,其中一些已经在业内有了很高的知名度。

 

例如,Golang(或简称 Go)是为了改进服务器和分布式系统的开发而创建的,并已被公众采用。此外,最初旨在替代 JavaScript Dart 编程语言在 Flutter 发布后也开始成为主流编程语言。

 

在出席此次 C++开发者大会上,Chandler Carruth 分享了他对于 Carbon 这个新编程语言的愿景。Carruth 展示了当今最流行的编程语言中有多少个语言是有继任者的,这些所谓的继任者可以让开发人员快速提高生产力并利用更现代、或者更简洁的语言设计程序。



Android 开发者很清楚 Kotlin 是 Java 的继任者,正如 iOS 开发者知道 Swift 是 Objective-C 的继任者一样。

 

来自 Microsoft 的 TypeScript 彻底增强了 JavaScript 性能,同时能够让开发者便捷地使用 TypeScript 并能够“转译”回 JavaScript。C++ 在谷歌中得到了大量使用,它有点像古老的 C 语言的继任者。

 

虽然有些人可能会认为 Rust 最初是一个 Mozilla 项目,后来它拥有了大量追随者,但如果要说 Rust 是 C++ 的继任者,也并不准确。不可否认,Rust 的确是一种很好的启动新项目的语言,但它不像 Java 和 Kotlin 那样具有“双向互操作性”,因此很难稳定地迁移。

 

如果 Rust 今天适合你,你应该使用它。但是将 C++ 生态系统迁移到 Rust 是很困难的。

 

为此,虽然 Carbon 与 Rust 有许多相同的目标,例如帮助开发人员创建“性能关键软件”,但 Carbon 还旨在与现有的 C++ 代码实现完全互操作。此外,如果需要,目标是尽可能轻松地从 C++ 迁移到 Carbon。

 

至于为什么 C++ 开发人员可能要考虑将 Carbon 引入他们的代码库,Carruth 在会上还分享了该语言的许多亮点。

 

  • Introducer keywords 和简单的语法

  • 函数输入参数是只读值

  • 使用表达式来命名类型

  • 通过包名导入 API

  • 强大的、经过定义检查的泛型

  • ......

 

在 Carbon 的 README.md 文件中,Carbon 团队提到,虽然 C++现在依旧是有着主导性地位的语言,并有着庞大的代码库,但由于数十年的技术积累,想要持续改进 C++已经是极其困难的一件事。

 

而 Carbon 则不同,它在继承了 C++现有特性与生态的基础上,足够年轻,也足够“现代化”,拥有更为广阔的优化空间,潜力更大。

 

同时,Carbon 团队还表示,该项目的所有代码将全部公开托管在 GitHub 上,并开放 PR,这使得任何开发者都有了根据自己的需求优化改进 Carbon 语言的可能。

 

参考链接:

 

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

https://twitter.com/code_report/status/1549384029308338176/photo/1

https://github.com/carbon-language/carbon-lang

2022-07-21 11:474744
用户头像
李冬梅 加V:busulishang4668

发布了 572 篇内容, 共 210.4 次阅读, 收获喜欢 736 次。

关注

评论

发布
暂无评论
发现更多内容

11. 用别人写好的代码,完成我的工作,剩下的时间去摸鱼

梦想橡皮擦

Python 2月春节不断更 python入门

CI-基于JMeter的性能测试

夏兮。

DO、DTO、BO、VO、POJO区别

安琪拉的博客

系统设计

Flink集群部署:Standalone部署

正向成长

自动化测试中的Page Object

夏兮。

Python PO selenium

week12-conclusion

J

分布式任务框架:xxl-job使用问题整理

程序员架构进阶

开源 分布式任务调度 七日更 2月春节不断更 XXL-JOB

LeetCode题解:62. 不同路径,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

数据量大读写缓慢如何优化(5)【读缓存】

我爱娃哈哈😍

redis 缓存 架构设计实战 缓存设计

Elasticsearch Mapping Index索引

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

第四章作业

Deborah

诊所数字化:诊所老板为什么拒绝预约制?

boshi

数字化转型 医院 七日更

深度讲解背包问题:面试中每五道动态规划就有一道是背包模型 ...

宫水三叶的刷题日记

深度思考 面试 LeetCode 动态规划 数据结构与算法

程序员成长第八篇:做好测试工作

石云升

程序员 测试 2月春节不断更

年终述职PPT(996一年,怎么会什么都没干!)

Arvin

年终总结

开箱即用cypress

夏兮。

PO Cypress

第十二周命题作业

cc

日记 2021年2月16日(周二)

Changing Lin

2月春节不断更

week12-homework

J

ARTS打卡 第31周

引花眠

微服务 ARTS 打卡计划

web自动化测试-puppeteer入门与实践

夏兮。

puppeteer

Jacoco统计web接口/功能测试的代码覆盖率

夏兮。

tomcat WebService JACOCO

第十二周学习心得

cc

ElasticSearch.02 - 安装

insight

elasticsearch 2月春节不断更

如何搭建自动化测试框架

夏兮。

js puppeteer automation

sonarLint与IntelliJ IDEA 集成

夏兮。

翻译:《实用的Python编程》01_04_Strings

codists

人工智能 爬虫 后端 数据结构与算法 Python Monad

什么是MySQL数据库?看这一篇干货文章就够了!

我是哪吒

学习 程序员 后端 MySQ 2月春节不断更

SonarQube&Gitlab-CI 实现静态代码分析

夏兮。

ci gitlab SonarQube

【STM32】TIM---基本定时器

AXYZdong

硬件 stm32 2月春节不断更

面向对象设计原则

引花眠

面向对象设计原则

C++将被取代?谷歌发布开源编程语言Carbon:与C++能双向互操作_语言 & 开发_李冬梅_InfoQ精选文章