Google 内部 Go 的使用率有多少?

大家好,我是煎鱼。

众所周知,Go 这一门编程语言的最大金主爸爸是 Google,Go 核心团队绝大部分也都在 Google 中工作,Google 为他们支付工资、福利等任何薪酬相关的内容。

那在 Google 里到底对于 Go 的使用又是什么情况呢?今天我们基于社区的讨论,一起快速了解内部情况。

快速背景

最近在国外 reddit 社区的 r/golang 频道上,有人发出了直击灵魂的提问:“How much Go is used at Google?”。

c078bad27bfe1681930b5e92e5cdc35a.png

现场有许多 Google 员工现身说法。以前很多朋友说 Google 里自己都不用 Go(尴尬得很)。

这回让我们一起看看 Google 自家人用 Go 用的怎么样!

网友们现身说法 TOP3

  • @assbuttbuttass:

    • 自己是在 Google Cloud 团队进行工作。目前所有的新项目都使用 Go 语言。

    • 仍有很多旧代码是用 C++ 编写的。

    • 使用 Go 还是 C++ 取决于你具体所在的团队。

  • @deathmaster99:

    • 这很大程度上取决于团队。他在 Google 工作,整个代码库都是用 Java 编写的,所有新服务都要用 Kotlin 编写。

    • 我确信对于全新的服务,Go 是默认选项。但这只占代码库的 10%。

    • 绝大部分都是用 C++ 编写的传统代码。

  • @eloquent_beaver:

    • 这确实取决于您的产品领域。

    • Google 拥有多个内部服务器框架,为新服务器开发铺平了道路,Java/Kotlin、Go 和 C++ 都得到了支持和广泛应用。

    • Java 或 Kotlin 在某些 PA 中备受青睐,而 Go 则在其他 PA 中备受青睐。甚至 C++ 也被用于那些需要高效处理数千万 QPS 的服务器(每个请求的成本相差百万分之一美元也很重要)。

结论

从所有的评论和交流来看,Google 作为一家庞大的公司,必然存在着不同的业务领域和使用方式。

我们可以得出决定会不会使用 Go 的原因取决于:团队的倾向和业务的产品领域。像是 Java 和 Kotlin 肯定在 Android 产品中使用较多。

而 Go 核心团队本身是在 Google Cloud 团队中,因此云原生这一块天然的拥有更多的 Go 亲和性,使用的人会更多

但即使如此,Go 项目的代码在个别团队中也只占有 10% 左右的比例(via @deathmaster99)

推荐阅读

关注和加煎鱼微信,

一手消息和知识,拉你进技术交流群👇

6e4dcb769d39fa7c9a314942aae49268.jpeg

a8b55792dd3e02f4ffa834c1f2789633.png

你好,我是煎鱼,出版过 Go 畅销书《Go 语言编程之旅》,再到获得 GOP(Go 领域最有观点专家)荣誉,点击蓝字查看我的出书之路

日常分享高质量文章,输出 Go 面试、工作经验、架构设计,加微信拉读者交流群,和大家交流!

原创不易 点赞支持

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Go语言的前景非常乐观,它比Java更加简单易学、更快速、更高效,具有更好的性能和可扩展性。它的代码更容易维护,由于其高效的性能和良好的可扩展性,Go语言正成为软件开发工程师们倾向于使用的语言。虽然Go语言可能不会完全取代Java,但它确实会抢占一定的使用率。 ### 回答2: Go语言作为一种编程语言,具有广阔的发展前景。首先,Go语言Google开发并公开发布,背后有强大的支持和维护团队,这为其持续的发展提供了保障。其次,Go语言具有简洁易懂的语法和丰富的标准库,使得开发者可以更高效地开发和维护代码,从而提高开发效率。此外,Go语言还支持并发编程,拥有轻量级线程(goroutine)和基于消息传递的通信机制(channel),这使得Go语言在处理高并发和大规模数据处理方面具有很大的优势。 与Java相比,Go语言的优势在于以下几个方面。首先,Go语言的编译速度非常快,使得开发者可以更快地获取到运行结果,提高开发效率。其次,Go语言的内存管理由其自身的垃圾回收器负责,开发者无需手动管理内存,减轻了开发负担。此外,Go语言具有更小的依赖性,可执行文件大小较小,这使得部署和分发更加方便。 虽然Go语言在某些领域的性能和开发效率方面具备优势,但是否能够完全抢占Java的使用率则还不确定。Java作为一种老牌而且成熟的编程语言,有着庞大的生态系统和广泛的应用领域。并且,许多企业和开发者已经使用Java开发了大量的应用程序,迁移到其他语言需要付出较高的成本和风险。因此,Go语言可能在某些特定领域崭露头角,但在大多数场景下,Java仍然会持续保持其使用率。 ### 回答3: Go语言是一种相对较新的编程语言,目前在软件开发领域的发展势头非常迅猛,其前景非常广阔。 首先,与Java相比,Go语言有以下几个明显的优势。第一,Go语言在性能方面表现出色,其编译器和运行时系统经过精心设计,可以提供较高的执行效率。第二,Go语言具有并发编程的强大能力,它采用了轻量级的协程(goroutine)和通信机制(channel),使得并发编程变得更加简洁和安全。第三,Go语言的语法简洁易懂,学习曲线相对较低,让开发者可以更快速地上手和开发应用。第四,Go语言拥有优秀的包管理工具(go modules)和丰富的标准库,使得开发者可以更方便地组织和重用代码。 然而,尽管Go语言在技术上有这些优势,要说是否会抢占Java使用率还为时过早。Java作为一种老牌编程语言,已经在各个领域得到广泛应用,拥有庞大的开发者社区和成熟的生态系统。虽然Go语言在某些特定的场景下表现出色,但Java在企业级应用和大型系统方面仍然是非常强大和稳定的选择。此外,迁移现有的Java应用到Go语言需要一定的成本和风险。因此,目前来看,Go语言可能不会完全抢占Java的使用率,而是在特定领域和场景中与Java共同存在和发展。 总的来说,Go语言具备良好的前景,并且在一些方面具备与Java竞争的优势。然而,在Java的强大基础和广泛应用的支持下,Go语言需要逐步发展自己的生态系统和应用场景,才能真正成为Java的有力竞争者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值