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

Google终于开始革新C++!

时间:2023-03-15 19:17:54 科技观察

Microsoft使用TypeScript彻底改变了JavaScript。苹果用Swift彻底改变了Objective-C。JetBrains使用Kotlin彻底改变了Java。现在,谷歌终于要对C++进行手术了。这个黑圈里的C不是C语言,而是叫做:Carbon为什么谷歌要造一个Carbon?C++不是Google排名前五的语言之一吗?C++、Java、Python、JavaScript、Go长期以来,C++一直是程序员构建性能关键型应用程序的主要语言,积累了大量的项目和库。但C++本身非常复杂,几十年来,这些项目和库慢慢变成了技术债。C++也在努力发展,但受到标准化而不是面向设计的官僚委员会流程的阻碍,添加新功能很困难,而且一个特别委员会可能需要数年时间才能在瀑布流程中做出重要决策。可想而知,当谷歌人面对一个C++代码海量、C++难以改进的系统时,是多么的无助。既然如此,那就重启炉子,用Carbon来烧C++吧!为什么不直接使用Rust?很多人可能会有这个疑问。Rust同样面向系统级编程,被Mozilla设计为一种内存安全的语言来替代C。谷歌认为Rust非常适合新项目,但问题是它不具备“双向互操作性”像Java和Kotlin,并且很难将C++生态系统迁移到Rust。另一方面,Carbon的目标是成为C++的继任者,并且围绕与C++的互操作性和现有C++代码库的迁移而设计。不得不说,生态的力量再次得到彰显。要搬人的时候,最好把手头的财物全部搬走,不然大家都舍不得走。Carbon的设计目标是这样的:性能要和C++媲美,否则就没有吸引力。与C++无缝衔接,双向互操作的代码应该易于编写和阅读,具有实用的安全和测试机制,并且具有平缓的学习曲线,不要吓跑大家支持现有的软件设计和架构开发团队还将致力于创建一个内置的包管理器,这是几乎所有语言的必备工具。通过这种方式,Carbon可以吸引开发人员并保护基于现有C++生态系统(如TypeScript和Kotlin)的现有投资。看看Carbon的代码:importConsole;//打印小于`limit`的斐波那契数列。fnFibonacci(limit:i64){var(a:i64,b:i64)=(0,1);while(a