golang为什么那么火?

golang那么火的原因:

1, Concurrency的原生支持

通过语言原生的Goroutine和Channel,很好的支持了Concurrency。你可以把Goroutine理解为非常轻量级的Thread。

一个Goroutine只占用2KB的内存,但是一个Thread要占用1MB的内存。

Goroutine的创建、销毁和切换的开销,相对于线程来说特别低。你可以随时起上千个Goroutine,这会让你的编码变得异常简单。

Go runtime处理所有跟Goroutine相关的操作,实际上Goroutine也是跑在操作系统的Thread上。

2, Go的依赖管理

对于C/C++和Java而言,依赖管理是一个让大多数新手抓狂的问题,你需要去编写CMakeLists.txt/Makefile或配置Maven。

Go的依赖管理很简单:

定义一个根目录$GOROOT,来保存你所有的代码。

你的代码和依赖,按照Go的约定,放在固定的相对路径下。go get命令能帮你下载所有依赖的package。

Go也有一些依赖管理的工具,我现在用的是glide。

3, 静态链接

部署C/C++服务的朋友一定很熟悉静态链接和动态链接的概念。服务器部署的时候,动态链接库的管理也是个很麻烦的事情,经常本地可以跑的,换个服务器就不行了。Docker的出现,一定程度上简化了这个问题。

Go默认使用静态链接的方式编译,所以在部署的时候特别方便,只需要拷贝单个二进制文件就可以了。

4, Go的工具链

Go官方支持的工具链很齐全很好用,常用的包括测试,Benchmark,性能调优等。一个成熟的开发流程中,编码只会占用少量时间,更多时间都花费在测试和调优上,所以好用的工具链对提升效率很重要。

5, Go的社区

Go背后有Google撑腰,同时也有一个非常健康和活跃的开源社区。官方package本身就很强大,社区还贡献了大量好用的组件。另外Go的文档和优秀的Blog也很多,学习成本较低。

在后台开发中,除了一些特定的场景需要用C/C++,比如CUDA、CPU密集的或IO密集的以外,其他的都可以尝试用Go。

推荐教程:《Go语言教程》

更多相关文章

  1. golang用什么开发工具?
  2. go语言用什么开发工具?
  3. go语言开发工具有哪些
  4. Java对象、Json、Xml转换工具Jackson使用
  5. xml解析工具包 Xstream的示例代码详解
  6. 浅谈WEB页面工具语言XML(一)产生背景
  7. 浅谈WEB页面工具语言XML(三)支持工具
  8. 浅谈WEB页面工具语言XML(四)应用分类
  9. 浅谈WEB页面工具语言XML(六)展望

随机推荐

  1. XML解析基础
  2. 四种获取RSS源xml文件的方法
  3. XML文档类型声明
  4. 解说xml中的空格
  5. XML基本语法介绍
  6. 简单介绍XML Schema中的elementFormDefau
  7. WEB页面工具语言XML带来的好处
  8. 介绍XML和HTML的区别是什么
  9. 认识xml的作用
  10. xml实现多渠道接入网站的构架的方法