为什么要设计GO
Go设计者们希望有这样一种语言,既要有C语言的简单、高效,又要有java语言的内置GC、面向对象,还要有高效率、高并发,因此google工程师设计出了GO语言。
GO语言有什么特点
- 虽然是面向对象,但是没有继承和多态
- 强一致类型
- interface不需要显式声明(Duck Typing)
- 基于首字母的访问性控制
- 语法简洁,没有where
- 高并发
三个语言的特点
Java
- 速度快、依赖包成熟
- 并发性不高。
Python
- 运行速度慢
- 代码简洁、易上手、开发快1
GO
- 易上手。GO语法简单,类似于C语言
- 效率高。开发过程中相较于 Java 和 C++呆滞的编译速度,Go 的快速编译时间是一个主要的效率优势。Go拥有接近C的运行效率和接近PHP的开发效率。C语言的理念是信任程序员,保持语言的小巧,不屏蔽底层且底层友好,关注语言的执行效率和性能。而 Python 的姿态是用尽量少的代码完成尽量多的事。GO则把C和Python结合起来了
- 自由。Go语言可以说是开发效率和运行效率二者的完美融合,天生的并发编程支持。Go语言支持当前所有的编程范式,包括过程式编程、面向对象编程、面向接口编程、函数式编程。程序员们可以各取所需、自由组合、想怎么玩就怎么玩。
- 部署方便。二进制文件,copy部署
- 高并发。Go 语言的 Goroutine 和 Channel 这两个神器简直就是并发和异步编程的巨大福音。
- 稳定性。Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具有很强的稳定性,稳定压倒一切。那么为什么Go相比于其他程序会更稳定呢?这是因为Go提供了软件生命周期(开发、测试、部署、维护等等)的各个环节的工具,如go tool、gofmt、go test。
综上所述,GO语言语法简洁、易上手、并发性高、协程间通信方便、内置GC、稳定性好,因此使用GO的人越来越多。