前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这么多的编程语言为何选择Go

这么多的编程语言为何选择Go

作者头像
陌无崖
发布2019-08-16 17:57:24
8670
发布2019-08-16 17:57:24
举报

不忘初心,砥砺前行

作者 | 陌无崖

转载请联系授权

出身名门

在你阅读以下内容时,我不得不告诉你一个事实,编程语言Go正在成为一颗冉冉升起的新星,为什么这样说,出身于Google,它是名门出身,它的作者可以说称得上是神级一样的人物。现在让我们看看它的作者:

  • 肯·汤普逊:设计了B语言和C语言,创建了Unix和Plan 9操作系统,1983年图灵奖得主,Go语言的共同作者。
  • 罗布·派克:Unix小组的成员,参与Plan9和Inferno操作系统,参与 Limbo和Go语言的研发,《Unix编程环境》作者之一。
  • 罗伯特·格里泽默:制作Java的HotSpot编译器和Chrome浏览器的JavaScript引擎V8
  • 布拉德·菲茨帕特里克:LiveJournal的创始人,著名开源项目memcached的作者。

看到这是不是觉得这个十几岁的Go少年背景如此之大,其实Go语言的前身仅仅是大佬们在实验室中的一个实验品,后来在研究的过程中大佬们逐渐发现它的优势,最终Go正式版在2012年诞生,并迅速登上热门语言的话题。有调查显示在2019年程序员最想要学习的编程语言Go荣登第一,其次是Kotlin和Python。

哪些公司在用Go

Google

不得不说,作为开发Go语言的公司,在实践Go语言上做出了不少的努力。而且也开源了很多优秀的项目,

七牛云

作为国内领先的企业级云服务商,七牛云几乎所有的项目都用Go语言编写。

腾讯

腾讯可以说是国内的大公司,在Go语言的应用方面主要是有关Docker容器方面。

今日头条

如今大家都在用的今日头条曾经使用Go 语言构建了大规模的微服务架构

当然还有很多,不仅仅是国内的大公司还是国外的大公司,而且有很多小的公司正在实践Go,也正是看中了Go的未来趋势,所以才会广泛的传播和应用。

Go优势

快速上手

Go不是一种解释型语言——它是编译型的。这大大地(drastically)减少了在运行中突然出现的Bug。这一点有点像C语言,代码先被编译,错误会在编译时出现并得到处理,然后才能运行;但是,它比C更高级,比JavaScript和Python更具生产力。

性能

Go语言同C语言一样可以直接将程序编译成二进制文件,并且使用Go编译的程序可以媲美C和C++的速度,众所周知,Python由于简单易用,在数据分析方面有着很好的优势,但唯一的缺点就是速度慢,而Go语言早早的就站在了巨人的肩膀上,不仅速度快,而且也具有简单易用易学的特性,你或许听说过学习Java至少要学习半年入门基础,而Go仅仅需要一个星期左右,就可以编写出一个很好的程序。

并发

Go 可以说最大的特点之一就是它是原生支持并发的,在Go中,用户可以轻轻松松的运行几千甚至上万的并发,Go的协程模型充分利用的CPU资源,因此Go广泛应用在服务端的应用

网络编程

在互联网时代,网络编程出现爆发式的增长,go语言具有天然的web优势,提供了丰富的有关网络编程的接口,而不再依靠第三方服务,仅仅七八行就可以启动一个Web程序。

除了以上这些Go还有很多优势,比如延迟defer机制,交叉编译使得它成为第一门完全支持 UTF-8 的编程语言。可以说Go 语言做到了真正的国际化。

云计算时代

Go 语言被称为云计算时代的 C 语言,它在软件开发效率和运行效率之间做出了绝佳的权衡。这使得它既适应于互联网应用的极速开发,又能在高并发、高性能的开发场景中如鱼得水。

Go的使用场景

Go在Web 系统、API 应用、下载应用、游戏后端,以及各种服务器编程都有涉猎,Go 还适合分布式系统、网关类系统(微服务网关)、数据库代理器、基础服务等的开发。

高并发领域

解决秒级高并发,可以说,只要有高并发高可用需求的服务端程序都可以用 Go 开发。

大数据领域

数据挖掘(尤其是爬虫)、数据分析、数据存储方面,Go 都非常适合。Go 和 Python 也是十分优秀的组合。海量存储有很多,比如 InfuxDB、CockroachDB、TiDB。

区块链技术

因为区块链系统开发涉及到算力及应用,虽然使用C++语言可以解决,但始终过于繁琐,Java、Python等虽然能降低开发成本,但是性能及区块链的算力又跟不上,所以很多企业在开发区块链技术的时候,就会选择开发成本低并且开发性能客观的Go语言作为首选语言。

微服务领域

在构建微服务方面,由于Go天然的网络优势,使他可以快速部署,测试微服务,对于微服务的开发似乎有着原生的支持。

最后

最后总结部分Go语言的开源优秀项目,可以说这些项目覆盖了方方面面,包括了监控系统,容器技术,大数据,微服务,分布式,区块链等等下面列举部分

项目

简介

Yoke

Yoke 是 Postgres 的高可用集群,具有自动切换和自动集群恢复。Postgres冗余/自动故障转移解决方案,提供一个高可用PostgreSQL集群的简单管理。

Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。

micro

Micro是一个专注于简化分布式系统开发的微服务生态系统。可插拔的插件化设计,提供强大的可插拔的架构来保证基础组件可以被灵活替换。

hugo

Hugo是由Go语言实现的静态网站生成器;简单、易用、高效、易扩展、快速部署;相比于Hexo、Jekyll,hugo的优势是生成速度极快。

更多内容请参考go语言优秀开源项目汇总

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-13 19:36:00,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 golang技术杂文 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 出身名门
  • 哪些公司在用Go
    • Google
      • 七牛云
      • 腾讯
        • 今日头条
        • Go优势
        • 快速上手
          • 性能
            • 并发
              • 网络编程
                • 云计算时代
                • Go的使用场景
                  • 高并发领域
                    • 大数据领域
                      • 区块链技术
                        • 微服务领域
                        • 最后
                        相关产品与服务
                        容器服务
                        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档