🚀GO到底值不值得学习呢?
目录
👉背景
在疫情爆发的环境下,GO语言就开始被人们吹捧起来,到19年左右迎来了一次小爆发期,那么GO语言是否值得我们学习以及它的前景如何呢?相关文章仅为个人观点。
🏝概念
首先Go语言诞生于2007年由谷歌公司研发,2009年开源,2012年推出1.0版本,Go是一种语言层面支持并发(Go最大的特色、天生支持并发)、内置runtime,支持垃圾回收(GC)、静态强类型,快速编译的语言(编译型语言)
🏝特点
- 语法简洁。
简单好记的关键词和语法。golang语法简单,这个是真的简单,即使从来没接触过过编程的用户,都可以轻松上手,比c++、java、.net更简单易学,甚至比php学起来都轻松。与同为强类型语言的比c++比,更是简单得多。虽然简单,但是实现起功能来,一点也不含糊。
- 开发效率高。
GO语言使用起来简单、代码描述效率高、编码规范统一、上手快。 通过少量的代码,即可实现框架的标准化,能快速的构建各种通用组件和公共类库,进一步提升开发效率,实现特定场景下的功能量产。
- 良好的语言设计。
从学术的角度讲Go语言其实非常平庸,不支持许多高级的语言特性;但从工程的角度讲,Go的设计是非常优秀的:规范足够简单灵活,有其他语言基础的程序员都能迅速上手。更重要的是Go自带完善的工具链,大大提高了团队协作的一致性。比如gofmt自动排版Go代码,很大程度上杜绝了不同人写的代码排版风格不一致的问题。把编辑器配置成在编辑存档的时候自动运行gofmt,这样在编写代码的时候可以随意摆放位置,存档的时候自动变成正确排版的代码。此外还有gofix, govet等非常有用的工具。
- 部署简单。
Go编译生成的是一个静态可执行的文件,除了glibc外没有其他外部依赖。这让部署变得非常的方便:目标机器上只需要一个基础的系统和必要的管理、监控工具,完全不需要操心应用所需要的各种包、库的依赖关系,大大减少了维护的负担。
- 并发性好。
Goroutine(Go轻量级线程)和channel使得编写高并发的服务端软件变得相当的容易,很多情况下完全可以不需要考虑锁机制以及由此带来的各种问题。单个Go应用也能有效的利用多个CPU核并行执行的性能好。
- 执行性能强。
毕竟是类C的执行速度,对于一些服务来说,性能是极其重要的一环,事关系统的吞吐、访问的延迟,进而会影响用户的体验,Go语言通过协程可以方便的实现并行处理,达到处理效率的最大化 ,提升系统的吞吐能力。
- 执行性能好。
虽然不如C和Java,但通常比原生Python应用还是高一个数量级的,适合编写—些瓶颈业务。内存占用也非常省。
📌发展
- 该语言2007年开始出现,2009年推出第一个版本发展至今,并且在github中的搜索率和语言使用率也在逐年上升
- 各大互联网大厂在将一些内部业务转向Go语言
- 在区块链有着独特的优势
- 一些常见的应用平台也采用Go语言或者用Go语言重构平台来节约服务器性能
📌个人看法
第一点:
GO语言会成为未来的新趋势吗,这个不能肯定,只能说是大概率。在大多数的互联网公司中Java语言仍是主流语言,在国内由阿里带头的Java适用范围和占比重,在快节奏的一线城市中也许语言变更快,但是在绝大多数的二三线城市中仍然会采用稳定的开发方式。即便GO语言突飞猛进,之前的Java项目仍然是需要懂Java的专业人士来维护的。
第二点:
我个人认为还是选择Java作为第一开发语言,对于已经有工作经验的人可以尝试新的领域,作为第二语言,为什么我会选择GO为第二语言,主要是因为之前面试的时候,有位总监的话开导了我。Java的领域中,Springboot框架造就了我们,也毁掉了我们,使得我们丧失了独立思考的能力。
🏜最后
小沈爱整理,后期敬请期待!