Java开发人员为什么要选择Go?

开发 后端
我三年前开始使用Go。 那时,Go已经存在了十多年。 感谢以下三个让Go出现在我们面前的优秀程序员。

 我三年前开始使用Go。 那时,Go已经存在了十多年。 感谢以下三个让Go出现在我们面前的优秀程序员。

 

[[330822]]

Go是一种开源编程语言,可轻松构建简单,可靠和高效的软件。 — golang.org

我是Java程序员已有十多年了。 直到今天,我的工作不能离开Java,但我会越来越选择使用Go解决问题,甚至建议同事在工作中使用Go,但是人们会互相鼓励使用Java吗? 我不这么认为!

为什么要使用Go?

由于从Java到Java的多平台垃圾收集,一旦我们从C转到Java,现在我们也被健全的Java生态环境所包围。 尽管如此,容器的出现,Docker和Kubernetes的兴起,突然让人们发现Go,您需要了解它,然后喜欢它,然后放弃Java。

 

它不会那么夸张,但是您将再拥有一个工具,一个非常方便的工具。

我对使用Go的回答很简单:简单性和速度

接下来,我简要地谈谈Go的优势以及为什么要学习Go。

简洁与速度

Go和Java有很多共同点:

  • C族(命令,大括号)
  • 静态类型
  • 垃圾收集
  • 内存安全(零引用,运行时边界检查)
  • 变量总是被初始化(零/零/假)
  • 方法
  • 接口
  • 类型断言(instanceof)
  • 反射

但是,Go在几乎所有方面都需要更简洁,更短的代码才能实现相同的功能。 请参见下面的代码:

 

Java开发人员为什么要选择Go?

 

显然,Go在Java中实现了相同的并发线程功能,而代码却少了几倍。

方法定义:

  • Java仅支持一个返回值,如果需要更多值,则需要定义一个Object。
  • Go支持多个返回值

func foo() (string, bool) {}

类:

  • Java有类
  • Go具有Struct,并且Struct不需要getter / setter和toString或equals

接口:

  • 在Java中,我们有一个特定的接口类型:interface,接口中的方法由继承该接口的类专门实现。
  • Go还具有接口函数,但是不需要显式声明Go中的接口实现,只需结构(即Java中的类)即可实现接口中的方法。

 

  1. type Shape interface {  
  2.     Print() 
  3. type Rectangle struct {  
  4.   width int height int 
  5.  
  6. func (r *Rectangle) Print() {  
  7.   fmt.println("Rectangle!"); 

上面的代码是在Go中使用接口的简单示例,该接口比Java更简洁,更灵活。

甚至for循环更灵活:

  • 在Java中,我们使用:

 

  1. for (int i = 0; i < arr.length; i++){  
  2.   Object b = arr[i];  
  3.   //...  
  • 在Go中,就像这样简单:

 

  1. for i, v := range arr { } 
  2. // or I don't need index 
  3. for v := range arr { fmt.println("value="+v);} 

有许多示例说明Go在编写方面比Java更简单,更快捷。 这就是为什么许多公司只需要3或5个Go程序员,而Java可能需要10个程序员来完成同一工作的原因。

这是全部吗?

不,Go的更大优势在于性能。

Go是对Google规模问题的解答。

 

很多项目。 成千上万的Go程序员。 数百万行Go代码。 Go是Google并发的最终解决方案。

  • 设计用于1台机器
  • 日常工作在数千台机器上运行
  • 工作协调,与系统中的其他人互动
  • 一次很多

 

Java开发人员为什么要选择Go?

 

Go独特的并发功能具有传奇色彩。 该语言提供了与大多数主流编程语言不同的并发模型。 Go倡导以不同的方式思考现代软件中的并发问题。 互联网上有许多文章比较了Go和Java的性能,您可以参考它。

我会用Go完全替代Java吗?

不,我不会。Java仍然具有许多优势。 Go和Java在语言功能和使用场景方面也有许多差异。

Java已经存在20多年了。 编程语言对其功能产生了影响。 它得到了开发人员的巨大支持,形成了一个强大的社区。 他们是过去一段时间内的开发人员,但是他们是解决您问题的活跃社区。 另一方面,Go拥有活跃的社区,虽然规模很小,但增长速度更快。 有很多资源和示例代码。 如果遇到问题,更有可能的是,如果有文档记载,您将在以前走过相同道路的其他开发人员的帮助下找到解决方案。

Java提供了可移植性,它专门设计用于编写一次并可以在任何地方运行。 JVM与硬件交互以使代码在任何应用程序中都能正常工作。 有时在任何更复杂的机器上启动同一行代码可能并不准确。 它是Android手机的默认开发语言。

结论

现在是学习Go的优秀时间。

使用Go将在基于Docker和Kubernetes的云时代引领潮流。

Go社区变得越来越成熟,并且越来越多的开源框架可用。 您获得的支持越多,您可以学习的地方就越多。 让我们掌握另一种武器,增强自己,更好地适应新时代。

责任编辑:华轩 来源: 今日头条
相关推荐

2022-12-19 07:33:49

开发人员谷歌制度

2019-10-17 09:00:00

GoRust编程语言

2011-05-05 17:57:18

软件开发

2022-03-03 23:30:27

TypeScrip开发前端

2020-07-23 08:21:25

PHP开发人员MVC

2021-04-18 18:12:07

Linux开发操作系统

2021-11-01 22:19:29

开发测试代码

2018-07-09 14:05:16

编程语言PythonPipenv

2023-09-04 08:20:00

2011-06-20 08:43:15

Windows 8开发人员

2021-01-30 10:51:07

Python编程语言开发

2009-07-20 16:11:41

JRuby Swing

2023-01-11 12:14:50

NeoVimVim开发

2011-12-21 09:19:32

API

2014-09-12 10:28:28

技术开发程序员

2023-12-25 07:58:46

Python开发.NET

2023-10-13 06:54:58

2022-10-25 15:51:40

2012-06-18 15:05:54

开发

2019-09-24 15:29:57

程序员开发数据
点赞
收藏

51CTO技术栈公众号