(纯主观)一个 javaver 用 go 语言的初步体验

2022-03-04 23:50:30 +08:00
 voidmnwzp
以下观点纯属个人主观感受
1.协程体验完美 无需内核态的上下文切换吊打 jvm 的线程,语法层面也是完爆 一个关键字就完事 go func 吊打 new thread(啰嗦一大堆).start ()
2.类型推断也不要太爽 := 和 var 用的不亦乐乎 jdk10 的 var 不知猴年马月才能用到
3.自定义类型也很香 type Unixtimestamp int64 type Timestamp int64 规范又优雅,结构体可以当值用也可以 new 一个当对象用,关键是再也不用定义恶心的包装类型了以及得注意拆箱的空指针了
4.自带的轮子少但够用,日期处理一个 time 包就够了,date 、calendar 、localdate 、localtime 、sdf 一边去吧,线程安全 mutex 就够用了、异步转同步 channel 也够了
5.Gin 使用体验下来也是简洁程度吊打 mvc+springboot ,启动速度更是完爆之,直接交叉编译一个可执行文件丢到服务器上,远离 jar 包
6.多返回值和函数传参很赞,闭包就更不用提了
7923 次点击
所在节点    程序员
84 条回复
chrisia
2022-03-05 13:29:00 +08:00
kotlin 教做人
hankli
2022-03-05 13:32:58 +08:00
又 tm 一个引战贴,😊
storyxc
2022-03-05 14:26:07 +08:00
go 语言属实是 v 站的流量密码了😆
d29107d
2022-03-05 14:50:25 +08:00
你掌握了 v 站流量密码
interim
2022-03-05 14:54:22 +08:00
圣战开启!
Metre
2022-03-05 15:45:54 +08:00
前几天 C fork 调用 golang 编译的库 结果卡死了....
官方 BUG,没有修复
ccppgo
2022-03-05 16:46:57 +08:00
@Senorsen 比 hello world ,PHP 都可以将近 40 万 QPS ,https://workerman.net/doc/webman/ 测试结果在这
Senorsen
2022-03-05 17:00:20 +08:00
@ccppgo PHP 还是强啊👍

跟我大学时刚接触的 PHP 相比,应该已经不是一个概念了

————
看了下,排名里你贴的这个 PHP 框架跟 fiber-prefork 的 QPS 基本一样了。确实很强。
Java 的好多异步框架名列前茅,后续 Java 17 (还是多少来着)的类协程语法支持好了后,应该真的大有可为了。
好多 PHP 的框架也都在 30w QPS 以上,这在以前真的很难想象,感觉在好几年前,就算是 php-fpm 也很难达到单机十几 w 的并发。时代进步真快。
C603H6r18Q1mSP9N
2022-03-05 17:31:27 +08:00
你要写 php 会吹出神了。。。
haha512
2022-03-05 19:43:24 +08:00
java 唯一缺点就是太啰嗦
iseki
2022-03-05 20:10:09 +08:00
go 的时间库设计成那个样子不一定是好事,有些场景无法很好的处理。
协程的话,建议你看下 Kotlin 的,和 Go 的轻量级线程不是一类东西,各有各的好处。
typealias 这个确实不错,等泛型实装应该更好一点。
Gin 和 Spring 全家桶不是一种东西啊。
使用多返回值表达错误这从根本上就是裂开的,不比状态码强。(本条个人观点,勿喷)
9c04C5dO01Sw5DNL
2022-03-05 21:01:30 +08:00
仅仅说下协程,kotlin 的 coroutine 优点是结构化并发,缺点是异步函数具有传染性。

goroutine 刚好相反。
byte10
2022-03-05 21:06:02 +08:00
@wdlth reactor 本质还是异步,甚至比异步更恶心,写习惯应该还能顶住。
@terranboy 因为本质是低端语言的(手动狗头)。从语法上来说我觉得 go 比 nodejs 还要低端,不过 nodejs 也是经常造轮子。

以前我也觉得 nodejs 很方便,比写 java 方便多了。不过也就是那样,在大型的工程,nodejs 还是要在旁边呆着,不好搞。觉得 java 不好,去看看 C#,应该是= java 20 版。
aptupdate
2022-03-05 21:10:56 +08:00
别的不说,单就看到 date 、calendar 、localdate 、localtime 、sdf 这几个词就一把辛酸泪。
Hanggi
2022-03-05 21:22:26 +08:00
非常不理解,语言这种东西为什么要站队,都会不香吗?
mogging
2022-03-05 21:36:15 +08:00
适合做中间件,高并发相关的后端
yaott2020
2022-03-05 21:39:04 +08:00
个人项目用 go 写非常爽
yaott2020
2022-03-05 21:39:24 +08:00
特别是小型的服务
ZSeptember
2022-03-05 21:45:55 +08:00
果然只是初步体验。。
虽然我现在也主要用 Go ,但是总还是觉得 Go 缺的东西太多了。。
你说的这几点除了 1 协程更方便,5 Go 更轻量以外,其他应该没有一个是 Go 比 Java 好的,最多只是各有千秋。。
chaodada
2022-03-05 21:47:14 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/838094

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX