慢聊Go之GoVSJava之简单对比|Go主题月

简介: 慢聊Go之GoVSJava之简单对比|Go主题月

前言

时间总是那么不经意间从指缝溜走,又来到了一天的末尾。末尾总是美好,我们可以开启聊天模式,进一步聊聊Go的相关。

今天呢,我们主要来做Go与Java的简单的对比。

对比之后,才能更好的,判断下,是否需要从Javaer到Goer的跳跃。

走起!!!

Java

对比前,我们先来,好好地梳理下,Java本身。我们看看,我们学了这么久的Java,到底有什么魅力,值得我们为之付出。

Java的用途

总结看来,其实大概上,我们亲爱的Java能够完成的事情是这个样子的:

  1.服务器后端系统开发(web后端、微服务后端支付系统、业务系统、管理后台,各种后台交互的接口服务)。
  2.大数据框架的底层实现和Java的API支持。(Hadoop)。
  3.其它中间件的底层开发。(Tomcat、RocketMq、Hbase、Kafka(部分)、SpringCloud,Dubbo...)。
Java的优势

优点才是一门语言,永霸榜单的原因。那么,Java都有什么优势和特点呢:

  1.做服务端系统性能高。
  2.有虚拟机,跨平台。
  3.功能强大,支持的类库多,生态圈类库多,开发框架和工具更易找。
  4.市场占有率高,约60%的中国程序员都是做Java相关的工作。

我想,可能最让我喜欢的,是其丰富的生态吧。哈哈哈哈,说句不好听的,不会写的代码,查一下,大片的代码随你用!!!

Go VS Java

Go的历史

来了,来了,它骑着火箭飞来了!!!

昨天,我们也说了Go的诞生原因。没听过的小伙伴,我们今天可以继续说一下。

Go语言是Google内部公司大佬开发的,主要起因于Google公司有大量的C程序项目,但是开发起来效率太低,维护成本高,于是就开发了Go语言来提高效率,而且性能只是差一点。

(Go是2007年开始研发,2009推出发布)

2007年9月的时候,由Google的三个大神(Robert Griesemer、Rob Pike、Ken Thompson),开始进行设计。我们顺便,来聊聊大神为啥是大神。

首先是,Ken Thompson,多牛逼呢。我想,如果知道Unix的话,那么就知道,Unix是他发明的,然后C语言也是他搞得。在1983年,就拿到了图灵奖,还是美国的院士。兴趣爱好非常广泛,哈哈,2000年,可能代码对于神来说太简单,就去成为了一名飞行员,后来可能经历了一圈,可能还是代码有意思,才又回来了。

然后,Rob Pike,也是个牛人,与Ken Thompson,他们都是好朋友,咱们可能闲来无事,一起吹牛逼。人家可能是研究下,下一代语言是怎么创造出来的。也是Unix的发明人之一。同时,也是个业余爱好牛逼的人,喜欢脱口秀,发明过望远镜,正经的拿过射箭的奥运奖牌。说件更通俗的可能更能体现他的牛逼。他是UTF-8编码的设计者。

最后,Robert 是JVM的 HotSpot的设计者之一,也是Google 浏览器的JS引擎的设计者。

这么牛逼的三个人,搞出来的东西,能不好用么。

宏观上,看Go与Java

其实这个还是比较好聊的。因为特点比较分别明显。

1.Go无虚拟机,不跨平台(指的是操作系统)
2.Go程序直接打包成操作系统可执行的文件,没有虚拟机在中间转换的一层,所以理论上执行效率会更高(理论上更高,实际情况需具体分析)。
3.相比Java的语言和代码编写风格,Go更简洁,可以用更少的代码实现同样的功能。
4.Go语言底层也是C实现的,又做了高并发的设计,所以性能高,采用协程设计,更加牛逼
5.天然的适用一些特定系统的开发,比如区块链类系统(如以太坊底层系统、以太坊上层应用程序),云计算和容器(Docker,K8s底层都是go开发的)开发的,网络编程(类似于java的Netty)。

总结

今天,聊得差不多了,感受下牛逼的地方,做好该有的对比。

下一步,我们会进一步学习。走起。

目录
相关文章
|
Go Cloud Native
为什么要写技术文章 | GO主题月
这个问题对于每一个人来说各有各的原因。有的为了写作变现,有的为了自己的兴趣,写小说,写文章,写书。
为什么要写技术文章 | GO主题月
|
网络安全 Go Cloud Native
SSH连接服务器后执行多条命令 |Go主题月
大家平时有没有遇到自己连接云服务器,ssh 连接上去之后,发现自己的一些小工具用不了 例如go build无法使用 ,由于我们安装配置golang 环境的时候,是在文件/etc/profile中写了配置,因此需要source 一下/etc/profile
188 0
SSH连接服务器后执行多条命令 |Go主题月
|
存储 JSON Go
|
存储 安全 编译器
|
移动开发 算法 编译器
OAUTH之钉钉第三方授权 | GO主题月
hello,我是小魔童哪吒,欢迎点击关注,有更新,将第一时间呈现到你的面前 胖sir:小魔童,我今天收到了一个需求,期望我们做一个第三方登录的功能,用户可以通过第三方授权来登录我们的web
334 0
|
Linux Go Windows
|
Go Windows Cloud Native
5个步骤搞定protoc环境安装 | GO主题月
[TOC] 胖sir:不知道你有没有这样的疑惑,工作中发现很多新接触GO的小伙伴安装protoc的环境需要折腾很久,刚才开我装环境的时候也是花了好长时间,最后如何装好的也不知原因,网上查找了各种资源,也没有一篇文章可以很好的解决这个问题.
1656 0
|
2月前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
92 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
2月前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
1天前
|
Go C语言
Go语言入门:分支结构
本文介绍了Go语言中的条件语句,包括`if...else`、`if...else if`和`switch`结构,并通过多个练习详细解释了它们的用法。`if...else`用于简单的条件判断;`if...else if`处理多条件分支;`switch`则适用于基于不同值的选择逻辑。特别地,文章还介绍了`fallthrough`关键字,用于优化重复代码。通过实例如判断年龄、奇偶数、公交乘车及成绩等级等,帮助读者更好地理解和应用这些结构。
27 14