Facebook开始在生产环境中使用D语言

Andrei Alexandrescu在D语言论坛上发帖表示,他在Facebook的代码库中提交了第一个5112行的D语言项目,用于替换之前的C++版本。与之前的版本相比,新程序代码量更小,而编译、运行速度都获得了大幅提高。

值得一提的是,这个论坛本身就是用D开发的。响应速度很快。

Andrei Alexandrescu曾是著名的罗马尼亚C++程序员,著有《C++编程规范》、《C++设计新思维》。2007年曾到北京参加优快云的首届软件开发大会。近年来他活跃在D语言社区,成为D语言的另一位主要设计者,是《D程序设计语言》的作者。

在新兴的系统级编程语言中,D与Go有相近的应用场景,关于两种语言孰优孰略Andrei Alexandrescu与Ian Lance Taylor(Google工程师,GCC的Go前端作者)曾展开过一场热烈讨论。简要概括,Alexandrescu的观点是,D是更好的C++,C++擅长的它也擅长,C++不擅长的它也擅长;而Go是更好的C,但C的手工内存管理它却没有,与C的交互也比较弱。而Go的支持者则反击说,需要手工内存管理的地方,我都用汇编了。

另外,其实Go本身也支持不安全内存管理,但有评论说不优雅,比C和C++还麻烦。

D语言项目现在也托管在GitHub了:https://github.com/d-programming-language。

Hacker News上的评论很快演变为一场对系统编程语言选择的大讨论。Alexandrescu和D语言之父Walter Bright都参与其中。

现在看Go、D、Rust和Scala都有一些拥趸。此外,对什么是系统编程语言也有分歧,有人认为就等同于操作系统,有人认为应该是非应用层面(这说法其实挺含糊的)与硬件结合紧密的系统,包括操作系统、数据库、嵌入式系统和网络软件如防火墙等等。

你选择的系统编程语言是什么?欢迎说说这一选择带来的酸甜苦辣。

自然语言处理NLP星空智能对话机器人系列:Facebook StarSpace框架初体验 自然语言处理NLP星空智能对话机器人系列:Facebook StarSpace框架初体验 目录 Facebook StarSpace githubStarSpace 安装部署编译星际空间 Facebook StarSpace github github链接地址: https://github.com/facebookresearch/Starspace 星际空间 StarSpace StarSpace是一种通用神经模型,用于有效学习实体嵌入,以解决各种问题: 学习单词、句子或文档级嵌入。 信息检 阅读详情

相关推荐

AI编码的“黑箱危机”终结者:OpenSpec如何让你的代码从“猜谜”变“契约”?

OpenSpec的真正价值,在于它将AI编码从"经验驱动"推向"契约驱动"——当人类与AI对"目标是什么"达成显式共识,编码就从"猜谜游戏"变成了"工程实现"。这种转变不仅提升效率,更重塑了开发者与AI的关系:AI从"替代者"回归"协作者",而人类则聚焦于"定义正确的事"而非"正确地做事"。对于开发者,OpenSpec提供了驾驭AI的缰绳;对于团队,它构建了协作的基石;对于行业,它预示着AI编码工业化的开端。

haolove527的专栏 1348

巨头们的编程语言之争:我的语言就是比你好

今天,互联网巨头们也很任性,他们已经不满足于拥有自己的巨大的数据中心、豪华巴士以及有机午餐酒吧。他们还开始推出自己的编程语言,比如Google在2009年推出Go, Fa...

ifeves的博客 252

百度慧眼人口位置数据:从原理到实战的GIS处理全流程

本文详细解析百度慧眼人口位置数据的处理全流程,从基本原理到实战应用。通过空间网格划分、终端数量统计等技术手段,百度慧眼数据能准确反映人群分布特征。文章涵盖坐标系转换、核密度分析、热力图制作等GIS处理技巧,并分享商业选址、城市规划等典型业务场景的解决方案,帮助读者高效利用这一数据资源。

weixin_30872157的博客 534

C# 与 C 、 C++ 、 D 、 Java 的性能比较(三)

C# 与 C 、 C++ 、 D 、 Java 的性能比较(三) (文章转自http://mag.vchelp.net)jason f2i 抛开Intel不谈,可以看出C#在浮点到整型的转换中效率远远高于其余四个,仅是C,C++, 和D开销的2/3,是Java的2/5。在我让它们使用相同的随机数发生器前,不同语言的性能差异极大,这说明转换速度非常依赖具体的浮点数值,当然这是后见之明了。为了确保每个

许劲松的专栏 4908

LMI线性矩阵不等式之非线性变量处理

​ 如果一个LMI线性矩阵不等式中的某项存在两个矩阵变量相乘,那么称该类情形为非线性矩阵不等式,而要直接求解时很困难的,而且LMI工具箱也无法求解非线性矩阵,所以需要通过变量替换法进行处理。 ​...

Mr.邹的博客 4549

python 写一个简单的 telegram bot (电报机器人)

replit.com 环境配置太恶心了,只能使用 poetry.poetry 这个名字是挺好听,用起来也是很垃圾,太恶心。heroku.com 注册登录不方便,需要各种验证。所以,部署的问题,目前搁置。

waterHBO的博客 3192

D语言真相 The Case for D(1-5)

D语言真相 Andrei Alexandrescu 著   ideage,Colorful 译   译的不好,请大家指正! 06月18日 00:38 06月19日 23:45   让我们看看为什么D语言是值得认真研究的. 当然,我不能哄骗自己说服你很容易. 我们程序员是一群以奇怪的方式来组成和维持语言偏好的. 程序员下意识的反应是在书店看到某某编程语言的书籍后想:好了,...

D语言 D Language 积学致远 483

DC/DC开关电源EMC仿真红宝书

本红宝书系统性介绍开关电源EMC仿真方法,包括仿真原理、仿真思路、仿真工具以及仿真效率提升与仿测一致性的实战经验。从理论到仿真,从仿真到应用,真正帮你实现一文掌握开关电源EMC仿真!全文约14000字,适读人群:开关电源设计、电磁兼容EMC相关从业者,电磁相关专业研究生及CST仿真爱好者等。

电磁学社 2498

编程语言EF速度测试(2):n-body

这是一个专门的编程语言/编译器速度测试/对比网站(http://shootout.alioth.debian.org/)给出的题目,以下是EF源代码:import 工具;//n-bodypublic final class 启动类 { public static main() { int n = 20000000; int time = 运行环境.取

Liigo's blog 2437

EtherCAT从站协议栈---- sampleappl.c 文件解析

这个源文件实际上包含该项目的入口函数main函数。 那么如何找到入口函数呢? 可以进入debug的simulator模式,选中run to main(), 当执行完启动文件startup_cm3.s后就进入了main函数(注意在main函数之前还进入了SystemInit函数), 如下图所示: 这个main函数主要架构如下: int main(void) { HW_Init(); /*PDI(过程数据接口)初始化,这里用的是MCI接.

Jiawei_Z的博客 3066

Agentic AI为教育行业赋能,提示工程架构师解析应用潜力

然而,即便是最先进的 LLMs,在面对复杂、动态、需要持续规划和调整的教育场景时,也常常显得力不从心,它们更像是强大的“问答机器”,而非真正意义上的“学习伙伴”或“教学助手”。在教育场景中,传统的 AI 工具可能只能回答学生提出的特定问题,或者根据预设的规则推送一些学习材料。无论您是教育技术领域的开发者、产品经理,还是一线的教育工作者、教育管理者,抑或是对 AI 教育应用充满好奇的研究者,本文都将为您提供宝贵的 insights,助您把握 Agentic AI 时代教育创新的脉搏。

架构师的AI之路,分享AI应用开发架构的学习与实践。 466

解析d语言示例.

代码如下: import dparse.ast; import std.stdio, std.range; class TestVisitor : ASTVisitor { alias visit = ASTVisitor.visit; int indentLevel; override void visit(const FunctionDeclaration decl...

个人进步之路 1182

基于生存结局(生存分析/COX回归)的中介效应分析

① 建立观察变量OVB和中介变量MVB的回归模型(注意:这里根据mediation包的介绍,需要构建的是probit模型,而不是logist回归模型,网上有很多的代码用的logistic回归,结果自己跑的时候发现报错,我在这里陷了很久;为了方便演示,我们生成了一个协变量(Age)、一个连续型观察变量(liaOVC)、一个二分类观察变量(OVB)、一个连续型中介变量(MVC)、一个二分类中介变量(MVB)以及最后的结局变量(生存时间[time],生存结局[stats])。

m0_61863309的博客 1万+

D语言

—伴随着 Andrei Alexandrescu 新书《The D Programming Language》的出版,D 语言又变得活跃起来,D 语言 2.0 的特性变得稳定,运行库与标准库的分离,解决了 D 语言 1.0 时期标准库之争的问题。——D 语言的开发迁移到了 Github,在有了更好的代码管理和 bug 跟踪方式之后,参与到 D 语言编译器、运行库和标准库开发的人员也有了明显的增加。D语言在许多领域都有广泛的应用,如桌面应用程序、Web开发、游戏开发、系统编程等。

WSH2012ffff的博客 1309

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Gatsby 接入 Facebook Analytics 完整指南:gatsby-plugin-facebook-analytics 配置与源码解析

本文围绕 Gatsby 官方插件 `gatsby-plugin-facebook-analytics` 展开,讲解如何在 Gatsby 站点中快速接入 Facebook Analytics 统计与 Facebook JavaScript SDK,覆盖安装、`gatsby-config.js` 全量配置参数(含默认值与语义)、服务端注入与路由追踪的底层实现,以及测试用例所验证的行为边界。读完本文,你

gitblog_00323的博客 315

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python语言画大白_[Python] 使用Flask開發Facebook Message Bot

最近聊天機器人Bot這股趨勢才慢慢要崛起,之前做了一點觀察紀錄,這次進入實作階段,首先就直接使用Facebook Message Platform做為開始。其實Facebook官方文件寫的也蠻清楚的,只是有一些技巧要注意。前置作業先有一個粉絲團:粉絲團就是用來當作Bot的身份,只支援粉絲團對一般使用者聊天而已,先確定你有一個粉絲團是用來讓Bot綁定的,這邊可以選擇你既有的粉絲團或是新建立一個,如果...

weixin_39867296的博客 353

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

手把手教你搭建Facebook区块链Libra的开发环境

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.youkuaiyun.com/BEYONDMA/article/details/96763280 ———————————————— 脸书在发布了区块链新应用Libra之后,又发布了Libra的编程语言Move,可能是刚刚发布笔者尝试在ubantu系统下...

ontologycoding 382

Facebook 开源 M2M-100,不依赖英语互译百种语言

Facebook 10 月 19 日开源了M2M-100模型的源代码,并称该算法是第一个能够在不依赖英语数据的情况下,在 100 种语言之间进行翻译的算法。也就是这说,无需通过英文做中介,该模型就可对这 100 种语言直接互译。 M2M-100 基于 Facebook 的多语言模型XLM-R,使用 ccAligned,ccMatrix 和 LASER 等开源数据挖掘工具收集了包含 100 多种语言的超过 75 亿个句子,根据语言分类、地理和文化相似性等参数分为 14 种不同的语言组。在 14 个语言...

寒冰屋的专栏 1883

Facebook 的主要开发语言

fb的前端,或者叫“产品”组,的主要开发语言还是魔改后的“hack for PHP”。这部分即提供了所有社交网络业务相关的数据模型,也负责大部分的网页端渲染工作。 产品组另外就是渲染层的objectc,android java,react和react native。前两者必不可少,没办法。后一位优势显著,高交互性的ui很多都有react的版本。具体实现的时候去ui库里翻,翻着啥算啥。 除开基本数据...

多频传媒 3154

inject最佳实践:Facebook内部如何使用这个依赖注入库

inject是Facebook开发的Go语言依赖注入库,通过反射机制自动管理对象依赖关系,帮助开发者构建清晰、可维护的大型应用程序。作为Facebook内部广泛使用的工具,inject以其简洁的API和灵活的依赖管理能力,成为Go项目中实现依赖注入的首选方案。 ## 为什么选择依赖注入? 依赖注入(Dependency Injection)是一种设计模式,它通过将对象的依赖关系外部化,显著提升

gitblog_00955的博客 461

facebook修改权限_如何在Facebook上更改您的名字

facebook修改权限Whether you’ve just gotten married, no longer identify with your birth name, or just want to change the overly formal “Robert” to “Rob” on your profile, here’s how tochange the name you’r...

4524

Ego4D 项目使用与启动教程

Ego4D 是由 Facebook Research 开发的一个大型 egocentric(第一人称)视频机器学习数据集和基准测试套件。该数据集包含超过 3700 小时的标注第一人称视频数据,旨在推动 egocentric 视频理解的研究与开发。Ego4D 提供了一个丰富的数据资源,适用于各种机器学习和计算机视觉任务。 ## 2. 项目快速启动 ### 环境搭建 首先,确保您的环境中已安装

gitblog_00675的博客 1121

Ego4D 项目安装与配置指南

Ego4D 是由 Facebook Research 开发的一个大规模的、以第一人称视角(egocentric)为主的视频机器学习数据集和基准测试套件。它包含了超过 3700 小时的带注释的第一人称视频数据。该项目旨在推动第一人称视频理解的研究,并提供了一个用于下载、分析和使用这些数据的 Python 模块。 主要编程语言:Python ## 2. 项目使用的关键技术和框架 - **Torc

gitblog_00993的博客 1024

facebook 开源_Facebook开源主管开放

facebook开源 以下是詹姆斯·皮尔斯 ( James Pearce )的部分抄录 OSCON会话在Facebook上重新启动开源 。 数百年来,开放已胜过封闭—共享已胜过保密。 以一种谦逊的方式,这通知了我们Facebook的程序。 我们在Facebook上有200个活跃项目,提供了1000万行代码。 有数百名工程师从事这些工作,拥有超过100,000个关注者和20,000个...

cuml0912的博客 374

Facebook海外营销:HeyGem制作多语言广告

借助HeyGem系统,企业可实现多语言广告视频的自动化生产,通过高精度唇形同步技术,将单一脚本快速转化为数十种语言版本,结合本地化数字人形象,显著提升海外投放效率与转化率,同时保障数据安全与品牌一致性。

weixin_29781865的博客 731

无涯教程-D语言 - 简介

由沃尔特·布莱特和安德烈·亚历山德雷斯库所开发,起源自C++,深受C++的影响,然而其不是C++的变种,而是重新设计来自C++的部分特性,并受到其它编程语言观念的影响,如Java、C#以及Eiffel。Walter Bright本身是Symantec C++ 编译器的作者,另一名作者Andrei Alexandrescu是Facebook的研究科学家,他与一个团队用D语言重写一些Facebook的重要操作。无涯教程网提供D语言是一种编程语言,具备多范型,例如面向对象、指令式。

无涯教程 182
上一篇: 为什么GCC将变量名“linux”视为常量“1”?
下一篇: F1领跑赛车的秘密
923940cub
博客等级 码龄17年 121粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值