“C++继任者”火到GitHub趋势榜一,C++之父:规范不足,无法评价
Alex发自凹非寺
量子位|公众号QbitAI
今年的CPPNorthC++大会上 , 谷歌宣布了一门新的编程语言Carbon , 并称其将是“C++的继任者” 。
谷歌将其在GitHub上开源 。 虽然这个语言目前还处于实验阶段 , 但还是很快吸了引众多程序员前来围观 , 还一度登上了GitHub趋势榜第一 , 现已收获标星21.3k 。

文章图片
对于谷歌方开发者称Carbon是C++的继承者一事 , 有国外媒体询问了C++之父BjarneStroustrup的看法 , 老爷子表示:
这些年总是有新的语言试图成为C++的继承者 , 我欢迎对编程语言和编程风格进行实验;
但Carbon太新且规范不足 , 我无法真正做出有意义的技术评论 。 而通常在不开发全新语言规则、库和管理方案的情况下 , 很难提供C++的替代方案 。
所以谷歌团队为什么非要搞一个C++“替代版”而不是继续完善现有的C++?毕竟他们自己内部都在广泛使用这个语言 。
为什么不去升级C++?对此 , 带领团队开发Carbon的谷歌工程师钱德勒·卡鲁斯(ChandlerCarruth)解释称 , C++至今已有40岁了 , 其自身的很多问题困扰着现在的开发人员 。
数十年来 , C++已积累了许多技术负债 。 其维护者优先考虑向后兼容 , 以便继续支持广泛使用的项目 , 但这样容易导致代码量巨大 。
【“C++继任者”火到GitHub趋势榜一,C++之父:规范不足,无法评价】而且C++虽然有开源的编译器(如gcc) , 但也有不少闭源编译器 , 其中的某些功能可能要过很久才能改善升级 。
此外 , C++语言的发展也受到了官僚委员会管理程序的阻碍 , 该程序以标准化而非设计为导向 , 这种做法导致很难给其添加新功能 。
解决这些问题的最佳方法是避免直接继承C或C++的“遗产” , 而是从语言基础开始 , 例如:现代泛型系统、模块化代码组织、一致的简单语法等 。
卡鲁斯也在CPP大会上提到 , 该语言并不是为了和C++未来改进版本竞争 , 而是——
“探索用C++做不到的事”正如微软创建TypeScript来更新JavaScript那样 , Carbon作为一种在C++基础上开发的新语言 , 将为更多开发者解决内存安全和泛型等问题 , 来弥补C++的不足 。

文章图片
目前Carbon语言的亮点包括:
Introducer关键字和简单语法;函数输入参数为只读值;指针提供间接访问和变体;使用表达式命名类型;通过包名导入APIs;强大且经过定义检查的泛型......此外 , 谷歌正在继续开发Carbon以支持以下功能:
性能关键型软件;软件和语言的演变;易于阅读、理解和编写的代码;实用的安全和测试机制;快速且可扩展的开发;现代操作系统平台、硬件架构和环境;与现有C++代码的互操作性和迁移性 。开发团队还将创建一个内置包管理器 , 这是C++中非常缺乏的 。
举个简单的例子:用C++代码和Carbon代码分别计算半径为1和2的两个圆面积之和 。 二者对比如图:

文章图片
△图源:GitHub;左为C++代码 , 右为Carbon代码
下图展示了Carbon和C++互通性 。 程序员可以在Carbon上调用C++库、方法和函数 , 而不需要额外的开销 , 反之亦然 。

文章图片
不过至于安全问题 , Carbon并没有一开始就建立内存安全系统 。
卡鲁斯介绍说 , 由于C++内存安全性很差 , 所以Carbon的研发起点很低 , 该项目优先考虑的是迁移而不是安全;希望以后Carbon至少可以和Go或Swift一样安全 。
- 腾讯云智能打法首揭秘!4条快速路让AI“开箱即用”
- 小米|插头“打架”问题终于解决:小米插线板8位总控版上架开售
- 程序员|程序员的口味变了!C++首次逆袭JAVA:跻身最受欢迎编程语言TOP3
- 12月13日消息|微软参展2022印度动漫展,win11“喧宾夺主”成为主角
- “通信行程卡”12月13日下线!中国信通院、三大运营商同步删除用户数据
- 垮塌|女子下班回家发现2千万豪宅“塌了”:科普何为毛细管网
- 唉|这么又“杀”我微信了?
- 最近我们经常遇到这样的购机需求:工作为主|价格真香表现全面的“工作站级设计本”!惠普战99测评
- 中兴|中兴被拉黑,10亿美元“罚款”没有白交,高通收购案才是关键点!
- 华为|华为遗憾出局?全球芯片市场大洗牌,麒麟芯片快要“归零”
