1
pinkSlime 2021-07-30 12:37:18 +08:00 1
?
> Go is syntactically similar to C |
2
thet 2021-07-30 12:38:09 +08:00 via iPhone 14
C#
|
3
wellsc 2021-07-30 12:39:42 +08:00 via iPhone 3
.net core
|
4
manhere 2021-07-30 12:39:53 +08:00 via Android
lua
|
5
icyalala 2021-07-30 12:45:40 +08:00
Java /c++/js 这怎么比较? Go 低内存这也说不定。
要精确控制内存和现代化语法,就找那些没有 GC 、运行时小的语言,比如 Rust 、Swift 。。 |
6
zoharSoul OP @pinkSlime #1 Go is syntactically similar to C, 不是 c++ ,
比如 c++的泛型, 函数式变换之类的. 统统没有, 比如这样 > numbers.map((i: Int) => i * 2) golang 写起了麻烦死了 |
8
defage 2021-07-30 12:55:38 +08:00 2
那就是 c++本尊了,比 go 还可以更低内存
|
9
codehz 2021-07-30 13:15:30 +08:00
那 D 怎么样(
|
10
tt67wq 2021-07-30 13:22:27 +08:00 via Android 1
crystal
|
11
micean 2021-07-30 13:23:31 +08:00 2
java 别用 spring,用 graavlm 打包 native image
|
12
debuggerx 2021-07-30 13:24:09 +08:00
可以试试 dart 现代化语法 支持 gc 支持 aot 编译为二进制可执行文件还带 runtime
https://dart.cn/tools/dart-compile |
13
mxT52CRuqR6o5 2021-07-30 13:25:49 +08:00 via Android 1
C#
|
14
tmac33 2021-07-30 13:30:25 +08:00
go 现在这个势头真是奔着 java/c#去了
|
15
x940727 2021-07-30 13:36:12 +08:00 via iPhone
@tmac33 国内而已,全球真不太行……国内的环境推不动一门语言的。而且虽然说大家都是想去搞 go,但是数据表明 Java 又开始抬头了。
|
17
tmac33 2021-07-30 13:52:20 +08:00
势头依旧猛
|
18
chenqh 2021-07-30 14:08:04 +08:00
@x940727 但是现在我们做国内呀,没办法,国内 golang 就是火呀, 可能是国内需要的并发太多了,虽然我觉得用单机 mysql 没有必要用 golang
|
21
x940727 2021-07-30 14:13:08 +08:00
@chenqh 大公司也很少是主系统用 Go 的,大多数是为了 KPI 搞轮子才用 Go,毕竟 Java 的轮子太多了,太优质了,没办法刷 KPI……
|
22
ifsclimbing 2021-07-30 14:15:43 +08:00
java 真难用
|
23
ifsclimbing 2021-07-30 14:15:59 +08:00
nim
crystal |
25
dqzcwxb 2021-07-30 14:48:29 +08:00 1
|
26
litchinn 2021-07-30 15:16:54 +08:00
@micean 上次看到好像 Spring 也支持 graalvm 了,[Spring Native]( https://spring.io/blog/2021/03/11/announcing-spring-native-beta)
|
27
Ayanokouji 2021-07-30 16:05:19 +08:00
graalvm
|
28
qieqie 2021-07-30 16:24:12 +08:00
说 GraalVM 的都自己用过没
根据我一年半前的体验,跑纯科学计算时间长一点内存比 Hotspot 吃的还多,性能不到三分之一 |
30
kilasuelika 2021-07-30 17:12:15 +08:00 via Android
rust 吧
|
31
lanjz 2021-07-30 17:27:19 +08:00
rust
|
32
ivyliner 2021-07-30 17:49:25 +08:00 1
swift :-)
|
33
janxin 2021-07-30 18:05:59 +08:00
Rust 啊
|
34
Leviathann 2021-07-30 18:09:27 +08:00 via iPhone 1
rust 一没 gc,二语法不是 c 系语法,从 ocaml 那搬运了不少东西
|
35
rayw0ng 2021-07-30 18:26:49 +08:00
Rust,正在反复被编译器狂虐。。。
|
36
hutoer 2021-07-30 19:55:28 +08:00
面向 web 后端写业务? 又要内存占少?长得像 Java /c++/js?
**没有** 如果不喜欢 java,试试 typescript ? |
37
MakHoCheung 2021-07-30 21:36:27 +08:00
go 的正正经经的一个大型系统运行占用的内存真的比 Java 小很多么?
我只知道 graalvm 的 native-image 把 Java 编译成本地可执行程序后,helloworld 确实是内存占用小,但是一个正经的 web 服务的话内存占用其实差不多的,之前 medium 上看过外国人比较过。 |
38
Cbdy 2021-07-30 21:38:54 +08:00 via Android
java
|
39
Itoktsnhc 2021-07-30 21:43:03 +08:00
C#
|
40
Keyi 2021-07-30 21:44:38 +08:00 via Android
D, Better C
|
41
someonedeng 2021-07-30 23:11:33 +08:00
西沙普
|
42
agagega 2021-07-30 23:29:47 +08:00 via iPhone
当然是 C# Swift Kotlin 三兄弟啦,风格还有点像。一开始还都是各自平台专用,后来都开始跨平台。
|
43
iseki 2021-07-31 00:09:42 +08:00 via Android
正常场合下大家内存占用应该都差不多( Java 别用 spring 就还行,用 Kotlin 搭配 vertx/ktor 等等。native image 可以参考下,个人没在生产使用过,不知道咋样
|
44
chendy 2021-07-31 00:19:07 +08:00
java 不用 spring 用啥啊
不用 spring 的话,不如直接不用 java 了,一样不好招人 |
45
iseki 2021-07-31 00:24:33 +08:00 1
啊,是为了好招人啊,那当我没说
|
46
lightjiao 2021-07-31 00:45:35 +08:00 via iPhone
C#除了不出名,其他哪儿都好,生态其实也还不错,写起来超级舒服
|
47
40EaE5uJO3Xt1VVa 2021-07-31 00:58:40 +08:00
.net core,相见恨晚 ,如果去年见到,我就舍弃 go 上巨硬的邮轮了
|
48
WebKit 2021-07-31 03:34:09 +08:00 via Android
可以试试 kotlin 啊。真的很好用
|
49
cassyfar 2021-07-31 05:07:29 +08:00
别推荐了 rust,都没公司用。
go 挺好的,出活效率大概是 java 和 cpp 的 1.5 倍 |
50
zxCoder 2021-07-31 07:59:47 +08:00 via Android
必须是 c#
|
52
abcbuzhiming 2021-07-31 10:54:42 +08:00
|
53
ipwx 2021-07-31 11:54:01 +08:00
@abcbuzhiming yysy JIT 理论上可以比 AOT 运行速度更快,而且实际上也经常这样。
对于内存而言,可能云上虚拟机 / 嵌入式会比较头疼 JVM/CLR 。但是对于大型服务器集群,这不太是事情。 |
54
ipwx 2021-07-31 11:55:15 +08:00
@abcbuzhiming JIT 更快的原因是因为可以根据入口参数改造代码。比如 if (xxx) ... else ... 在这里如果根据入口参数进行条件判断的,cpu 流水线可能会被打断。流水线打断就是 20 条指令的时间开销(可能更多)。JIT 完全有机会根据不同参数分别产生两个不同函数去用。
|
55
abcbuzhiming 2021-07-31 13:18:56 +08:00
@ipwx 我认同 Jit 可能更快,但是我不认同你关于内存的说法,资源总是不够用的,特别是当你进程数量起来以后,一个进程能减掉一半的内存,就是一大笔成本,Java 这个语言确实在云原生时代遇到了挑战,就是其虚拟机太过庞大,否则 oracle 就不会去折腾 graavlm
|
56
ipixeloldc 2021-07-31 13:18:58 +08:00
@cassyfar 确实,rust 现在国内除了字节的飞书大规模用。其他就一堆区块链的用。。。
|
57
wellsc 2021-07-31 13:51:43 +08:00 via iPhone
@abcbuzhiming 因为点 net 能编译二进制了我才提的
|
58
hushao 2021-07-31 14:10:37 +08:00 via iPhone
kotlin 国内有大公司用在服务端了,只不过生态是真的很原始,要自己造不少、团队有大神可以关注一下,团队没人就想其他的吧。其他语言如 rust 也是,没大神坐镇也基本折腾不起来
|
59
ipwx 2021-07-31 14:10:55 +08:00
@abcbuzhiming 不啊,Java 多线程足够强,大部分后端 Java 是多线程 + 异步的吧。
|
60
EscYezi 2021-07-31 15:42:23 +08:00 via iPhone
试试 qurakus 打包 native image
|
61
abcbuzhiming 2021-07-31 16:03:59 +08:00
@ipwx Java 的线程模型是 1 比 1 换成内核线程的模型。这个东西在经典时代是足够的,但是在现在就未必了,其实 Java 一直在折腾新的携程模型。
另外,我的本意是,部署一个 Java 项目(线程),哪怕是比较小的项目,拖着一个巨大的虚拟机和基本函数库,也造成其启动内存占用偏大,和启动速度太慢 |
62
c88155745 2021-07-31 16:18:25 +08:00
我能说 php 么,这内存占用也不是很高
|
63
BadMan 2021-07-31 16:42:26 +08:00 1
@x940727 还是有的,我在鹅厂,公司服务端从 3 年前开始就开始转 golang,已经形成不可逆的趋势了,像 qq 这类核心业务的新服务也用 golang 啦。另外,字节和虾皮的主流语言也是 golang,还是可以的。
|
64
Kasumi20 2021-07-31 16:47:58 +08:00
Rust,不需要 GC
|
65
sagaxu 2021-07-31 17:34:17 +08:00 via Android
Java 生态打的 docker 包太可怕了,一个极简的 image 也要 100M 起步,常见的 300M 左右,我还见过一些 1G 以上的。
内存占用,Java 起步也是 200M,大项目不是问题,小项目虚拟机开销比业务逻辑还大。 启动时间,Java 项目一般 5 秒以上,30 秒也不算多,启动一次要 5 分钟以上的我也见过。即使用 vertx 之类轻量级高性能框架,启动时间也是 1 秒左右,做不到百毫秒级别。 Java native 目前几乎不可用,不仅要每个库的作者维护好编译成 native 的 meta 信息,还需要很长的编译时间,本身编译就够慢了,再来个更慢的步骤,咋整。 |
66
ipwx 2021-07-31 19:03:33 +08:00
@abcbuzhiming ummm 我指的就是大一点的后端。。。小项目那没办法。
|
67
FightPig 2021-08-01 02:16:38 +08:00
vlang 啊
|
69
ginjedoad 2021-08-01 11:11:02 +08:00
Rust: 我不需要 GC !还有谁!
|
70
x940727 2021-08-01 13:36:52 +08:00
@abcbuzhiming
@sagaxu 因为你们用的是 Java8 吧,Java11 自己用 jlink 不就可以大幅降低 jre 大小了吗,说白了,JDK8 是一个超级巨大的分水岭,8 以前的很多缺陷,其实在模块化之后就解决了,但是对于程序员的水平有比较高的需求。还有启动时间和内存占用就更离谱,这个分明是 Spring 慢,占用内存大,丢给 Java 就有点过分了,自己去看看 Netty 的 Web 服务器启动速度和内存占用还有性能? |
71
iseki 2021-08-01 23:06:00 +08:00 via Android
go 编译启动是快,但是语法和生态都这么差劲…受不了啊
|
74
Leviathann 2021-08-02 02:45:58 +08:00 via iPhone
@hushao 我们也在用 kotlin 写后端,完全无缝兼容 Java 生态啊,甚至 kotlin 在 jvm 上的标准库很多东西底层都是直接用的 Java 的库,包括最最基础的集合库,然后添加了 n 多扩展方法,用起来超顺手
还是说这个生态指的是协程?我们都是写业务,没有并发压力所以没有调研过这块 |
75
jin7 2021-08-02 08:28:34 +08:00
CSharp 唯一的选择
|
76
q2551430130 2021-08-02 09:11:59 +08:00
C#
|
77
ly841000 2021-08-02 13:13:09 +08:00
@abcbuzhiming .net native 编译现在 RC 了,基本可用,winform asp core 都能正常使用,不过编译出来的空间占用不小,asp core 得 30M 40M
|