![]() | 1 pinkSlime 2021-07-30 12:37:18 +08:00 ![]() ? > Go is syntactically similar to C |
![]() | 2 thet 2021-07-30 12:38:09 +08:00 via iPhone ![]() C# |
![]() | 3 wellsc 2021-07-30 12:39:42 +08:00 via iPhone ![]() .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 ![]() 那就是 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 ![]() crystal |
11 micean 2021-07-30 13:23:31 +08:00 ![]() 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 ![]() 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 ![]() |
![]() | 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 ![]() swift :-) |
![]() | 33 janxin 2021-07-30 18:05:59 +08:00 Rust 啊 |
34 Leviathann 2021-07-30 18:09:27 +08:00 via iPhone ![]() 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 keifafa 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 ![]() 啊,是为了好招人啊,那当我没说 |
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 ![]() @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 |