取代C++?谷歌开源编程语言Carbon,网友评价太真实了

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

点击进入—> CV 微信技术交流群

转载自:机器之心 | 编辑:杜伟、陈萍

在编程语言的世界中,C++的地位举足轻重。在2022年5月的TIOBE编程语言排行榜中,C++位列第四。同样地,谷歌内部也在广泛使用C++。


810284ff0a67814365e0fa755b64a268.png图源:https://hellogithub.com/report/tiobe/

不过近日,在加拿大多伦多举办的 CPP North C++大会上,谷歌工程师 Chandler Carruth宣布谷歌内部正在打造一种新的编程语言——Carbon,并将它作为C++的继任者。目前,Carbon编程语言正处于实验阶段。

正如微软创建TypeScript来更新JavaScript、JetBrains创建Kotlin来弥补Java的缺点,Carbon将作为替代C++的语言,为开发人员提供一种全新的语言来解决内存安全和泛型等现代开发概念。


a154fecfe52d0238305bf83d165727c6.png

在谈到为何要替代 C++ 时,Carruth表示,C++作为长期以来构建性能关键应用的首选语言,它自身的很多问题困扰着现代开发人员。C++积累了数十年的技术负债,带有的很多过时实践都是其前身C语言的一部分。C++ 的维护者优先考虑向后兼容,以便继续支持广泛使用的项目,例如Linux及其包管理生态系统等。

此外,C++语言的发展也受到了官僚委员会程序的阻碍,该程序以标准化而非设计为导向。这种做法导致很难添加新功能。C++在很大程度上处于一个隔绝的开发过程,其中可能经过数年才会做出一些重要决定。

因此,Carruth希望通过更开放的社区主导环境来构建Carbon语言,并已开源。目前,该项目已在GitHub上获得了16.5k的Stars。


f3651cbe90a50083cc1145a33ddbc302.pngGitHub开源地址:https://github.com/carbon-language/carbon-lang

Carbon的设计理念和特性

扫描二维码关注公众号,回复: 14401060 查看本文章

谷歌希望在2022年年底推出Carbon的核心工作版本,即v0.1。Carbon将建立在现代编程原则的基础上,包含一个泛型系统,使开发人员不再需要为每个实例检查和再核对代码。

C++ 语言中亟需的一个特性是内存安全。内存访问 bug是安全漏洞的罪魁祸首之一,Carbon 设计人员将探索追踪未初始化状态的更好方法、设计支持动态边界检查的 API和惯用语,并构建全面的默认debug构建模式。随着时间的推移,设计人员还计划构建一个安全的Carbon子集。

Carbon语言将支持以下功能:

  • 性能关键型软件;

  • 软件和语言演变;

  • 易于阅读、理解和编写的代码;

  • 实用的安全和测试机制;

  • 快速且可扩展的开发;

  • 现代操作系统平台、硬件架构和环境;

  • 与现有C++代码的互操作性和迁移。

同时,Carbon语言的亮点包括如下:

  • Introducer关键字和简单语法;

  • 函数输入参数为只读值;

  • 指针提供间接访问和变体;

  • 使用表达式命名类型;

  • 软件包为root命名空间;

  • 通过包名导入APIs;

  • 用显式对象参数来声明方法;

  • 单继承、默认使用最终类;

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

  • 类型显式地实现接口。

Carbon设计团队将着手创建一个内置包管理器,这在C++中非常欠缺。此外,团队还计划编写一些将C++代码迁移到Carbon代码的工具。下图左为C++代码,右为Carbon编写的相同函数:


93d5b259564e96f8ac0030561390a75c.png

为何不大力发展Rust语言呢?

有人或许会问了:最近有专门为解决内存安全性能应用的需求而构建的Rust语言,为何不直接使用它呢?Carruth对此表示,如果Rust适合你,就继续使用。但是,将C++的生态系统转移到Rust非常困难。


742d0e2f4ebb0a97f6271cfb3ce6ec29.png

相比之下,Carbon是建立在已有C++生态系统之上,适合那些已经拥有大量C++代码库的开发人员,这些库很难转换到Rust。

Carbon有望成为C++的「继任者」


计算机编程语言是程序设计最重要的工具,每个程序员都有自己熟悉的一套编程语言。

此前,谷歌也开源了编程语言。例如2006年谷歌开源Go语言,其目标是兼具Python 等动态语言的开发速度和C/C++等编译型语言的性能与安全性,短短几年,Go成为最热门语言之一,许多大公司用Go来开发自己的产品。与此同时,最初旨在替代 JavaScript 的 Dart 编程语言直到 Flutter 发布才成为主流。

这次谷歌内部新打造的编程语言Carbon,还处于实验性阶段,大家的评价如何呢?

有网友表示:C++对于特定的任务是好的,但现在看起来就像一个怪物,而现在Carbon看起来就很不错。


61a4951363176657ca9d296bcc397abd.png

更有人表示Carbon有望成为C++的「继任者」:


dbedcd13b2f3aa747c546aba574b903b.png

不过也有人认为:Carbon底层是用C++实现的,一个用C++实现的编程语言,想要替代C++,说服力不够。不过预测又会有一批新程序员上岸Carbon。


48685fb898768ad62c064a1cdd91bbff.png

还有网友想让Carbon与JavaScript进行一番比较,看看哪个更好:


f652831a2aa6b730cbbc00314dca74d6.png

几年之后,Carbon会不会又成为一种热门编程语言呢?


原文链接:
https://twitter.com/code_report
https://9to5google.com/2022/07/19/carbon-programming-language-google-cpp/
https://thenewstack.io/google-launches-carbon-an-experimental-replacement-for-c/

点击进入—> CV 微信技术交流群

 
  

CVPR 2022论文和代码下载

后台回复:CVPR2022,即可下载CVPR 2022论文和代码开源的论文合集

后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF

目标检测和Transformer交流群成立
扫描下方二维码,或者添加微信:CVer6666,即可添加CVer小助手微信,便可申请加入CVer-目标检测或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测或者Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲扫码或加微信: CVer6666,进交流群
CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!

▲扫码进群
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看

猜你喜欢

转载自blog.csdn.net/amusi1994/article/details/125986430