为什么许多原本的 Java 项目都试图用 go 进行重写开源?

Python016

为什么许多原本的 Java 项目都试图用 go 进行重写开源?,第1张

项目推倒重构是项目开发大忌,一方面我们要尽量避免做项目推倒重构,尽量在前期就规划好,另一方面,我们又希望项目能常做小重构,这对项目可持续性开发是很有帮助的。而语言的重构,把Java项目用Go语言重写一遍,无疑是一次重大的推倒重来。

一、Go语言的优势在哪里

Go语言领先于Java的最大优势,就在于快。Go语言会被编译成机器代码,直接执行;Java语言则使用JVM运行其代码,这比Go语言要慢了很多。另外,Java语言的内存管理,相比于Go语言,也复杂得多,而内存管理,不管对于程序运行,还是对程序员的开发,都极为重要。最后,Go语言没有引用只有指针,这比Java语言处处引用,又领先了一个身位。

二、Go语言为什么更适合开源

开源,也就是开放源代码,最大的好处在于,可以利用全世界的程序员资源,来帮助你完善你的产品,开发新需求,或者修复产品BUG。这对产品的可持续发展,是非常有帮助的,很多企业纷纷将自己的产品开源,其实就是这个道理。而Go语言更易学,更易避错,更易阅读等特点,就决定了它更适合用来做开源项目。

三、Java语言的优势

Java语言是目前软件开发中使用率最广泛,也是最重要的程序之一,它的地位,绝对不是目前Go语言可以比拟的。Java在WEB应用的开发中,有着很重要的地位。但是,Java语言相对复杂的并发设计,相当庞大的项目体系,使其在开发、测试阶段都略为复杂,在某些方面已经逐步落后于其他语言。

go语言之所以能成为我国最火的语言,是因为编写服务端高并发程序的优势。我大中华区但凡pv,日活高点的网站,应用,谁没点这个需求。这个领域中最优的几个:golang,erlang,rust。日常生活中人类社交是当今社会上的必然性,人们也伴随着科技时代的发展,智能电子产品的使用中也必然少不了语言输入,文字的编辑,语言转换的便利都均可来源于go语音输入法。

国内大学本科教育,哪个学校不以c/c++为入门教学语言。都十几年了,谭浩强还在大卖。语法相近的语言总是学习和使用成本最低的。这一点非常重要。coursera上有一门程序设计语言理论课上,开篇就阐述了这一点的重要性。假设go的入门成本是一个月,erlang的入门成本是2个月,那么整个程序员群体在学习后者的付出成本就很可观了。

google由于众所周知的原因,在国内程序员中不一般的地位。golang有个好背景。

go语言之前一直都没有接受待见,如今广大的群众开始接待,因为腾讯服务器段代码编译是支持go语言的

go语言会成为主流也是一个问题,

多虑了,没有竞争来关系。

虽然go成为源了世界上最并发的语言,这并不妨碍php成为世界上最好的语言,

也不妨碍java成为世界上最有模式的语言,

更不会妨碍c++成为21天就能学会了的语言。为什么Go语言如此不受待见

其实并没有不受待见,用的人还是很多的,解决一些特定领域的问题也很方便。

每种语言的流行程度主要取决于这个语言最著名的killerapp的流行程度,C有Linux,Go有Docker。

我并没有什么编程的经验,觉得编程实在是太复杂了,不喜欢去研究太多,对这个也不怎么懂,只能说自己是个半吊子,就是所掌握的知识,也是东拼西凑的,朋友和我说点儿,自己去书上看一点儿,只能说根据自己的体验给出一些体会吧。

Rust的优势是:

1、Rust把安全、精确的内存管理作为一切的中心放在首要的位置。

2、Rust同时拥有特别强的控制性和特别强的安全性。

3、Rust语言通过: 优秀的类型系统设计、 严格的编译器静态审查、 配合程序员局部核对、加上少量的运行时校验,保障了内存安全。

4、Rust的语言特别的复杂,导致学习曲线比较陡峭,对于初学者来说难度较大。但学通之后将终生受益。

5、效率高,速度特别的快

6、 支持范型

7、 社区活跃度很高,更加的强调了社区的作用。

8、Rust 有更强的语义,更容易捕获错误的逻辑,编译器直接检查出你代码中的不安全的部分

Rust的劣势是:

1、 语言相对来说比较复杂,对于新手来说,让新手摸不着头脑。

2、还不算太稳定。

其实我觉得什么代码啊编程啊这些东西还是比较适合理工的学生去研究,我一看脑袋就大,完全不明白在讲什么。我大概了解的就是这些,语言的话大家可以多方面的去了解,也不是说有缺点就是不好,看配置看个人吧,每个人习惯不一样,也许有的人用不稳定的还觉得挺好呢,有的人就喜欢比较完美的,在我看来编程这个东西真的是很复杂,会有很多的代码,这些代码弄得我自己头都大了,有的时候还得去恶补一下。