GopherChina GopherChina * Student = XFuture

astaxie · 2021年06月04日 · 62 次阅读

Go 语言

在当今最流行的编程语言列表里,Go 语言一直是名列前茅。众所周知 Go 语言现在很火,写 Go 代码也很有意思,Go 在社区也很受用户欢迎,主要是 Go 语言的速度快,效率高。

Go 诞生于 Google。有了大厂庇护,才好开挂。Google 曾经一直有个传统,允许员工自由支配本属于工作时间的 20% 来用于创新实践,这为 Google 带来很多开创性的项目,Go 就是其中之一。

Go 早期由三位大牛发起,我们大概分析一下当时的环境背景:

首先,当时传统的编程语言通常都会有如下一些缺点:

  • 学习成本太高,如 C++,为准确表达作者思想,我们要花费大量时间学习语言;
  • 编译速度太慢,代码的编写、预处理、编译与运行流程花费时间太长;
  • 缺乏类型检查,主要指诸如 python、php 等解释性语言,这常会导致一些低级错误发生;

而且计算机领域相比于前些年也发生了很多变化,比如:

  • 计算机硬件发展迅速,软件已经不能充分发挥它们的优势,比如多 CPU;
  • 语言越来越复杂,要么并发与性能不佳,要么风格不够优雅且不统一;
  • 人力成本越高越贵,项目的迭代周期越来越短;

针对如上的各种情况,于是在 2007 年,他们正式开始着手 Go 的设计与开发,并在 2009 年的 11 月正式发布。

在全球范围内,从 2010 年的集体追新,到之后几年内的理性对待,再到 2016 年、2017 年的 “第二春”,直至 2018 年的升降大反差和 2020 年的新反弹。Go 语言可谓是经历了诸多风风雨雨,持续地在各种好评和诟病之间砥砺前行,既得意过也失意过。

Google trend

TIOBE Index 之 Go 语言

TIOBE Index(2021 年 5 月)

前几个星期腾讯刚公布的数据也表明 Go 在很多大公司已经越来越得到认可:

如今 Go 被称为云计算时代的基础语言,倍受追捧,用 Go 的国内外知名公司

1、Google 这个不用多做介绍,作为开发 Go 语言的公司,当仁不让。Google 基于 Go 有很多优秀的项目,比如:https://github.com/kubernetes/kubernetes ,大家也可以在 Github 上 https://github.com/google/ 查看更多 Google 的 Go 开源项目。

2、Facebook Facebook 也在用,为此他们还专门在 Github 上建立了一个开源组织 facebookgo,大家可以通过https://github.com/facebookgofacebook 开源的项目,比如著名的是平滑升级的 grace。访问查看

3、腾讯 腾讯作为国内的大公司,还是敢于尝试的,尤其是 Docker 容器化这一块,他们在 15 年已经做了 docker 万台规模的实践,具体可以参考http://www.infoq.com/cn/articles/tencent-millions-scale-docker-application-practice

4、百度 目前所知的百度的使用是在运维这边,是百度运维的一个 BFE 项目,负责前端流量的接入。他们的负责人在 2016 年有分享,大家可以看下这个 http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend .

5、七牛云 七牛云算是国内第一家选 Go 语言做服务端的公司。早在 2011 年,当 Go 语言的语法还没完全稳定下来的情况下,七牛云就已经选择将 Go 作为存储服务端的主体语言。

6、京东 京东云消息推送系统、云存储,以及京东商城等都有使用 Go 做开发。

7、小米 小米对 Golang 的支持,莫过于运维监控系统的开源,也就是 http://open-falcon.com/ 。此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用 Golang。

8、360 360 对 Golang 的使用也不少,一个是开源的日志搜索系统 Poseidon,托管在 Github 上,https://github.com/Qihoo360/poseidon. 还有 360 的推送团队也在使用,他们还写了篇博文在 Golang 的官方博客上 https://blog.golang.org/qihoo

9、PingCAP PingCAP 是国内做开源做的最好的,他们公司下面有 tidb、tikv、chaos-mesh 等开源项目

10、今日头条 头条应该是目前整个公司使用 Go 比例最高的,基本上大多数的团队都在使用 Go

Go 的明星项目

已经说了那么多 Golang 的牛 x 之处,但以前出现过的很多语言也都是这么宣传的。 语言的目标是用于项目开发,并能打造出很多优秀的产品。那么,Golang 有哪些好像优秀的项目呢?不搜不知道,一搜吓一跳!列举一下我收集到的 golang 开发的优秀项目, 如下:

  • docker,golang 头号优秀项目,通过虚拟化技术实现的操作系统与应用的隔离,也称为容器;
  • kubernetes,由 google 开发,简称 k8s,k8s 和 docker 是当前容器化技术的重要基础设施;
  • etcd,一种可靠的分布式 KV 存储系统,有点类似于 zookeeper,可用于快速的云配置;
  • tidb,国内 PingCAP 团队开发的一个分布式 SQL 数据库,国内很多互联网公司在使用;
  • influxdb,时序型 DB,着力于高性能查询与存储时序型数据,常用于系统监控与金融领域;
  • cockroachdb,云原生分布式数据库,继 NoSQL 之后出现的新的概念,称为 NewSQL 数据库;
  • beego,国人开发的一款及其轻量级、高可伸缩性和高性能的 web 应用框架;
  • caddy,类比于 nginx,一款开源的,支持 HTTP/2 的 Web 服务端;
  • flynn,一款开源的 paas 平台;
  • consul,HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置;
  • go-kit,Golang 相关的微服务框架,这类框架还有 go-micro、typthon;
  • go-ethereum,官方开发的以太坊协议实现;
  • couchbase,是一个非关系型数据库;
  • nsq,一款高性能、高可用消息队列系统,每天能处理数十亿条的消息;
  • packer,一款用来生成不同平台的镜像文件的工具,例如 VM、vbox、AWS 等;
  • doozer:高速的分布式数据同步服务,类似 ZooKeeper;
  • tsuru:开源的 PAAS 平台,和 SAE 实现的功能一模一样;
  • gor:一款用 Go 语言实现的简单的 http 流量复制工具;

项目列举了这么多,从此也可看出现在很多新项目都在使用 Golang 开发,涉及到很多领域,比如近年来大火的云原生。

附上 CNCF 的 Landscape 图,看看里面的项目有多少是用 Go 实现的,容器(docker),容器编排(K8s),服务网格(istio)等都是基于 Go 语言开发的。

为什么要学习和了解 Go

国内外薪资都是非常高的岗位

GoCN 社区

Go 中国技术社区面向国内 Go 语言开发者,提供中立的、由 Go 语言技术实践主导的技术资讯、技术会议、赛事及培训等,搭建国内最具规模和生命力的 Go 开发者社区。

GopherChina

GopherChina 是 GoCN 社区举办的线下活动,已经成功举办了六届,成为了 Go 语言国内发展的风向标。社区活动不仅带动了开发者的激情,也给各大公司带来了发展的方向,大会的众多分享让大家了解到各大公司 Go 语言的实践与发展。举个例子来说,早年 B 站毛剑老师在 GopherChina 分享的 B 站的 PHP 转到 Go 的分享,影响了斗鱼 Go 技术架构的演进,滴滴的 PHP 转 Go 的分享影响了好未来内部的转型,这些好的案例就是很多公司学习借鉴的榜样,这也是为什么每一年 GopherChina 那么吸引人的地方,可以当面请教讲师分享之外的隐藏问题,大会作为行业的引领者,也是希望通过每一年不同的主题给大家带来未来的风向标,今年我们还是带着几个使命去选题:

  • Go 深度专题:Go 语言层面的深度分享,例如 Go module、Go 泛型设计、Go 编译器、Go 信号抢占等 topic
  • Go 实战专题:Go 的第三方框架/库的设计分享,Go 在后端架构的实践,Go 在 PaaS 平台的实战应用等
  • Go 转型专题:从其他语言架构转到 Go 架构的实战分享,例如滴滴 PHP 架构转型、Java 转型等类型的分享实战
  • Go 云原生专题:云原生方面的实战

最后,来看看各位网友历年来对于 GopherChina 的参会评价

学生支持计划

近年来我们一直有一个想法,在各个大学传播 Go,让更多的学生群体了解 Go,了解云计算、云原生等技术,让大家在进入社会之前学习到技术社区最前沿和 top 的技术和实战。 今年我们推出学生支持计划,让大家以近一折的价格参加 GopherChina 大会,不仅当天可以获得一件限量版的 Go 专属 T 恤,还将学习到两天的最前沿的技术分享和实战分享。未来是你们的也是我们的,但终究还是你们的。

报名地址:https://www.bagevent.com/event/7298467

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册