1
cmdOptionKana 2022-03-04 23:55:06 +08:00 1
写小项目是爽,大项目主要还是看生态,Go 的 web 框架要把各种功能凑齐到 spring 的程度也要一番折腾。
|
2
lovegoogle 2022-03-05 00:01:52 +08:00
Go 在大规模工程和高并发工程下的表现如何?有了解的吗
|
3
anonydmer 2022-03-05 00:04:17 +08:00
呵呵,各种吊打
|
4
BrettD 2022-03-05 00:04:20 +08:00 via iPhone
Java 等 Loom
|
5
lostpg 2022-03-05 00:13:13 +08:00 via Android
写 go 得的就很馋 java 增加了那一系列函数式特性,太香了
|
6
Mistwave 2022-03-05 00:25:00 +08:00 via iPhone 8
蜜月期总是好的
|
7
aliipay 2022-03-05 00:26:45 +08:00
@lovegoogle 楼下解释了,各种吊打
|
8
wangyu17455 2022-03-05 00:41:38 +08:00 via Android
不急,你的想法很快就会发生变化
|
9
golangLover 2022-03-05 00:50:39 +08:00 via Android 6
有人会写 new thread. start?
|
10
Akitora 2022-03-05 01:11:34 +08:00 1
同 Java 接触 go ,最不适宜的无非是 err!=nil 和分包的方式,一个目录下所有的文件都算一个包...
|
11
wdlth 2022-03-05 01:25:19 +08:00
还有人 new Thread 的么?至少我们这边大多用 reactor 了。
|
12
6IbA2bj5ip3tK49j 2022-03-05 02:10:23 +08:00
啊对对对
|
13
yulon 2022-03-05 05:02:01 +08:00
虽然用了很多年 Go ,但是 2022 年了,C++ 都有原生无栈协程了,第一条不能打了
|
14
hello2090 2022-03-05 07:54:51 +08:00 via iPhone 1
盲猜楼主工资 1 万 5 以下?
|
15
silentsky 2022-03-05 08:08:37 +08:00 via Android
像事务的东西能不能像 Java 加一个注解就可以?
|
16
devtiange 2022-03-05 08:27:22 +08:00
楼主说的这些点 C# 早就做到了而且做的更好, 建议体验一把.
|
17
ragnaroks 2022-03-05 08:57:01 +08:00 5
我原以为是来喷的,没想到是来夸的,趁这机会我高低得开 10 个箱子
|
18
JaguarJack 2022-03-05 09:00:18 +08:00 1
你怎么敢在这喷 Java 的?难道想被喷到哭吗
|
19
Amber2011 2022-03-05 09:32:22 +08:00 via Android
lombok 也可以用 val 和 var 的
|
20
GGGG430 2022-03-05 09:58:42 +08:00
我看这次吵不吵得起来
|
21
darksword21 2022-03-05 10:50:35 +08:00 via iPhone
@hello2090 无语,你这样的工资多少都白瞎
|
22
hello2090 2022-03-05 10:58:11 +08:00
@darksword21 不不不,我的意思是,我感觉纠结于这些的,一般都。。
|
23
lesismal 2022-03-05 11:00:52 +08:00
支持,java 届的人间清醒。
ps:总有很多巨婴程序员觉得 go 没有这不行、没有那不行,其实都是常年写逻辑的你自己不行 |
24
Goooler 2022-03-05 11:02:31 +08:00 via Android
都不如 kotlin
|
25
lesismal 2022-03-05 11:03:16 +08:00
@hello2090
#22 也就写习惯了 CURD 简单逻辑的不太纠结这些。如果真都不用纠结,世间岂不早就被 c/cpp 一统江湖了 |
26
terranboy 2022-03-05 11:06:04 +08:00
用 GO 做项目的时候会发现这个要改那个要加 无意中造了好几个轮子。。。 不知道你们有没有这个感觉
|
27
qianxaingmoli 2022-03-05 11:08:13 +08:00
scala
|
28
DonaldY 2022-03-05 11:21:39 +08:00
有没有可能是你自己不会用 Java ?不会一些最佳实践?
代码写太少了。 |
29
darksword21 2022-03-05 11:21:49 +08:00 via iPhone
@hello2090 了解!
|
30
haython 2022-03-05 11:34:25 +08:00
说一下做 java 多长时间了,做了些什么项目?
用 go 多长时间了,做了些什么项目? 给大家一个参考 |
31
v2orz 2022-03-05 11:42:33 +08:00
我感受的最大爽点在编译后的单文件大小,以及在低端设备( arm )上的运行的低配置要求
路由器、机顶盒这种设备,用 C/C++太难写,还大概率没有 gcc ,用 javaSE 几乎不可能,J2ME 也不好用 |
32
yazinnnn 2022-03-05 12:01:37 +08:00
不如 c#
|
33
to2false 2022-03-05 12:12:38 +08:00
虽然我用 go ,但是堆业务,exception 还是比 if err != nil 来得舒服的
|
34
halfdb 2022-03-05 12:13:16 +08:00 via Android
我只要看标题就知道这个帖子能上百楼
|
35
iyear 2022-03-05 12:31:56 +08:00
我只要看标题就知道这个帖子能上百楼
|
36
FrankAdler 2022-03-05 12:36:57 +08:00
私人项目我用 Go 是因为自己的 vps 内存太小,用 Java 跑起来费劲,又不想花钱买贵的,公司项目我推荐用 Go 是因为以前的业务是 PHP ,这帮 PHPer 转 Go 都有点吃力(而且只有一小半的人愿意尝试),Java 更不用想。
所以如果有得选,企业项目我更愿意用 Java ,因为你说的这些爽点,和 Java 下完善的生态、轮子、方案等对比,我愿意舍弃这些爽点。 |
37
Senorsen 2022-03-05 12:42:21 +08:00 via iPhone 2
如果是高并发服务的话,go 确实香,跑在老 i5 Mac 笔记本单机 QPS 20w+,内存占用 50M 可能还不到,静态编译体积几 M ,Docker 镜像只需要 from scratch 或 busybox/alpine ,也就是 jiM 到十几 M 大小( hello world 应用 json 返回,fiber 框架)。
同样的服务用大家最熟悉的 Java Spring Boot ,可能只能几百一千 QPS 吧,内存占用几🐔,镜像体积至少小几百 M (即使只有 JRE+应用也挺大了)。 当然肯定会有人说,用 Spring Boot 比不公平,应该用 Vertx 之类的异步框架。不过现在主流 Java 版本写异步可能还是没那么顺手的,至少不像 go 那么顺手和自然。不然的话,可能 QPS 几 w 单机也还是行的,内存占用稍多些,JVM 本身启动开销大点。 如果不是高并发服务,而是业务复杂些的 2B 应用,go 因为设计比较简洁,写起来可能会非常啰嗦,语法糖各种没 JVM 系的 Spring 框架及 Kotlin 语言那么顺手。收益反而也比较小。( go 开发难度增加很多,部署和运行时带来的收益可忽略不计) |
38
FrankAdler 2022-03-05 12:49:25 +08:00
@terranboy #26 单是文件结构就容易每个项目一种,Go 的最佳实践方案还是不够
|
39
Oktfolio 2022-03-05 13:11:43 +08:00
Gin 对标 SpringBoot ?甚至连 SpringMVC 都没法对标...
|
40
pooorguy 2022-03-05 13:12:31 +08:00 1
javaers in v2ex: 我们中出 了一个二五仔
|
41
chrisia 2022-03-05 13:29:00 +08:00
kotlin 教做人
|
42
hankli 2022-03-05 13:32:58 +08:00
又 tm 一个引战贴,😊
|
43
storyxc 2022-03-05 14:26:07 +08:00 3
go 语言属实是 v 站的流量密码了😆
|
44
d29107d 2022-03-05 14:50:25 +08:00 via Android
你掌握了 v 站流量密码
|
45
interim 2022-03-05 14:54:22 +08:00
圣战开启!
|
46
Metre 2022-03-05 15:45:54 +08:00
前几天 C fork 调用 golang 编译的库 结果卡死了....
官方 BUG,没有修复 |
47
ccppgo 2022-03-05 16:46:57 +08:00
@Senorsen 比 hello world ,PHP 都可以将近 40 万 QPS ,https://workerman.net/doc/webman/ 测试结果在这
|
48
Senorsen 2022-03-05 17:00:20 +08:00 via iPhone 1
@ccppgo PHP 还是强啊👍
跟我大学时刚接触的 PHP 相比,应该已经不是一个概念了 ———— 看了下,排名里你贴的这个 PHP 框架跟 fiber-prefork 的 QPS 基本一样了。确实很强。 Java 的好多异步框架名列前茅,后续 Java 17 (还是多少来着)的类协程语法支持好了后,应该真的大有可为了。 好多 PHP 的框架也都在 30w QPS 以上,这在以前真的很难想象,感觉在好几年前,就算是 php-fpm 也很难达到单机十几 w 的并发。时代进步真快。 |
49
C603H6r18Q1mSP9N 2022-03-05 17:31:27 +08:00
你要写 php 会吹出神了。。。
|
50
haha512 2022-03-05 19:43:24 +08:00
java 唯一缺点就是太啰嗦
|
51
iseki 2022-03-05 20:10:09 +08:00
go 的时间库设计成那个样子不一定是好事,有些场景无法很好的处理。
协程的话,建议你看下 Kotlin 的,和 Go 的轻量级线程不是一类东西,各有各的好处。 typealias 这个确实不错,等泛型实装应该更好一点。 Gin 和 Spring 全家桶不是一种东西啊。 使用多返回值表达错误这从根本上就是裂开的,不比状态码强。(本条个人观点,勿喷) |
52
9c04C5dO01Sw5DNL 2022-03-05 21:01:30 +08:00
仅仅说下协程,kotlin 的 coroutine 优点是结构化并发,缺点是异步函数具有传染性。
goroutine 刚好相反。 |
53
byte10 2022-03-05 21:06:02 +08:00
|
54
aptupdate 2022-03-05 21:10:56 +08:00 via iPhone
别的不说,单就看到 date 、calendar 、localdate 、localtime 、sdf 这几个词就一把辛酸泪。
|
55
Hanggi 2022-03-05 21:22:26 +08:00
非常不理解,语言这种东西为什么要站队,都会不香吗?
|
56
mogging 2022-03-05 21:36:15 +08:00
适合做中间件,高并发相关的后端
|
57
yaott2020 2022-03-05 21:39:04 +08:00 via Android
个人项目用 go 写非常爽
|
58
yaott2020 2022-03-05 21:39:24 +08:00 via Android
特别是小型的服务
|
59
ZSeptember 2022-03-05 21:45:55 +08:00
果然只是初步体验。。
虽然我现在也主要用 Go ,但是总还是觉得 Go 缺的东西太多了。。 你说的这几点除了 1 协程更方便,5 Go 更轻量以外,其他应该没有一个是 Go 比 Java 好的,最多只是各有千秋。。 |
61
ZSeptember 2022-03-05 22:09:23 +08:00
@giiiiiithub 其实 Go 协程也是有传染性的,就是大家都要用 Go 。以前用 C / CPP 写的都要重写。
|
62
9c04C5dO01Sw5DNL 2022-03-05 22:23:57 +08:00
@ZSeptember 啊?这算啥传染性 [狗头]
|
63
EscYezi 2022-03-06 01:27:55 +08:00 via iPhone
那用 rust 不是更爽,连 GC 都不用🤣
|
64
Leviathann 2022-03-06 02:30:42 +08:00
@byte10 C#不考虑 async 和 loom 不同的话,应该是 java26+
|
66
xuanbg 2022-03-06 08:15:53 +08:00
Java 也能自己封装一个线程池啊,方便不方便还不是自己说了算。。。
|
67
yanmu6626 2022-03-06 08:44:50 +08:00
个人项目还行,主要是用于替代 python 了,稍微严谨的项目还是用 Java,至少我喜欢这样
|
68
Akiya 2022-03-06 10:24:16 +08:00
难道就没有体验过 var a := int(math.Max(float(b), float(c)) 吗
|
72
OxO 2022-03-06 12:00:53 +08:00
只是单纯地因为讨厌其语法而不想学 GO 。
|
73
Jooooooooo 2022-03-06 13:02:39 +08:00
你 java 还在用 new Thread 那自然会觉得别的语言不错...
|
74
voidmnwzp OP @Jooooooooo 线程池 submit 就舒服了?
|
75
yl20181003 2022-03-06 14:19:54 +08:00 via Android
@Akiya 体验过了,很难受,又没办法😂
|
76
MrVito 2022-03-06 22:40:15 +08:00
说到这个我就情不自禁的提起,常年写 C++的人偶尔写一下 python 是多么神清气爽,心旷神怡了
|
78
bugfan 2022-03-06 23:13:40 +08:00
@cmdOptionKana 用 go 写一个类似 spring 的东西也不难吧,,,
|
79
bugfan 2022-03-06 23:17:05 +08:00
17 年开始写 c ,go ,后来一直是 go ,,,,这些年,明显感觉 go 的人越来越多了,17 年时候只记得 jd 已经开始招聘 golang 工程师了,但当时招聘 go 的还是太少,,,
|
80
angryfish 2022-03-07 08:57:50 +08:00
go 语言,慢慢的就会凑够包管理、泛型、异常处理了,别急,会越来越像 c#的
|
82
dany813 2022-03-07 14:25:07 +08:00
日常 go vs java
|
83
bthulu 2022-03-07 15:16:18 +08:00
go 在特殊时期会被制裁啊, 就这一条就坚决不能用 go
|