千字长文 | 学习编程这么多年,聊一聊Java和Go

发布于:2022-12-21 ⋅ 阅读:(513) ⋅ 点赞:(0)

大家好啊,我是 jonssonyan,我的职业是一名程序员,每天被繁琐的业务折腾的死去活来。平时我会和大家分享一些平时发现的宝藏软件、好站、一些编程心得。分享已经成为了我的一个习惯。今天我们聊一聊我学习 Go 语言的心路历程。

我从 2019 年开始接触 Go 语言,今年 2 月份开始大量使用 Go 语言进行软件开发,主要是用它做 Web 的后端方向,应用在我的项目 Trojan Panel。我本身主要是从事 Java 开发,辅助学习了其他语言,我认为一名软件工程师掌握 3 门左右的语言是必不可少的,唯一不变的持续学习的态度。

为什么我喜欢用 Go 来构建摸的后端服务?

当时做技术选型时候,由于我是从事 Java 后端,首当其冲我会考虑使用 Java 作为后端的首选语言,但是考虑到对服务器资源的最大利用,我比较关注软件的性能,毕竟国内服务器 CPU 和内存还是比较正规的,而且我也希望我的软件比较亲民,所以我选择了 Go。其实最主要的原因是 Spring Native 还没有进去 GA,如果 Java 在云原生领域比较成熟的话,我会毫不犹豫的选择 Java。

Java 和 Go 的区别和各自的优势

这也就引伸出一个问题,Java 和 Go 的区别是什么?它们之间有什么优势?

在目前,Java 主要应用领域是后端开发和大数据开发,Go 语言主要的应用领域是后端开发和云计算。在我写 Go 的一年多时间里,发现 Go 语言确实很强大,虽然每次换平台都需要重新编译,但是 Go 自带的工具链很成熟,编译只需要一行命令,而且 Go 内置 go mod,它是相当于 Maven 一样的第三方包管理器,而且 Go 还自带了 go test 和 go fmt 等终端命令,这样大大提高了我们的开发效率。

当然 Go 也有自己的劣势,同时这也是 Java 的优势。第一,Go 语言起步比较晚,是在 2009 年开始面市,相比较来说 Java 的发行时间是 1995 年,所以 Go 还是一门比较新的编程语言。直接导致了 Go 的轮子比较少,有些东西可能还需要自己手动造轮子,而 Java 的库实在太多了。第二,语法糖。Java 语法优美,Go 崇尚的是大道至简,所以语法糖比较少。不过这也是有好有坏,语法简单可以让大家写的代码差不多,不会很很多的 Bug,而且大家都能看懂。第三,框架(生态)。Java 在生态这方面简直是无敌的存在,这主要得益于 Spring 全家桶,Spring 让 Java 走上了神座。Go 语言知名的框架也很多,但是远远没有 Spring 影响那么大,不过生态这方面只是时间问题,现在很多大厂都在使用 Go 语言作为开发语言,比如 B 站,腾讯等知名大厂,这都是在丰富 Go 语言的生态,我相信 Go 语言会在将来市场占有率慢慢稳步上升。

Java 和 Go 如何选择?

如果项目的业务比较复杂,例如秒杀场景,购物返利场景,诸如此类,建议你使用 Java,Java 在企业级应用开发上很有优势,而且语法优美,类型安全,语法糖也很多(主要得益于 Java8 的 stream 流和 lambda 表达式)。如果你的项目业务一般或者比较简单,而且需要考虑性能,希望尽量减少服务器资源的耗用,建议选择 Go。

本文主要分享了学习 Go 语言的心得还有我看好 Go 的原因,总的来说,编程语言只是工具,每门语言都有自己的擅长的场景,如果另外一门语言更适合,放弃之前的语言,学习新的语言即可,还是那句话,永远培养的是自己的学习能力。

我是技术栈主要是 Java Go 如果大家有问题,可以直接私信我,或者在 B 站私信我,有问必答。 原创不易,如果对你有帮助,欢迎点赞+关注,我们下期再见。

另外我在 B 站注册账号,不定期会更新一些视频,主要内容是编程知识和免费资源,如果你觉得视频的方式更容易接受,欢迎来踩我的 B 站:jonssonyan

我的 bilibili:https://space.bilibili.com/374864141

本文含有隐藏内容,请 开通VIP 后查看