哪种语言编写的程序转成可执行文件比较方便(exe / binary file) ?

2023 年 7 月 4 日
 aim467

想写一些小工具,主要是基于命令行上进行操作的工具,想问问大家哪个语言来写比较方便

16702 次点击
所在节点    程序员
159 条回复
GPLer
2023 年 7 月 4 日
只有 C ,其他都不方便。
https://justine.lol/ape.html
https://github.com/jart/cosmopolitan
基于 cosmopolitan 编译的 C 能做到二进制跨平台运行
fyq
2023 年 7 月 4 日
那显然是 C
kljsandjb
2023 年 7 月 4 日
@aa51513 是的,这方面生态还是太不成型了
musi
2023 年 7 月 4 日
第一次见到写小工具用 Java 的,那不得打一个 jre 放包里,小而美?
snw
2023 年 7 月 4 日
VB6 ?
placeholder
2023 年 7 月 4 日
那你还不如用 nodejs 写 cli 呢
yazinnnn
2023 年 7 月 4 日
java 写个 hello world, aot 之后都有 11M, 咋做小工具哦...
cozof
2023 年 7 月 4 日
golang 啊。你看我不费吹灰之力就把 go 写的小工具打包了各平台的几十个可执行文件。 https://github.com/qcozof/portsman/releases
LeegoYih
2023 年 7 月 4 日
考虑到逆向的话,还是别选解释型语言和 Java 了
xgdgsc
2023 年 7 月 4 日
体积小 rust go 最方便。不嫌体积大(500M),从简洁的动态脚本写起,Julia 用 https://comonicon.org/stable/ https://julialang.github.io/PackageCompiler.jl/dev/ 也可以, 参考 https://github.com/ninjaaron/administrative-scripting-with-julia
lsk569937453
2023 年 7 月 4 日
写命令行还得是 golang/rust,不接受反驳!
bthulu
2023 年 7 月 4 日
当然是.net 了, 直接支持打包成单文件
recolic
2023 年 7 月 4 日
@u823tg 如果是要给别人用的程序,用脚本语言写的话,小白会追在你屁股后面说环境有问题/出错了/跑不了,烦死人。
gimp
2023 年 7 月 4 日
首推 Golang ,其次 Rust
a33291
2023 年 7 月 4 日
推荐 rust 或者 go,主要是交叉编译跨平台特性,cli 比较合适

.net 和 java 就别掺和了,丢脸
tool2d
2023 年 7 月 4 日
看程序的复杂程度了,我是觉得 C 好,因为你倒退个 10 ~ 30 年,github 上的代码大部分核心算法,都是用 C 写的,随时可以抄作业。

如果程序很简单,那 nodejs 写写也可以,任何语言都可以。
jiulang
2023 年 7 月 4 日
@a33291 你这么说会把自己的脸打了的。.net 能生成多平台的单文件,也能 aot 编译成多平台的二进制文件
a33291
2023 年 7 月 4 日
@jiulang #37 好多语言都能,还能搞 AI 呢,那咋不把 python 都换成 C#?每个语言在特定场景下有其擅长和优势,不要混淆概念和扩大范围.
你想说 C#和 java 很好没问题,但是前置场景也要考虑.
java 和.net 的 AOT 就算非常成熟(况且目前还不够成熟)也不过是现在 rust 的 native 水平

所以,能不能和谁合适,是要看场景的
liuliuliuliu
2023 年 7 月 4 日
@a33291 纯请教,rust 的 native 水平是啥意思啊?
我前两天用 C#写了一个跨平台原生编译 aot 的 ui
https://v2ex.ih06.com/t/952603

命令行当然也没问题
a33291
2023 年 7 月 4 日
@nikenidage1 #39 抱歉我可能没表达清楚,每个语言都有他的特色和优势

是这样,就是.net 和 java 都带有 runtime,c/c++/rust 不带,编译就是针对特定平台的产物(win 就是 dll 或 exe),他们 aot 之后的确也不需要安装环境(但是本质上还是内嵌了一个 runtime),通过裁剪等可以减少 aot 的大小达到性能和大小的平衡(也见过使用极限手段优化 aot 大小的,但是并不是开箱即用),但是总是需要付出更多努力的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/953828

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX