开发速度快。定义类、子类和各种get、set方法不像Java那么复杂。go几乎没有多余的代码,用很少的代码就可以完成非常复杂的功能。Rust报各种编译错误,对初学者很不友好。Go对各种接口的抽象非常简洁,尤其是网络包的抽象。你能感觉到你写的代码与Go库函数的代码高度一致,这在语言中很少能做到。如果你还是不相信我,main中的以下三行代码将启动一个文件服务器。你为什么不使用围棋。funcmain(){router:=httprouter.New()router.NotFound=http.FileServer(http.Dir("data"))_=http.ListenAndServe(":80",router)}静态编译可以跨平台静态编译,在mac上开发,然后编译成linux二进制文件。这大大提高了开发效率。关键是编译出来的binary也很小。网上有之前的测评,Go中同样的函数编译后是3M,而C#需要40M。无JVM,速度快不依赖java虚拟机,部署更简单。而且Go比Python更快。Go例程没有语言的并发性像Go这么简单,一个关键字go就可以启动一个协程。Rust中的异步多线程+生命周期管理可以翻一波程序员。在java中,玩弄各种线程池,实现runnable接口或者集成Thread类就比较复杂了。云原生语言云原生这个词变得如此流行,以至于云原生将彻底改变软件的开发和交付方式。大部分云原生项目都使用了Go语言,比如docker、k8s、harbor等,可想而知Go开发者的待遇不会差!但是我写了很多年的Go,感觉Go的设计不是很好。最重要的是错误处理随处可见。以下错误处理导致大量代码冗余。个人比较喜欢Java的trycatch。iferr!=nil{returnval,err}
