编程语言也卷,Google开源Carbon,要替代C++

点击上方蓝色“飞雪无情”关注我的公众号,设个星标,第一时间看文章

前几天,在多伦多开了一个CppNorth大会,就是在这个大会上,Google的工程师正式宣布开源Google内部打造的编程语言Carbon,想用它来替代C++,称之为C++的继任者。

3f44876c6546f9ca9495b0706a7aee8b.png

这让我想到了2010年发布的Rust,也是要替代C++,但是现在12年过去了,C++依然坚挺,在TIOBE Index 公布的7月份编程指数中,C++排在了第四位,而Rust则在第29位。

这也不难理解,毕竟有那么多C++项目,Rust又不支持「双向互操作」,所以从C++迁移到Rust并不是那么简单,而且已经熟练了使用C++的开发者们,也不愿意再学一门Rust语言重写一遍,其实也没必要,倒是有些新的项目会考虑Rust。

如果你看下Carbon的整体设计,会有一股浓浓的Rust味道(和Kotlin也很像),并且也改善了C++很难迁移到Rust的问题,支持Carbon、C++「双向互操作」,可以直接导入C++代码运行使用,这一点和Kotlin很像,在Kotlin中就可以直接使用Java代码。

事实上,在Carbon宣布开源的PPT中,的确提到了Java到Kotlin 、JavaScript到TypeScript的进化,所以Carbon也被定为C++到Carbon的进化。

不过从目前的使用情况来看,TypeScript进化算是比较成功的,越来越多的前端开发者认可了这门语言,但是Kotlin还存在悬念,Kotlin目前应用比较多的还是Android开发,Java后端开发并不是那么愿意去学这门语言来替换Java。

顺带提一句,2011年面世的Kotlin,现在TIOBE Index排名第35位。

d1f366bb320793268d930abc84386fe2.png

Google为什么想把C++进化到Carbon呢?首先他们认为C++数十年的技术债务太大,很难逐步概念,还不如直接创建一门新语言,这样就避免继承C++的很多问题,可以从零到一的设计这门语言。这和我们自己开发项目很像,历史包袱很重的时候,还是不如废弃重新做个项目来的快。

第二个就是现在编程语言提供了出色的开发体验,比如Golang、Rust等等,这个的确是,现代语言的库管理、格式化、命名、并发等,使用上都非常方便,工作效率很高。

但是这些语言也不能替换C++,Carbon的认为的原因就是上面提到的迁移成本大。

所以Carbon的设计目标就有了:可以和C++无缝集成,也就是双向互操作性,现有的C++库可以直接用;现代语言体验好,高效;性能不能太差,要匹配C++。

从 https://github.com/carbon-language/carbon-lang 官网Repo来看,还有很多特性处于TODO状态,所以这些个目标什么时候能实现,还不好说。

即使正式版本发布了,能不能替代C++又是一个未知数,这一点从Kotlin、Rust就能看出来,数十年的努力,也没有达到。

一门语言要想普及,必须得低成本的解决企业开发问题,这样才有普及的可能。开发成功本,效率低,开发者不愿意学,企业找不到相应的开发者,都是普及的阻碍。就像Kotlin,Java后端的开发者是不愿意换的,那么企业去哪招人?即使招到,成本也高,Kotlin在后端自然就不容易普及。

据说,Carbon的诞生还和C++ ABI有关。Google想改变C++的ABI,解决内部的问题,但是被C++委员会给否了,所以才在内部搞了Carbon这个项目,用于在代码层面全面兼容C++,解决内部的C++ ABI问题。

一言不合就开发新编程语言,不光我们打工人卷,编程语言也卷。现在Carbon的加入,就是C++、Rust和Carbon一起卷,这还是近亲(同一类的),远的还有Golang、Python、Java、TypeScript一起卷,以后出门聊天,只会一门编程语言,都不好意思张嘴。

102fb005cb73a441082e7cea9dc79240.png

扫码关注

分享、点赞、在看就是最大的支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值