Go语言是谷歌发布的第二款开源编程语言。专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
Go语言的思维哲学是:
最小心智负担原则
最小特性
最小惊异
最少犯错既会
Go语言主要用作服务器端开发,其定位是用来开发“大型软件”的,适合于很多程序员一起开发大型软件,并且开发周期长,支持云计算的网络服务。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。
GO到底适合干什么?
作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。
Go语言应用成功案例:
Nsq:Nsq 是由Go语言开发的高性能、高可用消息队列系统,性能非常高,每天能处理数十亿条的消息;
Docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建。
Packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者
Skynet:分布式调度框架
Doozer:分布式同步工具,类似ZooKeeper
Heka:mazila开源的日志处理系统
Cbfs:couchbase开源的分布式文件系统
Tsuru:开源的PAAS平台,和SAE实现的功能一模一样
Groupcache:memcahe作者写的用于Google下载系统的缓存系统
God:类似redis的缓存系统,但是支持分布式和扩展性
Gor:网络流量抓包和重放工具
哪些公司在使用Go语言?
Go语言作为一门大型项目开发语言,在很多大公司相继使用,甚至完全转向Go开发,其中代表有Google、Facebook、腾讯、百度、阿里巴巴、京东、小米以及360、美团、滴滴以及新浪等,因此,Go语言的开发前景还是很不错的。
Facebook:Facebook专门在Github上建立了一个开源组织facebookgo,大家可以通过github访问查看facebook开源的项目,比如著名的——平滑升级的grace。
腾讯:腾讯作为主要使用C/C++的公司,使用Go会方便很多。他们的Go主要负责腾讯游戏蓝鲸平台后台开发工作。
京东:京东云消息推送系统、云存储以及京东商城等都有使用Go做开发。
奇虎360:360对Golang的使用主要是开源的日志搜索系统Poseidon。而且,360直播在招聘Golang开发工程师。
小米:小米对Golang的支持,莫过于运维监控系统的开源,也就是 open-falcon 。此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang。
综合来看,Go是一种非常高效的语言,高度支持并发性。同时,它也像C++和Java一样快。虽然相比于Python和Ruby,使用 Go 建立东西需要更多的时间,但在后续的代码优化上可以节省大量时间。对新手开发者而言,Go结合了强大的生态系统、易于上手,也有超快的表现、高度支持并发性,富有成效的编程环境使它成为了一种好的选择。