·
React.js / C#

普通应用层项目 版本答案是 java c# php nodejs

GC 成为瓶颈的时候再用 Rust C++ 重构 或者 编译为 DLL

golang 不上不下. 唯一的优势是 静态编译,

用户不需要安装 runtime

( 但软件的尺寸会变大,

c# 几百 KB 就可以写一个带原生界面的小工具,

可以在 xp 及以上, 瞬间启动, ( win系统自带 .net framework) ),

c# java nodejs python 等等 可以一键打包 runtime 到 程序中,

c# 还支持 runtime 裁剪, 类似 前端的 tree shaking,

也算是解决了 安装 runtime 的问题

go 各种内部实现 和 GC 都没有 Java C# 的好.

go 协程只需一个关键字.

其他语言需要 async await 两个关键字.

而其他方面 async 无栈协程更优 ( 性能, 内存 等等),

Replies
3

c# 和 java 也都可以 AOT 了.

java 谁敢在生产上 AOT,现在还是玩具阶段。

性能不是 go 的优势,高并发并不等于高性能,学习快,编译快,部署快,简化了并发的开发体验,这些才是 go 的核心优势

学习快

学习并不是学习语法. 而是所在领域的知识和生态. (比如 web , 游戏 , app 等)

学会语法, 啥也干不了.

只要是 C系 语法. 工作几年的老手, 可以 3 天学会.

语法太简单的语言. 反而是劣势, 表达力不足 , 对底层的控制也不足,

比如 c# 可以写出 0 GC 的代码, 还可以操作指针, 还有 真泛型, 协程 等等

语言的上限就很高了.

编译快

go 的 aot 是语法特性太少了 ( 表达力弱 ) , 所以比 其他语言的 AOT 编译快,

go 最近也加了泛型. 慢慢的特性越来越多. AOT 编译速度就不行了.

鱼和熊掌不可兼得,

想要编译快, 还得是 JIT 编译 和 脚本语言直接执行.

部署快

如果指的是单文件的话. 那其他语言都可以 弄成单文件.

多文件也可以弄成 压缩包, 服务器再解压.

现在稍微正规点的部署, 都是自动化.

把脚本命令写好. 执行就可以了.