<p style="text-align: center;"><a href="/misc/goto?guid=4958997878853828207" title="Go语言"><img alt="Go语言如果按这样改进,能不能火过Java?" src="https://simg.open-open.com/show/adb2c4639eec4fb34d32dccd2cd000d4.png" /></a></p> <p>据 <a href="/misc/goto?guid=4959010350566472569">InfoWorld</a> 消息,为改进 Go 语言的开发工具,Go 可能会获得自己的语言服务器,类似于 Microsoft 和 Red Hat 的语言服务器协议。</p> <p>消息是从 <a href="/misc/goto?guid=4959010350678329904">Go 语言开发者的讨论组</a>中流出,所以这不是最终的改进列表。</p> <p style="text-align:center"><img alt="Go语言如果按这样改进,能不能火过Java?" src="https://simg.open-open.com/show/71b161c7bea1a32d4770457a519146ff.jpg" width="700" height="465" /></p> <p><strong>改进计划如下:</strong></p> <ul> <li> <p>采用语言服务器 IDE 等工具,索引并显示有关代码和包的信息。一位与会者表示:微软的语言服务器协议由于在编辑器和 IDE 中的广泛支持,被认为是一个很好的起点。该协议被设计为跨代码编辑器和 IDE 集成的多种语言。</p> </li> <li> <p>建立一个可以报告统计数据的标准“计数器” API 。</p> </li> <li> <p>重写部分 Go 的汇编代码。</p> </li> <li> <p>为弥补汇编和 Go 之间的差距,考虑重写 Go 的加密代码。出于性能考虑,语言中的加密代码往往是用汇编语言编写,但汇编代码难以调试、维护和读取。一位与会者表示:改用 Go 重写加密代码会使维护更加容易,且能提高 Go 的加密性能。</p> </li> <li> <p>扩展 Go1.9 中的 math/bits 包,以适应重写。math/bits 包对位操作进行优化。</p> </li> <li> <p>重构在编译器和运行时的垃圾收集和相关工具,以减少核心工具和 IDE 的负载。</p> </li> <li> <p>将编译器嵌入到 IDE 中以进行快速语法检查。</p> </li> <li> <p>编译内存代码,有利于修复缺少系统文件的环境,程序员还可以进行持续的运行测试。</p> </li> </ul> <p>讨论组还提出了包括依赖关系管理和接口问题的调整。建议者指出,对标准库中的软件包进行关键修复往往需要等待 6 个月的新版本发布时间,更好的依赖关系管理可能有助于将一些软件包从标准库迁移到自己的项目中。</p> <p>此外,标准库接口的使用难度和一些其他问题也有被拎出来,并提了相关建议。详情可<a href="/misc/goto?guid=4959010350566472569">查阅原文</a>。</p>