go语言ide开发工具 go语言编译器哪个好用( 二 )


影响 Go 语言设计的早期编程语言
Go 语言里一些广受开发者喜爱的特性 [10]:
并发性:这是 Go 语言最大的特色 , 从语言层面支持并发 , goroutine 和 channel 可以非常容易的实现安全高并发 。高性能 Http Server:通过简单的代码调用就可以快速实现基于协程的 Web 服务[11] , 处理效率远高于 PHP 。易部署:直接编译成机器码 , 除了 glibc 没有其他外部依赖 。易学习:语言设计精简 , 25 个关键词表达能力强大;因为有 C 语言的基因 , 所以有 C 语言基础的开发者学习 Go 语言会非常轻松 。工具链 & 库:完善的工具链(代码分析、依赖管理等)和出色的标准库大大优化了开发者学习和应用的体验 。Go 发布至今还未正式支持泛型 , 甚至曾有很多人认为 Go 语言或许永远不会加泛型 , 但其实关于泛型的推进工作一直在进行 , 从 2020 年的调研报告来看 , 泛型是使用 Go 语言的开发者最需要的特性 [12] 。
2020 年 Go 开发者调研报告:最需要但还缺少的特性
2021 年初 Ian Lance Taylor 正式发布了添加泛型的提案 , 不出意外会在下一个版本 Go 1.18 中实现 。
# 社区 ## 语言项目社区Go 语言项目在 2009 年开源 , 项目的 Star 数已达到 9 万 。根据 GitHub 提供的数据 [13] , 截止 2021 年 10 月 20 日共有 166 人提交了超过 5 万次代码 , 其中 Go 语言项目成员占比 28.9% , 贡献占比 64.9% , Google 员工(非语言项目成员)占比 24.7% , 贡献占比 17.83% , 贡献趋势如下图:
Go 语言项目代码提交情况
从代码提交情况来看 , 大部分贡献来自 Google 内部 , 近三年来每年的提交人数稳定在 70~80 人 。
参与社区提交 Issue 的用户数量也在持续增长 , 不过目前开启中的 Issue 仍有超过 7000 个 , 有近一半为“待调查分类” , 可能为无效的 Issue 。
Go 语言项目 Issue 创建情况
除了语言本身项目 , 语言的社区其实是更加广义的 , 使用 Go 语言的开发者有一个可爱的昵称 “Gopher” 。
# “Gophers” 社区在 GolangUK 2015 会议上 , Damian Gryski 提到了 “Gophers” 的文化 , 这是开发者被 Go 吸引进而成为 “Gopher” 的原因 [14] 。“Gophers” 的社区文化:
– Code– gofmt- if err != nil { … }- go vet- go build -race- golint (CodeReviewComments)- godoc.org/github.com/user/package- go get- limited use of interface{}- Social- Simple is better than complex- Performance matters- Costs are visible
SlashData 在 2021 年初发布的开发者调研显示 Go 开发者人数已超过 200 万 , 社区人数排行第十 [15] 。
编程语言社区人数
在官方调研报告中 , 约半数开发者清楚了解如何给社区贡献 , 而感到自己的贡献是受欢迎的开发者比例约为 60% , 这两个比例都在逐年提升 [12] 。接受调研的开发者其实已经是相对活跃的 , 主观感受会导致调研结果有误差 , 但整体来看 , 仍有越来越多开发者愿意参与到社区贡献中 。
Go 开发者调研报告 2020:社区满意度
活跃于社区的开发者通过邮件、媒体论坛、固定会议等交流 [16] , 有约 30% 开发者会频繁参与到开源项目中[12] , 但更多开发者并不会发出声音 , 他们在实践中使用 Go , 也切实的从社区资源中获益 。
邮件列表:golang-nuts、golang-dev、golang-announce用户群和会议:GoBridge、GoDiscourse、GopherCon媒体论坛:The Go Forum、Gophers Slack Channel、Golang News、Twitter、Stack Overflow、Reddit 等# 应用 #GitHub 上 Go 为主要语言的开源项目已超过 10 万个 , 约 24 万开发者在这些开源项目中提交 PR [17] 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: