近日,go 语言创始人之一 rob pike 在 github 上发表评论引发关注。据悉,他已在 go 代码仓库提交了一个 issue (#48918),反对在 go 1.18 的标准库中引入泛型支持,建议不要改动 go 1.18 中的标准库。
rob 提出以上建议主要有两个依据:
其一,是因为改动范围过大,可能会出现差错。rob 表示,go 语言 1.18 版本很可能包括自创建以来对语言的最大变化——参数多态性,俗称泛型。
尽管语言的变化已经以某种形式进行了十多年,但是库的变化是非常新的,且暂时没有设计使用新类型的经验和依据。当然,多年来 go 语言团队已经对此做了很多工作。
关于核心库将如何适应等议题,目前也已经有很多讨论(例如请参见#45955和#48594,还有其他的,而且肯定会很快出现。)
其二,是缺乏实战经验。rob 指出,如何在标准库中使用这些泛型是需要深思熟虑计划的。如果现在将它们放入库中,会给发布增加了很大的负担。
可以在生产中进行测试,在一两个周期内进行更改、调整和发展,让整个社区试用,只有通过测试,才会将它们转移到主回购协议中进入主仓库。也就是说,有了一、两个版本的实际使用,且积累了足够的经验之后,再考虑更新标准库也不迟。
另外,由于泛型的兼容性承诺使得任何细节出错的成本相当高,rob 团队先等待、观察和学习。
因此,rob 建议暂时不要在 go 1.18 修改标准库。可以继续为切片、贴图、通道等设计、构建、测试和使用新的库,先在 golang.org/x 或 golang.org/exp 提供相关库的泛型版本。
最后,rob 忠告称:“我意识到每个人都想从新的语言功能中获得乐趣,并期待着解决核心库中的一些问题,这些问题一旦出现就会变得不那么笨拙,但我坚信,现在最好放慢速度。谨慎使用、学习、学习和行动。”
360手机N5s和坚果Pro哪个好? 全方位区别对比评测
新款iPhone主板谍照曝光 或将配备更大的电池
STM32中断和事件的对比差异分析
uart接口有什么特点与功能
介绍手机辐射功率和接收机特性测量原理与系统组成
Go语言创始人反对在Go 1.18的标准库中引入泛型支持
嵌入式硬件有着怎样的趋势
低温蚀刻重新出现_
片式LEDPCB板的设计探讨
自动驾驶汽车会对我们的城市和郊区产生什么样的影响?
智能机器人企业库柏特完成近亿元B+轮融资
传真机的养护常识
南京集成电路大学在江苏南京江北新区人力资源服务产业园揭牌成立
百度宣布其位于北京亦庄经济开发区的ApolloPark已建造完成
如何用市电判断法检查单向晶闸管的质量
Bourns推出AD和SD系列微型热熔断小型断路器组件
工业控制系统异常检测方法的研究和应用情况
IIR滤波器零相位数字滤波实现及应用
Mouser 的 STEAMy Summer:第 3 部分
插损,回损测量方法是什么