(评论)
(comments)
原始链接: https://news.ycombinator.com/item?id=38872362
总而言之,虽然有人称赞 Go 的效率和实用性,但也有人批评它缺乏对抽象数据类型、接口、协议缓冲区和强大的文本编辑等高级概念的支持,以及管理依赖关系的困难。 批评者认为,Go 未能合并强类型或泛型,也未能正确管理错误,导致错误未被发现,并质疑 Go 核心团队不愿接受先进概念。 然而,支持者承认 Go 的优势及其对特定用途的适用性,例如脚本编写、流数据、运行守护程序或后台任务以及构建网络堆栈客户端。 Go 的语法和风格指南紧密遵循 Python,尽管其创建者承认对某些编程语言理论一无所知,但他为创建唯一一种广泛采用的专门为系统程序员设计的计算机语言而感到自豪。 虽然延迟添加语言存在固有的挑战,但批评者认为,未能解决这些问题可能会导致错失语言设计的机会。 尽管如此,作者承认,延迟添加仿制药并不一定会转化为改善的结果,因为成功的结果并不能保证卓越的设计。 最后,作者敦促仔细考虑采用不同的方法是否会产生更好的结果。 此外,本文还强调了在 Go 中开发代码时正确的依赖管理实践的重要性。
But I'm not sure Rob Pike states clearly enough what they got right (IMO): they managed the forces on the project as well as the language, by:
- Restricting the language to its target use: systems programming, not applications or data science or AI...
- Defining the language and its principles clearly. This avoids eons of waste in implementing ambiguity and designing at cross-purposes.
- Putting quality first: it's always cheaper for all concerned to fix problems before deploying, even if it's harder for the community or OS contributors or people waiting for new features.
- Sharing the community. They maintained strict control over the language and release and core messaging, but they also allowed others to lead in many downstream aspects.
Stated but under-appreciated is the degree to which Google itself didn't interfere. I suspect it's because Go actually served its objectives and is critical to Google. I wonder if that could be true today for a new project. It's interesting to compare Dart, which has zero uptake outside Flutter even though there are orders of magnitude more application code than systems code.
Go was probably the key technology that migrated server-side software off Java bloatware to native containers. It dominates back-end infrastructure and underlies most of the web application infrastructure of the last 10 years. The benefit to Google and the community from that alternative has been huge. Somehow amidst all that growth, the team remained small and kept all its key players.
Will that change?
reply