为什么字节大量用GO而不是Java?

本文分析了字节跳动选择Go而非Java的原因,包括Go的轻量级、无历史包袱以及适合快速开发;同时提到早期团队领导者可能的个人喜好和Java学习门槛。作者还将分享个人成长秘诀,预告周三直播讲座。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

见字如面,我是军哥。

我看很多程序员对字节编程语言选型很好奇,为此我还特地问了在字节的两位4-1的技术大佬朋友,然后加上自己的思考,总结了一下就以下 2 个原因:

1、 选型上没有历史包袱

字节的早期的程序员大多来自于百度、360,本身就是 php / c++ 的背景,一开始选择了 python ,后来发现 python 的性能抗不住了,选择了go。再后边来的人也继续用 go 是因为 go 的各种工具链配备比较完备了,换其他语言成本就高了。

2、为什么不选Java?

适合做业务开发还有就是 Java ,字节的程序员相对年轻,普遍 95 后,早期成员肯定也思考过选择 Java 的问题,但是 Java 的体系比较庞大需要学习的东西也很多,想一下子上手还是比较困难的,而语法也相对简单,相对来说上手还是比较容易的。补充一句,字节也有 Java 也有 rust ,只是 go 的占比最大。

3、其他猜测原因 

还有一种可能性猜测,说字节早期当时最大技术负责人不喜欢 Java 或者说他自己也不擅长 Java ,这个说法还是讲的通的。

网上还有一种说法是,说选了 GO 之后对于达成 OKR 有帮助,为什么呢?因为很多中间件 GO 缺失,正好可以自己自研一款,这 OKR 就达成了~这种我觉得大概率不是,是一些人 yy 的想法。

聪明的读者,你觉得为什么字节选 GO 而不是 Java 呢?欢迎留言区说说你的看法和意见~

最后,经常有读者后台问我,为什么不论在职场还是自己干,都成长这么快!有什么秘诀吗?!说句掏心窝的话,这里面还是有秘诀和方法的,我准备本周三晚上21点开直播分享,全是掏心窝子的干货,记得点击下方预约,我们不见不散~

以往热文推荐:

如何做好向上管理?来自一个真实案例!

破局35岁危机:技术人如何做好职业规划?!


更多精彩,关注我公号,一起学习成长

73d73175fb5457850d4576ccc58b04ae.png

从技术角度来看,GoJava都可以用于发微服务,但它们有一些不同的特点和优势。 Go语言是由Google开发的一门编程语言,专注于简洁、高效和并发性。它具有以下优势: 1. 高并发性:Go语言原生支持并发编程,通过goroutine和channel机制,可以方便地处理大量并发请求,适用于构建高性能的微服务系统。 2. 快速编译和部署:Go语言的编译速度非常快,可以快速构建和部署微服务应用程序。这对于敏捷开发和快速迭代非常有利。 3. 内置网络库:Go语言标准库提供了丰富而强大的网络库,可以轻松地处理HTTP请求、WebSocket等网络通信,方便构建分布式系统和微服务。 Java是一种广泛应用于企业级应用开发的编程语言,也被广泛用于微服务开发。它具有以下优势: 1. 成熟的生态系统:Java拥有庞大的第三方库和框架,如Spring等,提供了丰富的功能和工具,便于构建复杂的微服务架构。 2. 跨平台性:Java编译后的字节码可以在各种操作系统上运行,具有很好的跨平台性和可移植性,适用于构建跨平台的微服务应用。 3. 强大的工具支持:Java提供了强大的开发工具和集成开发环境(IDE),如Eclipse、IntelliJ IDEA等,可以提高开发效率和代码质量。 综上所述,Go语言在高并发性和快速编译部署方面具有优势,适合构建高性能的微服务系统。而Java在成熟的生态系统和跨平台性方面具有优势,并提供了丰富的工具支持。选择哪个语言开发微服务,可以根据具体项目需求、团队技术栈和偏好来决定。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值