人生苦短,我要换Go( 二 )


唯一有创新的地方是 Goroutines 和 Channel 。 Goroutine 是 Go 的轻量级线程解决方案 , 而 Channels 是与 Goss 交互的首选方式 。
Goroutine 非常轻量级 , 只需要几千字节的额外内存 。 因为 Goroutine 是如此的轻量级 , 可以有成百上千的 goroutine 在同一时间运行 。
Goroutine 和基于信道的并发方案使应用程序可以轻松地使用所有可用的 CPU 内核和处理并发 IoOs , 而不会使开发复杂化 。 与 Python/Java 相比 , 在 Goroutinerequires 上运行一个函数只需要很少的固定代码 。
编译速度快
与 Java 和 C 等语言的海龟速度编译相比 , 用 Go 编写的最大的微服务项目只需6秒钟就可以编译完成 。 Go 的快速编译速度是它的主要生产力 。
强大的生态系统
相对于其他新的语言 , 比如 Rust 或 Elixir , Go 有着巨大的生态系统优势 。 尽管它不能与 Java、 Python 或 Node 相提并论 , 但仍可以找到满足许多基本需求的高质量包 。
Gofmt , 强制代码格式化
Gofmt 是一个优秀的命令行程序 , 内置在 Go 编译器中 , 用于格式化代码 。 在功能方面 , 它类似于 Python 的 Autopep 8 。 Gofmt 以正式的方式对代码进行格式化 , 以避免所有这些参数 。
gRPC 和协议缓冲
Go 提供了一流的协议缓冲和 gRPC 支持 。 这两个工具完美地结合在一起 , 构建了一个通过 RPC 进行通信的微服务器 。 只需要编辑一个库文件 , 该文件定义 RPC 调用及其参数 , 服务端和客户端可以从该文件自动生成适当的代码 。 这不仅速度快 , 而且占用网络空间少 , 使用更方便 。
不过 , 虽然有这么多的优点 , Go语言也并不是那么的完美 。
相对Python , Go语言也有不足:
Go语言不是一种通用语言;
与 Go 集成的 API 没有官方支持的 Go SDK;
库的支持不够丰富;
依赖管理不够健全
不知道各位小伙伴或者身边的朋友是不是开始使用Go了呢?
参考链接:
【人生苦短,我要换Go】
人生苦短,我要换Go文章插图