当前位置: 首页 > 科技观察

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

时间:2023-03-15 22:44:48 科技观察

在编程语言的世界里,C++扮演着非常重要的角色。在2022年5月的TIOBE编程语言排行榜中,C++排名第四。同样,Google在内部广泛使用C++。资料来源:https://hellogithub.com/report/tiobe/但近日,在加拿大多伦多举行的CPPNorthC++大会上,谷歌工程师ChandlerCarruth宣布谷歌正在打造一种新的编程语言——Carbon,并将其作为C++的后继者。目前,Carbon编程语言处于试验阶段。正如微软创建TypeScript来更新JavaScript,JetBrains创建Kotlin来弥补Java的短板一样,Carbon将作为C++的替代品,为开发者提供一种全新的语言来解决内存安全和泛型等现代开发概念。在谈到为什么要取代C++时,Carruth表示,C++作为长期以来构建性能关键型应用程序的首选语言,其自身存在许多困扰现代开发人员的问题。C++积累了数十年的技术债务,承载了许多作为其前身C的一部分的过时做法。C++的维护者优先考虑向后兼容性,以便继续支持Linux及其包管理生态系统等广泛使用的项目。此外,C++语言的发展受到官僚委员会流程的阻碍,该流程以标准化而非设计为导向。这种做法使得添加新功能变得困难。C++在很大程度上是一个孤立的开发过程,其中一些重要的决定可能需要数年时间。因此,Carruth希望通过更加开放的社区主导环境来构建Carbon语言,并将其开源。目前,该项目在GitHub上已获得16.5kStars。GitHub开源地址:https://github.com/carbon-language/carbon-langCarbon的设计理念和特点Google希望在2022年底推出Carbon的核心工作版本v0.1。Carbon将在建立在现代编程原则之上,包括一个泛型系统,使开发人员无需检查和重新检查每个实例的代码。C++语言中一个急需的特性是内存安全。内存访问错误是安全漏洞的罪魁祸首之一,Carbon设计人员将探索更好的方法来跟踪未初始化的状态,设计支持动态边界检查的API和习语,并构建一个全面的默认调试构建模式。随着时间的推移,设计人员还计划构建一个安全的Carbon子集。Carbon语言将支持以下功能:性能关键型软件;软件和语言的演变;易于阅读、理解和编写的代码;实用的安全和测试机制;快速且可扩展的开发;现代操作系统平台、硬件架构和环境;与现有C++代码的互操作性和迁移。同时,Carbon语言的亮点包括:Introducer关键字和简单的语法;函数输入参数是只读值;指针提供间接访问和变体;使用表达式命名类型;包是根命名空间;通过包名导入API;声明带有显式对象参数的方法;单继承,默认使用final类;强大且经过定义检查的泛型;类型显式实现接口。Carbon设计团队将着手创建一个内置的包管理器,这是C++中非常缺乏的。此外,该团队计划编写一些工具来将C++代码迁移到Carbon代码。下图左边是C++代码,右边是Carbon写的同样的功能:为什么不大力发展Rust语言?有人可能会问:最近有专门针对内存安全性能应用需求而构建的Rust语言,为什么不直接使用呢?Carruth对此表示,如果Rust适合你,就继续使用它。然而,将C++生态系统转移到Rust是非常困难的。相比之下,Carbon建立在现有C++生态系统之上,适合已经拥有大型C++代码库且难以转换为Rust的开发人员。Carbon有望成为C++的“接班人”。计算机编程语言是编程最重要的工具。每个程序员都有一套自己熟悉的编程语言。此前,谷歌也开源了该编程语言。比如谷歌在2006年开源了Go语言,其目标是将Python等动态语言的开发速度与C/C++等编译型语言的性能和安全性结合起来。在短短几年内,Go成为最流行的语言之一,许多大公司都使用Go开发自己的产品。与此同时,原本打算取代JavaScript的Dart编程语言直到Flutter发布后才成为主流。这一次,谷歌新的内部编程语言Carbon还处于试验阶段。你如何评价它?有网友表示:C++在特定任务上很好,但现在看起来像个怪物,现在Carbon看起来很不错。甚至有人说,Carbon有望成为C++的“接班人”:不过,也有人认为Carbon的底层是用C++实现的,C++实现的编程语言,取代C++的说服力不足。不过,预计会有一批新的程序员登陆Carbon。有网友想将Carbon和JavaScript进行比较,看看哪个更好:几年后,Carbon会再次成为流行的编程语言吗?