我是一个科班出生的程序员,大学期间学过C,C++,Java,汇编,自学过C#,Js, VB,Lua,Python, Object-C,几乎已经要全栈了,知道2016年遇到GoLang,就深深的被迷住了,为什么?且听我娓娓道来。
大学毕业后,我干过一年J2EE,然后就投身Android端开发,所以对后端与移动端都有很浓厚的兴趣,虽然后端与Android移动端都可以用Java来搞,但是总觉得不够完美,毕竟还有个IOS呢,然后对JAVA自身也不是很满意,虽然生态很好,但是那有如何,性能低是永远也解决不了的病,除非放弃JVM。
机缘巧合下,我遇到了GoLang,当时是自己买了个VPS,想搭建一下ss+kcp来翻墙,又不想使用什么一键脚本(太low,还不安全),所以自己从github上搜了一遍,找到了GoLang版本的ss,当时特地去查了一下这是啥语言,然后就被各种GoLang与Java的对比刷屏了,下面我总结一些GoLang对Java的优点与缺点。
优点:
1、linux上无需安装jdk等环境,编译好之后直接可以运行
2、占用内存非常少,Java上来就需要运行JVM所以内存使用和GoLang不能比
3、多线程处理要比JAVA强,都说这样,但是我也没啥感知,唯一了解的就是GoLang的协程非常牛逼,不懂得可以去搜索GoLang协程
4、运行效率比JAVA高,无限接近C++,JAVA JVM与语言封装导致性能低下
5、运行相当稳定,Java同样是被JVM拖累
6、GoLang可以一统后端与移动端,移动端不了解的可以搜索GoMobile,一键可以生成android与ios需要的依赖库,后续我会做专题说明
缺点:
1、生态不行,远远不如JAVA健壮
2、不能做到跨平台,但是可以使用一套代码编译成多种cpu支持的可执行程序,和跨平台也差不了多少,顶多少了一处编译处处运行的特性。
so, 总的来说,GoLang现在不适合大公司,但是对小公司、个人、大公司的脚本程序还是非常适合的,尤其是现在火爆的区块链,因为涉及到很多加解密,所以区块链公司使用GOLang就远远比使用JAVA更合适了。
原文 https://studygolang.com/articles/21867