效力19年后,Go核心人物官宣离开Google!

作者 | Ian Lance Taylor       翻译| 苏宓

出品 | CSDN(ID:CSDNnews)

对于稍微熟悉 Go 语言的开发者来说,Ian Lance Taylor 这个名字并不陌生。作为 Go 项目的早期核心成员之一,Taylor 于 2008 年加入团队,参与了 gccgo 编译器的开发,协助规范语言标准,并在推动泛型(generics)功能落地方面发挥了关键作用——这一重要功能最终在 2022 年随 Go 1.18 正式发布。

近日,Taylor 在其个人博客发布题为《Leaving Google》的文章,宣布结束自己在 Google 长达 19 年的职业生涯。他坦言,随着 Google、Go 项目及整个编程环境的演变,自己已不再适合继续参与 Go 在 Google 内部的发展,因此选择离开,迈向新的阶段。

Ian Lance Taylor 的离职也引发了开发者们对 Go 语言未来的诸多讨论与感慨。有人评价道:“他是我见过代码审查速度最快的人之一,对 Google 来说,这无疑是个巨大的损失。”

也有网友表示:“一个时代的结束。我一直非常欣赏 Ian 的贡献,无论是近距离的协作,还是远处静静观察。他总能以平和、清晰的方式回应反馈和问题——哪怕这些问题在我看来显得基础甚至重复,但在提问者眼中却可能至关重要。”

以下为 Ian Lance Taylor 的原文内容:

我在谷歌工作了 19 年,现已离职。

在这段时间里,我很幸运能够长期参与 Go 编程语言的开发。Go 最初由 Rob Pike、Ken Thompson 和 Robert Griesemer 于 2007 年秋季启动。我在 2008 年 6 月加入了团队,差不多和 Russ Cox 同一时间。有机会与这些杰出的人物一起参与如此有趣的项目,我感到非常幸运。

我对 Go 这些年来的广泛应用感到十分惊讶。如今,Go 已经成为一门“普通”的编程语言——程序员可以在合适的场景下选择使用它。这远远超出了我们最初的预期。当年我们最好的设想,不过是希望 Go 能为其他语言和编程环境提供一些有用的理念借鉴。

我最初参与 Go 项目的工作是为 GCC 编译器添加 Go 前端。实际上,Go 项目当时已经有一个基于 Inferno C 编译器的编译器了。两个编译器的存在帮助我们更清晰地定义语言规范。当两者行为不一致时,我们就知道必须澄清规范,找出正确的行为方式。

我在 Go 团队中的角色主要是自发承担一些项目中需要关注的事情,尽可能追踪项目的方方面面,寻找需要帮助的地方。早年我为谷歌内部的构建系统以及 SWIG 工具添加了 Go 支持;也曾有几年担任过团队经理。从 Go 项目初期开始,大家就不断提出希望语言支持泛型或类型参数化的需求。我与 Robert Griesemer 合作提出了一系列语言改进提案,最终在 2022 年的 Go 1.18 版本中,泛型正式加入语言。

我的做事方式有优点也有缺点。我很敏锐地能看到人们“现在”和“马上”会遇到的问题,并常常能推动解决这些问题。但我不够敏感于那些尚未显现出来的问题——那些程序员还没开始做、也还不觉得缺的事情,比如 Go 模块代理或 Go 漏洞数据库这样的新概念。

总的来说,我的方式确实在帮助构建这个成功项目上起到了一定作用。但谷歌变了,Go 也变了,整个编程环境也在变化。过去一年多的时间里,我逐渐意识到自己已不再适合继续参与谷歌内部的 Go 项目。我需要前行了。

我仍然对 Go 充满兴趣。我不认为这门语言已经“完成”了。其实没有任何一门编程语言是“完成”的——编程环境在不断变化,语言要么进化,要么淘汰。对像 Go 这样拥有庞大标准库的语言而言,更是如此,它必须随程序员的需求不断调整。

我会休息一段时间,但希望将来仍有机会为 Go 做出贡献。

原文链接:https://www.airs.com/blog/archives/670

推荐阅读:

Win10“临终救星”来了?把Linux魔改成「Win11平替」后爆火,作者竟是微软中国工程师!

逃离VMware!博通强推订阅惹众怒,16年老用户:2200台虚拟机已在迁移中

Python 统治世界!TIOBE 5月榜单发布

图片

### 回答1: 在 TURBO C 2.0 中,您可以使用 biosdisk() 函数来格式化软盘。 下面是一段代码示例: ``` #include <stdio.h> #include <dos.h> int main() { // 定义扇区的大小 unsigned int sector_size[3] = {512, 512, 1024}; // 定义填充字节 unsigned char fill_char[3] = {0xF6, 0xF6, 0x48}; // 格式化磁道 70 面 0 的前三个扇区 for (int i = 0; i < 3; i++) { int result = biosdisk(2, 0, 70, 0, i + 1, 1, sector_size[i], fill_char[i]); if (result != 0) { printf("格式化扇区 %d 失败,返回码: %d\n", i + 1, result); } } return 0; } ``` 请注意,在使用 biosdisk() 函数之前,需要包含 dos.h 头文件。 希望这能帮到您! ### 回答2: 使用TURBO C 2.0语言,可以通过以下代码格式化软盘的70磁道0面,并分别格式化3个扇区,大小分别为512字节、512字节和1024字节。其中,前两个扇区使用F6填充,第三个扇区使用48填充。 ```c #include<stdlib.h> #include<stdio.h> #include<dos.h> void formatFloppyDisk(){ union REGS regs; regs.h.ah = 0x0;// To format a floppy disk, we set AH=0 regs.h.dl = 0;// Drive number (0=A, 1=B, etc.) regs.x.cx = 0;// Track number to format regs.h.dh = 0;// Head number regs.h.al = 0;// Sector size (0=default, 1=512 bytes, 2=1024 bytes, 3=2048 bytes etc.) int FILL_BYTE = 0;// The byte value to fill the sectors with during formatting int NUM_SECTORS = 3;// Number of sectors to format // To format 70th track 0th head regs.x.ax = 0x1301; // 0x13 = Reset disk system, 01H = Reset only specified drive int86(0x13, &regs, &regs); // BIOS interrupt to reset disk system for (int i=0; i<NUM_SECTORS; i++){ regs.x.ax = 0x3101; // 0x31 = Write Format, 01H = Format only current track regs.x.bx = 0x0001; // 0x00 = Drive A:, 01H = Head 1, 0 = Generate ID Field depending on the disk in the drive 1 = Keep the ID Field all zeros regs.x.cx = 0x0170; // Track number=70(0-79 range) regs.h.dh = 0x00; // Head number=0 or 1 regs.h.al = 0x02; // Control byte=always zero regs.x.dx = i+1; // Sector number starting from 1 regs.x.si = 0x0000; // segment and offset of read/write buffer regs.x.di = 0x0000; // segment and offset of result if(i == 2){ FILL_BYTE = 0x48; // Fill the third sector with 48 regs.x.ax = 0x3102; // 0x31 = Write Format, 02H = Format sequential tracks immediately following the one being formatted }else{ FILL_BYTE = 0xF6; // Fill the first two sectors with F6 } regs.h.ah = FILL_BYTE; // Fill the sector with specified byte int86(0x13, &regs, &regs); // BIOS interrupt to format the specified sector } } int main(){ formatFloppyDisk(); return 0; } ``` 上述代码使用了INT 0x13,即BIOS中断服务例程,来执行软盘格式化操作。通过设置寄存器的不同参数,可以指定要格式化的磁道、面、扇区大小和填充字节。在这个例子中,我们格式化了软盘70磁道0面的3个扇区,前两个扇区使用F6填充,第三个扇区使用48填充。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSDN资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值