取代C++?谷歌开源编程语言Carbon,网友评价太真实了
目前,Carbon编程语言正处于实验阶段。
在编程语言的世界中,C++的地位举足轻重。在2022年5月的TIOBE编程语言排行榜中,C++位列第四。同样地,谷歌内部也在广泛使用C++。
图源:https://hellogithub.com/report/tiobe/
不过近日,在加拿大多伦多举办的 CPP North C++大会上,谷歌工程师 Chandler Carruth宣布谷歌内部正在打造一种新的编程语言——Carbon,并将它作为C++的继任者。目前,Carbon编程语言正处于实验阶段。
正如微软创建TypeScript来更新JavaScript、JetBrains创建Kotlin来弥补Java的缺点,Carbon将作为替代C++的语言,为开发人员提供一种全新的语言来解决内存安全和泛型等现代开发概念。
在谈到为何要替代 C++ 时,Carruth表示,C++作为长期以来构建性能关键应用的首选语言,它自身的很多问题困扰着现代开发人员。C++积累了数十年的技术负债,带有的很多过时实践都是其前身C语言的一部分。C++ 的维护者优先考虑向后兼容,以便继续支持广泛使用的项目,例如Linux及其包管理生态系统等。
此外,C++语言的发展也受到了官僚委员会程序的阻碍,该程序以标准化而非设计为导向。这种做法导致很难添加新功能。C++在很大程度上处于一个隔绝的开发过程,其中可能经过数年才会做出一些重要决定。
因此,Carruth希望通过更开放的社区主导环境来构建Carbon语言,并已开源。目前,该项目已在GitHub上获得了16.5k的Stars。
GitHub开源地址:https://github.com/carbon-language/carbon-lang
Carbon的设计理念和特性
谷歌希望在2022年年底推出Carbon的核心工作版本,即v0.1。Carbon将建立在现代编程原则的基础上,包含一个泛型系统,使开发人员不再需要为每个实例检查和再核对代码。
C++ 语言中亟需的一个特性是内存安全。内存访问 bug是安全漏洞的罪魁祸首之一,Carbon 设计人员将探索追踪未初始化状态的更好方法、设计支持动态边界检查的 API和惯用语,并构建全面的默认debug构建模式。随着时间的推移,设计人员还计划构建一个安全的Carbon子集。
Carbon语言将支持以下功能:
性能关键型软件;
软件和语言演变;
易于阅读、理解和编写的代码;
实用的安全和测试机制;
快速且可扩展的开发;
现代操作系统平台、硬件架构和环境;
与现有C++代码的互操作性和迁移。
同时,Carbon语言的亮点包括如下:
Introducer关键字和简单语法;
函数输入参数为只读值;
指针提供间接访问和变体;
使用表达式命名类型;
软件包为root命名空间;
通过包名导入APIs;
用显式对象参数来声明方法;
单继承、默认使用最终类;
强大且经过定义检查的泛型;
类型显式地实现接口。
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会不会又成为一种热门编程语言呢?
原文链接:
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/
推荐阅读
香港理工大学IEEE Fellow 李青教授团队招收机器学习全奖博士/研究助理
西电IEEE Fellow团队出品!最新《Transformer视觉表征学习全面综述》
如何做好科研?这份《科研阅读、写作与报告》PPT,手把手教你做科研
香港理工大学招收大数据/机器学习博士后/博士生(全年招聘)
【全奖博士招生】美国普渡大学数字孪生实验室王子然博士团队自动驾驶与VR方向
香港中文大学(深圳)吴保元教授招收全奖博士/博后/访问学生
北京大学智能计算与感知实验室招收硕士/博士/科研实习生
【全奖博士】香港大学招收计算机视觉方向博士/博后/研究助理
一位博士在华为的22年
最新 2022「深度学习视觉注意力 」研究概述,包括50种注意力机制和方法!
【重磅】斯坦福李飞飞《注意力与Transformer》总结,84页ppt开放下载!
2021李宏毅老师最新40节机器学习课程!附课件+视频资料
欢迎大家加入DLer-计算机视觉技术交流群!
大家好,群里会第一时间发布计算机视觉方向的前沿论文解读和交流分享,主要方向有:图像分类、Transformer、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。
进群请备注:研究方向+学校/公司+昵称(如图像分类+上交+小明)
取代C++?谷歌开源编程语言Carbon,网友评价太真实了相关推荐
- 11 岁小学生自创“编程语言”,网友:太卷了,后浪都这么厉害了
????????关注后回复 "进群" ,拉你进程序员交流群???????? 作者丨轩辕之风O 来源丨编程技术宇宙(ID:xuanyuancoding) 长江后浪推前浪,前浪死在沙滩 ...
- 谷歌第一个开源编程语言_我的第一个开源冒险
谷歌第一个开源编程语言 by Anthony Ng 由Anthony Ng 我的第一个开源冒险 (My First Open Source Adventure) ✨✨灵感✨✨ (✨✨ Inspirat ...
- 【小睿精选·第四期】谷歌开源更快、更高效的 TensorFlow 运行时 TFRT
[小睿精选] [小睿精选]第四弹来啦,本期共收录6条嵌入式资讯信息,希望可以帮到你.欢迎大家在文末留言,唠一唠你关注的话题,说不定下期就有你想要的惊喜! 1.中科蓝讯与阿里"平头哥" ...
- ImageNet的top-1终于上了90%,然而谷歌却遭众网友吐槽
作者 | 陈大鑫 来源 | AI科技评论 每件事物的出现都有它各自的使命,我们提到数据集就绕不过ImageNet,ImageNet数据集及其它推动的大规模视觉比赛对人工智能特别是计算机视觉领域的巨大贡 ...
- 深度解读谷歌开源的最精确自然语言解析器SyntaxNet
深度解读谷歌开源的最精确自然语言解析器SyntaxNet 谷歌开源了SyntaxNet,也发布了针对英语的预训练解析程序 Parsey McParseface.除了让更多人使用到最先进的分析技术之外, ...
- 谷歌开源下一代推荐系统模拟器:RecSim NG
谷歌开源下一代推荐系统模拟器:RecSim NG 一元@炼丹笔记 推荐系统是连接用户与各种在线内容的主要接口,因此必须克服用户流行度的问题,这样可以保证公平地为他们服务.为此,在2019年我们发布了R ...
- 谷歌开源 Kotlin 版本 gRPC
谷歌开源了 gRPC-Kotlin/JVM,让开发者可以在 Kotlin 项目中更方便地使用 gRPC,以更简单的方式构建可靠的网络连接服务. gRPC 是谷歌开源的高性能.通用 RPC 框架,支持多 ...
- 谷歌开源代码评审规范:好坏代码应该这样来判断
谷歌开源了一套代码评审(Code Review)规范,它是谷歌一套通用的工程实战指南,几乎涵盖了所有编程语言与各种类型的项目,这个规范代表了谷歌长期发展以来最佳实战经验的集合,谷歌表示希望开源项目或其 ...
- 谷歌开源 Python 代码漏洞查找工具 Atheris
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 谷歌安全专家又开源了另外一款自动化模糊测试工具,希望开发人员能够使用该工具在漏洞遭利用前,找到并修复漏洞.这款工具名为"At ...
最新文章
- iOS 自定义UITabBar
- python3 列表的增删改查
- 软件设计原则——依赖倒转原则
- uvm 形式验证_IC设计职位详解之“数字验证工程师”就业必学课程
- 最小生成树Kruskal算法+并查集检查连通
- 用 less 自制 bs 栅格布局
- 基于JAVA+SpringBoot+Mybatis+MYSQL的社区物业管理系统
- 2017年 Java 程序员,风光背后的危机
- THUWC2019游记
- Sentinel限流实战
- 自动驾驶 2-3 软件架构 Software Architecture
- html页面透明背景,css 背景透明 元素(标签)背景透明的css设计
- 关于网络的命令及介绍
- 神经网络(线性神经网络、Delta学习规则)
- 微信扫一扫(wx.scanQRCode)功能新手可能遇到的问题
- 利用AI强化学习训练50级比卡超单挑70级超梦!
- ECS与EDAS什么意思?
- TTMS剧院票务管理系统(xupt)
- C# Microsoft.Office.Interop.Word设置Word页脚之添加当前页数
- GITHUB执行git clone项目下载不全不完整
热门文章
- 军警岗哨巡逻管理系统
- php正则 过滤 特殊符号,PHP过滤★等特殊符号的正则
- 【Python之路】特别篇--Git GitHub
- 外汇天眼:美国12月Markit制造业PMI初值不及预期 市场担忧经济下滑
- 华为交换机接口速率,双工模式配置,协商模式配置
- 一口好牙从宝宝爱上刷牙并使用护牙剂开始
- 方舟:生存进化PVE模式和PVP模式
- mysql 双冒号_沙河壹佰
- 2012年《Satellite Image Time Series Analysis Under Time Warping》:动态时间规整(DTW)在遥感中的应用
- 虚拟机共享计算机的网络连接,个人经验教你怎样实现虚拟机上网(VM共享主机IP)-虚拟机上网设置...