GO语言艺术 go 语言 优势及 主要用途

为什么要使用 Go 语言,Go 语言的优势在哪里部署简单 。Go编译生成的是一个静态可执行文件,除了glibc外没有其他外部依赖 。这让部署变得异常方便:目标机器上只需要一个基础的系统和必要的管理、监控工具 , 完全不需要操心应用所需的各种包、库的依赖关系,大大减轻了维护的负担 。这和Python有着巨大的区别 。由于历史的原因,Python的部署工具生态相当混乱【比如setuptools,distutils,pip,
buildout的不同适用场合以及兼容性问题】 。官方PyPI源又经常出问题,需要搭建私有镜像 , 而维护这个镜像又要花费不少时间和精力 。
并发性好 。Goroutine和channel使得编写高并发的服务端软件变得相当容易,很多情况下完全不需要考虑锁机制以及由此带来的各种问题 。单个Go应用也能有效的利用多个CPU核,并行执行的性能好 。这和Python也是天壤之比 。多线程和多进程的服务端程序编写起来并不简单,而且由于全局锁GIL的原因,多线程的Python程序并不能有效利用多核 , 只能用多进程的方式部署;如果用标准库里的multiprocessing包又会对监控和管理造成不少的挑战【我们用的supervisor管理进程,对fork支持不好】 。部署Python应用的时候通常是每个CPU核部署一个应用,这会造成不少资源的浪费,比如假设某个Python应用启动后需要占用100MB内存,而服务器有32个CPU核 , 那么留一个核给系统、运行31个应用副本就要浪费3GB的内存资源 。
良好的语言设计 。从学术的角度讲Go语言其实非常平庸,不支持许多高级的语言特性;但从工程的角度讲,Go的设计是非常优秀的:规范足够简单灵活,有其他语言基础的程序员都能迅速上手 。更重要的是Go自带完善的工具链,大大提高了团队协作的一致性 。比如gofmt自动排版Go代码,很大程度上杜绝了不同人写的代码排版风格不一致的问题 。把编辑器配置成在编辑存档的时候自动运行gofmt , 这样在编写代码的时候可以随意摆放位置 , 存档的时候自动变成正确排版的代码 。此外还有gofix,
govet等非常有用的工具 。
执行性能好 。虽然不如C和Java,但通常比原生Python应用还是高一个数量级的 , 适合编写一些瓶颈业务 。内存占用也非常省 。
为什么要使用 Go 语言?Go 语言的优势在哪里?1、简单易学 。
Go语言的作者本身就很懂C语言 , 所以同样Go语言也会有C语言的基因,所以对于程序员来说,Go语言天生就会让人很熟悉,容易上手 。
2、并发性好 。
Go语言天生支持并发,可以充分利用多核,轻松地使用并发 。这是Go语言最大的特点 。
描述
Go的语法接近C语言,但对于变量的声明有所不同 。Go支持垃圾回收功能 。Go的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基?。?采取类似模型的其他语言包括Occam和Limbo,但它也具有Pi运算的特征 , 比如通道传输 。
在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数 。
与C++相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持 。
go语言是什么Go语言是一种开源的编程语言,被广泛应用于网络编程、云计算、分布式系统等领域 。
go语言的三位作者
Go语言的设计目标是成为一种语法简洁、执行效率高、并发性能强大的编程语言 。它由Google公司研发,于2009年首次发布,并于2012年成为了开源项目 。Go语言具有C语言的表达能力和Python的开发效率,同时还拥有自己独特的语法和特性,如协程、垃圾回收机制等 。因此,它被广泛应用于网络编程、云计算、分布式系统等领域,并且越来越受到开发者的青睐 。

推荐阅读