TOC

Go 语言有什么优势

  • 语法简单
  • 确实没有很多语言特性,容易上手,但说什么大道至简,Less is more 等价值观就有点扯了。
  • 静态类型、强类型、编译型语言
  • 性能
  • 并发:自带的协程实现(goroutine + channel)在开发效率和性能之间达成了一个不错的平衡,非常优秀
  • 跨平台
  • 接口,反射,GC
  • C 嵌入
  • 便于工程化:工具链齐全,代码规范严格
  • 没有历史负担:但是向前兼容的承诺也是
  • Go1 兼容性承诺(最重要特性之一):但是也令人担忧,时间一长,可能就有太重的包袱
  • 基于消息传递的通信机制
  • 核心开发团队名气非常大
  • robert griesemer
  • rob pike
  • ken thompson
  • russ cox
  • 生态:有大公司站台,有杀手级项目(Docker, K8S 等)

存在的问题

  1. 异常处理的设计
  2. 标准库相对太薄弱
  3. 生态:缺乏主流框架
  4. 包管理机制上存在的问题
  5. 没有泛型(1.18 以前)

场景

  • 云原生
  • 基础设施项目
  • Web 开发
  • 网络编程