{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

以后是Go的天下吗?

txgcwmtxgcwm 回答0 收藏1
收藏问题

10条回答

赵春朋

赵春朋

回答于2022-06-28 15:10

go语言虽然很好,但要说一统天下,估计可能性不大,因为编程语言那么多,不可能有一种语言在各个方面都做到最好,只可能在某些领域做到最好。

go语言可以说是新一代的编程语言,因为现在硬件提升了,老牌语言却没有更好的适应这些硬件,go就是在这种背景下诞生的,它可以更高效的利用现在计算机的性能。

像docker这种软件,就是基于go开发的,因为go语言比较年轻,生态还不是很完善,所以还有很长一段路要走,现在国内很多公司也开始选择go语言来开发一些项目了,国外也有很多公司采用,可以说,go语言还是很有前途的一门语言,我也比较看好它的未来。


评论0 赞同0
  •  加载中...
zhunjiee

zhunjiee

回答于2022-06-28 15:10

从语言的应用场景来看Go语言主要用作服务器端开发,其定位是用来开发“大型软件”的,主要用作服务器编程、web开发、网络编程云平台等

go语言优势其实和java的优势很像,而python的优势在于数据处理和人工智能等方向,所以go只可能吞噬Java的份额,很难撼动Python的奶酪。

从语言更新的迭代来看,C++替代C走了30多年还没走完。Java替代C++也走了近30年。而GO语言想独霸天下2040以后再看吧。

评论0 赞同0
  •  加载中...
Developer

Developer

回答于2022-06-28 15:10

今天的数据

你看看 Go 在全球流行编程语言排行榜里排第 12 名。而这前面还有好多座大山。

Java

Python

C++

C#

JavaScript

PHP

这些可都是久经考验的老油条。在可预见的未来几年 Go 很难把他们干掉。因为基本上每一个都在自己的领域有很深的护城河。

所以从你个人学习角度我还是建议稳妥一些从 Java 搞起。毕竟好找工作。等以后成了大牛再转到 Go 上来应该是分分钟的事。

评论0 赞同0
  •  加载中...
CrazyCodes

CrazyCodes

回答于2022-06-28 15:10

首先,谈以后是Go语言的天下,太早。

但有一件事情可以肯定,Go的确很强大,从以下几方面作答,可窥其未来:

  • 为什么选择Go
  • Go为并发而设计

为什么选择Go

近年来,大量的博客都在夸赞Go优于Java / Python / C / Pearl,不过题主说了不要引战,我们就主要聚焦Go本身——Go无所不能。

Go可以确保我们的工具箱可在所有平台和所有硬件上编译;Go使用非常简单软件包管理解决方案,让我们体会到什么是“得心应手”和非常便携;Go提供内存管理和垃圾收集功能;提供了本机二进制可执行文件,没有依赖项,不需要VM;不需要外部服务器,因为都已集成;几乎没有关键字,同时无需一种标准的格式化代码方法。

1)为软件工程而构建

Go几乎可以在任何机器上进行编译,因此我们不但可以使用它创建完整的Web应用,也可以构建工具来清理传入的数据以进行处理。

2)就是这样的简单

对于了解编程或其掌握一定编程语言的人,学习Go最多需要几个小时。只要你掌握Go的一定技巧之后,就可以开始动手编写了。

3)运行速度非常快

在正则表达式测试(regex-redux)中,Go运行大概3.55s,而Java运行了5.58s。 Go程序需要102行代码,而Java大概70行;的确,Go比Java代码量大一点,但是考虑到Go在运行速度上相对优于Java这样一个具有统治地位的主流编程语言,也应该亮灯转身了。

4)成为大量项目的首选

如题主所讲,许多开源项目和私有项目正在转向使用Go语言开发,并且它作为微服务和Web的标准语言变得越来越有用。可以预测,未来它可能还会取代性能较低的解决方案,如Java和C。



Go为并发而设计

让我们看一下goroutines,本质上是并发函数,它们会在程序的其余部分完成运行。换句话说,我们可以启动goroutine,使其运行,并在其和成千上万的goroutines后台运行时继续运行。

网络超时?不用担心,当主循环继续时,你的goroutine将对其进行管理;

数据库完全失败?你的goroutine对此很清楚,你仍旧可以从容解决此数据库问题。

https://play.golang.org/p/U9ZZuSql8-play.golang.org

这里你能看到goroutines是如何工作的。

对于Web应用,goroutine可以让我们运行并发作业,同时避免障碍,例如,如果我们正在等待数据输入,即使用户正在键入,goroutine也会触发以提供预填充的文本,换句话说,即使并发进程花费的时间比预期的长,你的程序仍将继续运行。

最棒的是,goroutine很便宜,因此Go变得更快。

GoLangBot的创始人Naveen Ramanathan曾在在博客上写道:

“ Goroutines被多路复用到更少数量的OS线程。” “在具有数千个Goroutine的程序中,可能只有一个线程。如果该线程中的任何Goroutine阻塞(例如,等待用户输入),则会创建另一个OS线程,并将其余的Goroutines移至新的OS线程。所有这些都由运行时处理,作为程序员,我们从这些复杂的细节中抽象出来,并获得了干净的API以并发使用。”

评论0 赞同0
  •  加载中...
zombieda

zombieda

回答于2022-06-28 15:10

不会的 别瞎吹go了 国内大规模使用go的厂并不多,以Java/cpp 为主,go用来代替Python web的比较多

评论0 赞同0
  •  加载中...
jackzou

jackzou

回答于2022-06-28 15:10

每一种语言都有其优缺点,至于哪种语言更好,主要还是要看其应用领域,至今还没有哪种语言能够一统天下。

Goland语言开发的初衷是为了替换c或者C++语言。其支持高并发,代码简洁高效,编译极快而且部署简单,是一种非常优秀的语言。

但go语言也存在一些问题,比如没有泛型,没有java那么强大的生态等等。总而言之,它是一门值得学习应用的开发工具,但是要说是其天下,为时尚早。

评论0 赞同0
  •  加载中...
Rango

Rango

回答于2022-06-28 15:10

虽然最近go语言蛮火的,但要说它能够一统天下那肯定是不可能的,因为每个语言存在的话都有其存在的价值,我自己就是作Java的,Java的企业级框架生态是go语言媲美不了的,特别是在大型企业架构方面,go语言要想超越他还有很长的路要走,更别说还有python等其它这些后起之秀了!

评论0 赞同0
  •  加载中...
xiaodao

xiaodao

回答于2022-06-28 15:10

没有一种语言会称霸,每种语言都有自己的特点,都有自己的环境

评论0 赞同0
  •  加载中...
andycall

andycall

回答于2022-06-28 15:10

nodejs火的时候有人感觉js可以全栈了,是不是就是js的天下了,怎么可能,有优势就有劣势,睡一觉就明白了

评论0 赞同0
  •  加载中...
littlelightss

littlelightss

回答于2022-06-28 15:10

适合容器微服务开发,天生的web能力。

能力不强的程序员只能写出能完成功能的代码,离好代码还很远。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<