【环球播资讯】为什么很多公司都开始使用Go语言了?
为什么很多公司都开始使用Go语言了?
写在前面
最近和几个小伙伴们在写字节跳动第五届青训营后端组的大作业。
【资料图】
接近尾期了,是时候做一些总结了,那从什么地方开始呢?那就从我们 为什么要选择Go语言 开始吧~
项目地址 项目文档越来越多的互联网大厂开始使用Go语言了,譬如 腾讯、美团、滴滴、百度、Google、bilibili...
还有最初使用Python的字节跳动,甚至已经全面拥向Go了。这么多国内外首屈一指的公司,都在开始使用它了,它到底有什么优势呢?这就得谈谈它的一些优势了。
ps:当然了,还有Go-To-Byte的成员,想要学习go语言,并且用它完成青训营的大项目呐~
Go的一些优势
说起优势,在某些方面多半是因为它有一些别人没有的特性,或者优化了别人麻烦的地方,相比起来,才会更胜一筹。那我们来了解一下Go的一些特点吧,但在了解生硬的特点之前,我们先来看看其它几种常见的语言:
常见的一些语言
这里不是对比哟,不是说谁好谁坏,而是小马过河,因人而异~
1、C/C++
C语言是在1971年的时候,被大神 Ken Thompson和Dennis Ritchie 发明的,而Go语言的主导开发者之一就是 Ken Thompson ,所以在很多地方和C语言类似,(比如struct、Printf、&取值符)
C/C++也作为很多初学初学的语言,它们都是 直接编译为机器码 ,所以执行效率会更高,并且都 不需要执行环境 ,用户的使用成本会更低,不像很多语言还需要安装所需的环境。
也因为这些原因,它们的 一次编码或编译只适用于一种平台 ,对于不同操作系统而言,有时需要修改编码再编译,有时直接重新编译即可。
而且对于开发者也"很不友好",需要自己处理垃圾回收(GC)的问题。编码时,还需要考虑,堆上的内存什么时候free、delete?代码会不会造成内存泄露、不安全?
2、Java
自己作为一个从Java来学习Go的菜鸟,还未正式开发,就感到 开发效率 会比Java低了(个人感觉,不喜勿喷)~
Java是 直接编译成字节码 (.class),这种编译产物是介于原始编码和机器码的一种中间码。这样的话,Java程序就 需要特定的执行环境(JVM)了,执行效率相比会低一些,还可能有虚拟化损失。但是这样也有一个好处就是可以编译一次,多处执行(跨平台) 。而且它也是 自带GC的 。
3、JavaScript
和Python一样,JS是一种解释型语言,它们 不需要编译,解释后即可运行 。所以Js也是 需要特定的执行环境(浏览器引擎) 的。
将其代码放入浏览器后,浏览器需要解析代码,所以也会 有虚拟化损失 。Js只需要浏览器即可运行,所以它也是 跨平台 的。
再谈Go
看完了前面几种常见语言的简单介绍。C/C++性能很高,因为 它直接编译为二进制,且没有虚拟化损失, Go觉得还不错;Java的 自动垃圾回收机制 很好,Go觉得也不错;Js的 一次编码可以适用可以适用多种平台 ,Go觉得好极了;而且Go天然具备高并发的能力,是所有语言无可比及的。那我们来简单总结一下吧!
自带运行环境Runtime,且无须处理GC问题Go程序的运行环境可厉害了,其实大部分语言都有Runtime的概念,比如Java,它程序的运行环境是JVM,需要单独安装。对于Java程序,如果不经过特殊处理,只能运行在有JMV环境的机器上。
而Go程序是自带运行环境的,Go程序的Runtime会作为程序的一部分打包进二进制产物,和用户程序一起运行,也就是说Runtime也是一系列.go代码和汇编代码等,用户可以“直接”调用Runtime的函数(比如make([]int, 2, 6),这样的语法,其实就是去调用Runtime中的makeslice函数)。对于Go程序,简单来说就是不需要安装额外的运行环境,即可运行。除非你需要开发Go的程序。
正因为这样,Go程序也无须处理GC的问题,全权交由Runtime处理(反正要打包到一起)。
快速编译,且跨平台不同于C/C++,对于多个平台,可能需要修改代码后再编译。也不同于Java的一次编码,编译成中间码运行在多个平台的虚拟机上。Go只需要一次编码,就能轻松在多个平台编译成机器码运行。
值得一提的就是它这跨平台的能力也是Runtime赋予的,因为Runtime有一定屏蔽系统调用的能力。
天然支持高性能高并发,且语法简单、学习曲线平缓C++处理并发的能力也不弱,但由于C++的编码要求很高,如果不是很老练、专业的C++程序员,可能会出很多故障。而Go可能经验不是那么丰厚,也能写出性能很好的高并发程序。
值得一提的就是它这超强的高并发,也是Runtime赋予的去处理 协程调度 能力。
丰富的标准库、完善的工具链对于开发者而言,安装好Golang的环境后,就能用官方的标准库开发很多功能了。比如下图所示的很多常用包:
而且Go自身就具有 丰富的工具链 ,(比如:代码格式化、单元测试、基准测试、包管理...)
。。。。。。很多大厂开始使用Go语言、我们团队为什么使用GoLang,和这些特性,多少都有一些关系吧~
原文链接:https://juejin.cn/post/7202153645440925751
关键词:
-
【环球播资讯】为什么很多公司都开始使用Go语言了?
2023-04-16 -
焦点滚动:东莞万科金域华府搜狐_东莞万科金域华府
2023-04-16 -
笑不活了!巴西总统来访,除了合作,还给我们奉献了一个大笑点!:当前观察
2023-04-15 -
中央对于河南新规划,这三个城市将迎来新发展
2023-04-15 -
花垣镇夯渡村:紫云英花开春意浓 缤纷灿烂美如画
2023-04-15 -
文昌国际航天城建设跑出“加速度” 将打造世界顶级航天海岸
2023-04-15 -
全球快资讯:易烊千玺
2023-04-15 -
全球焦点!3块5的钟薛高,终于不装了?
2023-04-15 -
美以所谓涉俄为由制裁中国企业 商务部回应_世界聚焦
2023-04-15 -
天津:非遗小作品浓缩“国安”教育大情怀_世界时快讯
2023-04-15 -
“五一”假期火车票今日开售 世界速看料
2023-04-15 -
财务数据分析报告模板_财务数据分析报告
2023-04-15 -
重庆市与蚂蚁集团签署全面深化战略合作协议,袁家军会见井贤栋一行并见证签约。(重庆日报)|环球要闻
2023-04-15 -
康辉@大国外交最前线丨前排预定!康辉带你近距离观看欢迎仪式
2023-04-15 -
春风吹暖春经济 消费回归“烟火气” 丨 强信心 促消费
2023-04-14 -
杭钢股份:2022年归母净利润下降70.8%,降幅超营收 全球今日报
2023-04-14 -
流浪20年户籍被注销!新郑民警细致工作助其“落叶归根”_当前头条
2023-04-14 -
100年前的云南大理,“风花雪月”让人迷醉,还有美丽的摩梭姑娘
2023-04-14 -
2023年社工考试温州泰顺有什么奖励措施?
2023-04-14 -
【中国有约】海南毛纳村:以茶融旅 踏出乡村振兴新路子
2023-04-14 -
世界看点:到底水蒸气还是水蒸汽_水蒸气还是水蒸汽
2023-04-14 -
当前时讯:《星际战甲》新开放世界“双衍悖论”4月27日上线
2023-04-14 -
张家塬镇:“三聚焦三坚持”推动干部作风走深走实
2023-04-14 -
互动平台热点集要
2023-04-14 -
智悦星智能科技 上海有限公司_对于智悦星智能科技 上海有限公司简单介绍_天天滚动
2023-04-14 -
花滑冠军赛:双人滑张思阳/杨泳超夺冠 女单北京队包揽前五-每日短讯
2023-04-14 -
环球热议:大运会奖牌绶带 蜀锦织就
2023-04-14 -
公示!全国拟表彰对象,达州上榜的有⇢
2023-04-14 -
世界新动态:生日送什么手工礼物好
2023-04-14 -
《最终幻想16》官方高清截图公开
2023-04-14
-
守住网络直播的伦理底线
2021-12-16 -
石窟寺文化需要基于保护的“新开发”
2021-12-16 -
电影工作者不能远离生活
2021-12-16 -
提升隧道安全管控能力 智慧高速让司乘安心
2021-12-16 -
人民财评:提升消费体验,服务同样重要
2021-12-16 -
卫冕?突破?旗手?——武大靖留给北京冬奥会三大悬念
2021-12-16 -
新能源车险专属条款出台“三电”系统、起火燃烧等都可保
2021-12-16 -
美术作品中的党史 | 第97集《窗外》
2021-12-16 -
基金销售业务违规!浦发银行厦门分行等被厦门证监局责令改正
2021-12-16 -
保持稳定发展有支撑——从11月“成绩单”看中国经济走势
2021-12-16