# go相对Java优势
- 服务器成本。同样一个服务,你肯定知道一个简单服务 Java 打出的镜像大小大概什么量级,运行需要资源大致多少!你知道 Go 多少吗?一般不到20M,运行内存一般不超过30M。你不要说这些我不关心(如果你真的不关心的话),但你老板和架构师肯定关心,毕竟这种决策一般得他们来做!
- 运行性能。这个没啥好说的,谁也不比谁强多少,真的要性能,可能 C/C++,甚至 Rust 可能更适合你!所以这个咱不要比。
- 开发运维效率。我可以有自信的说,我们几百万日活,我们18年5、6个人不到半年完整从 Java 单体切换到 Go 微服务(包括数据迁移),以我这样的老牌程序员(架构师)的经验来讲,你还能快到哪里?我们两个运维支撑近千万日活,对 Go 的 CI/CD 也没啥好质疑的吧?对于写单体或者微服务来说,我有自信用我们的 goctl 工具来比开发效率!
- 语言生态。云原生和微服务这方面 Go 还是有不少优势的,所以转的都是后台服务端开发嘛。其它领域该 Java 还得 Java,不吹不黑,有些方面 Java 确实香!
- 招人难度。找 Go 肯定比 Java 难多了,但 Go 简单呀,我们很多都是其它语言转的或者实习生应届生培养的。我也分享过好多次,我们一个实习生进来,不到一个月就可以把业务写的很溜,因为我们把复杂度都封装到 go-zero 里了。
Go 语言能吞食的一定是 PaaS 上的项目,比如一些消息缓存中间件、服务发现、服务代理、控制系统、Agent、日志收集等等,没有复杂的业务场景,也到不了特别底层(如操作系统)的中间平台层的软件项目或工具。 而 C 和 C++ 会被打到更底层,Java 会被打到更上层的业务层。
1、在现有Java语言基础上,深入对Java语言的学习和理解。
2、学习扩展新技术语言(go、python等),随时应对技术体系多元化的转变。
← 简单工厂与抽象工厂 快速开始一个Go程序 →