古兰的泛型时代终于到来了吗?

2020-06-21 04:37:18

关于将泛型添加到围棋编程语言的争论已经持续了很多年,经常遇到很多阻力,但现在看起来似乎一项提议终于得到了围棋社区的一些支持和普遍接受-这让一些参与者感到惊讶。

本周,Golang团队成员Ian Lance Taylor和Robert Griesemer撰写了一篇关于仿制药下一步的博客文章,介绍了这一主题近一年来的首次更新,解释说之前提交反馈的仿制药设计草案已经得到改进,产生了更新的设计草案。作者总结了两个提案之间的主要区别:

最大的变化是我们正在放弃合同的想法。契约和接口类型之间的差异令人困惑,所以我们正在消除这种差异。类型参数现在由接口类型约束。接口类型现在允许包含类型列表,但仅当用作约束时才允许;在以前的设计草案中,类型列表是合同的一个功能。更复杂的情况将使用参数化接口类型。

目前,该团队已经引入了一个实验工具,通过将泛型代码翻译成普通的GO代码,“允许人们输入、检查和运行使用设计草案中描述的泛型版本编写的代码”。它的目的是让用户感觉到,如果被接受,拟议的设计将如何工作,他们注意到,如果接受,它将以不同的方式实现。

当我在Go上工作的时候,我已经做了1000多次审查(主要是API设计)。您可能想知道谁需要泛型,以下是我的三个类别:

至于提案本身,它提供了几个级别的详细信息,从抽象到高级别的概述,再到您可能从这样的文档中期望的完整的详细级别。与Everything Go一样,该设计的目的是完全向后兼容Go 1,作者指出,“由于术语泛型在围棋社区中广泛使用,下面我们将使用它作为一种缩写,以表示接受类型参数的函数或类型。不要将本设计中使用的术语泛型与其他语言(如C++、C#、Java或Rust)中的相同术语混淆;它们有相似之处,但并不相同。“。

该团队表示,像往常一样,他们正在寻求围棋社区的反馈,最好的方式是使用[email protected]邮件列表。在这一努力中,他们希望了解两件主要的事情:

“首先,泛型代码有意义吗?感觉像去吗?人们会遇到什么惊喜呢?错误消息是否有用?

其次,我们知道很多人都说围棋需要泛型,但我们不一定确切地知道这是什么意思。这个设计草案是否以一种有用的方式解决了这个问题?如果有一个问题让你认为‘如果围棋有泛型,我就能解决这个问题’,你能在使用这个工具的时候解决这个问题吗?“。

Go Package Repository走向开源:在我们继续之前,团队本周还宣布pkg.go.dev现在是开源的,并且正在接受贡献。对于那些有兴趣参与的人,存储库位于go.googlesource.com/pkgsite,镜像到github.com/golang/pkgsite,我们鼓励您阅读贡献指南。目前,设计问题是下一步要解决的首要问题,包括更具凝聚力的搜索和导航体验。

GitHub获得了“超级Linter”:GitHub推出了它的“一个Linter来统治所有人”,GitHub超级Linter最初是在内部构建的,目的是保持自己文档和代码的一致性。该团队已将该工具开源,该工具可帮助防止将损坏的代码上载到主分支,建立跨多语言的编码最佳实践,构建代码布局和格式的指导方针,并自动执行该过程以帮助简化代码审查。Super Linter本身被打包到Docker容器中,并由GitHub操作调用,允许GitHub.com上的任何存储库调用它。有关详细信息,请查看readme.md。

Azure提供免费课程,机器学习奖学金:Microsoft Azure已经与Udacity合作,宣布Azure机器学习奖学金和课程,该公司表示,这将有助于解决人们对人工智能(AI)和数据科学角色日益增长的需求。这个免费的入门课程基于Azure机器学习,使用Azure机器学习的自动ML和拖放功能提供低码体验。两家公司还将提供一个新的机器学习纳米学位项目,在该项目中,学生将使用PyTorch、TensorFlow、SCRICIT-LEARN和ONNX等工具和框架构建和部署ML解决方案。在免费入门课程中表现最好的300名学生将获得纳米学位计划的奖学金,更多细节可在课程页面上获得。

AWS为Lambda功能添加了EFS:AWS为Lambda功能引入了共享文件系统,能够“挂载Amazon Elastic File System(EFS),这是一种在多个可用区(AZ)内和跨多个可用区(AZ)存储数据的可扩展且有弹性的NFS文件系统,以实现高可用性和持久性。”该特性将允许您在Lambda函数的所有并发执行环境中存储和共享数据,并从多个函数访问相同的EFS文件系统。用户还可以与Amazon Elastic Compute Cloud(EC2)实例、使用Amazon ECS和AWS Fargate的集装式应用程序以及内部部署服务器共享相同的EFS文件系统。

Flash即将停产:SDTimes写道,Adobe正在提醒其用户,Flash的生命周期将于2020年底结束,该公司将停止分发和更新。我不知道你怎么想,但我很高兴我对Flash的追求在大约15年(大约)年前就结束了--正如SDTimes指出的那样,Flash真正的受欢迎程度始于iPhone的发布,iPhone不支持Flash。Adobe早在2017年就宣布结束Flash,理由是HTML5、WebGL和WebAssembly等开放标准。Adobe在其Flash Player生命周期终止页面上表示,它不仅将删除所有版本的下载,而且“基于Flash的内容将在停产日期后被阻止在Adobe Flash Player中运行。”