普通应用层项目 版本答案是 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 无栈协程更优 ( 性能, 内存 等等),
学习快
学习并不是学习语法. 而是所在领域的知识和生态. (比如 web , 游戏 , app 等)
学会语法, 啥也干不了.
只要是 C系 语法. 工作几年的老手, 可以 3 天学会.
语法太简单的语言. 反而是劣势, 表达力不足 , 对底层的控制也不足,
比如 c# 可以写出 0 GC 的代码, 还可以操作指针, 还有 真泛型, 协程 等等
语言的上限就很高了.
编译快
go 的 aot 是语法特性太少了 ( 表达力弱 ) , 所以比 其他语言的 AOT 编译快,
go 最近也加了泛型. 慢慢的特性越来越多. AOT 编译速度就不行了.
鱼和熊掌不可兼得,
想要编译快, 还得是 JIT 编译 和 脚本语言直接执行.
部署快
如果指的是单文件的话. 那其他语言都可以 弄成单文件.
多文件也可以弄成 压缩包, 服务器再解压.
现在稍微正规点的部署, 都是自动化.
把脚本命令写好. 执行就可以了.