想写一些小工具,主要是基于命令行上进行操作的工具,想问问大家哪个语言来写比较方便
想写一些小工具,主要是基于命令行上进行操作的工具,想问问大家哪个语言来写比较方便
|
pkoukkJul 4, 2023
101
go 最合适,编译简单,产物体积小,跨平台交叉编译很容易
|
|
beixiaoJul 4, 2023 via iPhone
102
用下来还是 go 最方便
|
|
103
我发现 V2EX 上大家对 .net / c# 的信息很滞后
.net / c# 现在完全可以做到跨平台、原生编译、无需运行时、冷启动快、占用内存低、单文件 exe 等等特性,且不需要什么特殊操作。 可以参考我之前实验性写的跨平台带 UI 的小软件 https://www.v2ex.com/t/952603 |
|
someonedengJul 4, 2023
104
go , rust 学习成本高(已经会的话当我没说)
|
|
monkeyWieJul 4, 2023
105
必然是 go 啊,交叉编译体积又小
|
|
xz410236056Jul 4, 2023
106
golang 官方自带工具,转各个平台的 app ,单个程序,运行不要任何环境
|
|
xz410236056Jul 4, 2023
107
@someonedeng #104 go 有啥学习成本。。3 分钟入门
|
|
108
tabtoy[1] 用 Golang 寫的,5MB.
fd[2] 用 Rust 寫的,1MB. Locale Emulator[3] 用 C# 寫的,1MB. NoClose[4] 用 AutoHotkey 寫的,500KB. PageFileUsageMonitor[5] 用 VB6 寫的,60KB. [1] https://github.com/davyxu/tabtoy [2] https://github.com/sharkdp/fd [3] https://github.com/xupefei/Locale-Emulator [4] https://www.dcmembers.com/skrommel/download/noclose/ [5] http://www.standards.com/ThisAndThat/PageFileUsageMonitor.html |
|
yanueJul 4, 2023
109
推荐 node 的没有运行环境怎么跑?
|
|
dw2693734dJul 4, 2023
110
go
|
|
tangtang369Jul 4, 2023
111
go 肯定是最 ok 的 完全的跨平台 随便切换
|
|
112
c#大法好
|
|
SenLiefJul 4, 2023
113
小型的脚本直接撸 python ,python 自己用写起来小工具是真的舒服,如果是打包分享的,可能还是 golang 更好一些。
|
|
RRRSSSJul 4, 2023
114
Go rust
|
|
ViriFJul 4, 2023
115
https://github.com/vercel/pkg ( Nodejs ,个人体会很好用)
https://pyinstaller.org/en/stable/ ( Python ,个人体会比较难受,尤其是涉及 Nvidia/LibTorch 等的库文件的时候,启动简直折磨,对硬盘空间也有要求) |
|
lhbcJul 4, 2023 via Android
116
为什么没人提 php ?
|
|
lcj2classJul 4, 2023
117
|
|
H0HJul 5, 2023
118
@idealhs 你咋不直接说自己水平太差呢?做个 exe 小工具,就非要换个语言把现有提供各种库的生态完全抛弃?小工具写着写着要转成大工具持续维护了,此时需要各种功能时没有第三方库难道自己发明轮子? 99%的人真有能力发明轮子?
C++写 exe 的确最适合,为什么市场占有率一直上不去?要不你继续吹吹? 拿语言论高下的,不就是一个没入门的菜鸟嘛 |
|
H0HJul 5, 2023
119
@lujiaxing 我做的启动器是支持自动下载并安装特定版本的 JRE 的,这样 exe 程序本身就可以保持的很小,一般都小于 20M ,在大公司就可以通过邮件直接分享。winrar 自解压包怎样轻松实现这个功能?
更不用说,启动器还可以实现 Mutex 单进程运行功能,程序执行过程中被二次启动时可以直接拒绝运行,一般定时任务中很适合。还可以监控最大运行时间等等。 |
|
H0HJul 5, 2023
120
@c3de3f21 拿各种编程语言论高低的,不就是没入门的菜鸟嘛,怎么好意思求别人?要不你吹吹高大上的?是不是非要 C++写一下才显水平? Electron 这种 js 开发套个 Chrome 浏览器的,比 JRE 还低效,但迅雷用起来也没感觉有多么难以接受啊,要不你来批评批评?
|
|
121
|
|
122
@LeeReamond 的确,什么语言都能写写小工具,我有些现在还在跑的小工具,就是 win32asm 汇编写的。但这类工具做不大,如果将来做着做着小工具需要转为大工具持续开发,那汇编、C 、C++、Qt 这类用起来就很麻烦。主要缺失的就是生态里面的各种第三方库。招人也很难。这类语言市场一直做不大,本就证明了这一点。
如果做一个小工具就不再维护了,那的确什么语言都行。C 这类麻烦的就用 Python 或 Go 这类更新的语言。但如果一个小工具打算用几十年(我自己用汇编写的小工具都有 10 年的历史了,至今还在用,而且在 windows 11 ARM 版验证过,也能自动被转译执行),那技术选型选来选去,最终就会发现还是 Java 这类市场占有率最大的语言最省事。想做成桌面版轻轻松松搞定,想改成 Web 版在服务端运行也很容易,想支持三大桌面操作系统也不需要重新开发,又有最完善的生态,需要什么都有第三方库。而 C/C++/Python/Go 这类,如果要求也这么高,那它们还真是搞不定。 至于不会打 exe ,这明显是技术水平问题。至于说程序包太大,Electron 也不小啊,迅雷这种不就在用嘛。更不用说,手机上的 App ,现在随便一个都轻轻松松几百 M ,一个 Java 带 JRE 也是几百 M 的桌面版小工具还有什么不能接受的? 当然,Java 是泛指,不是特指。我的意思就是说应该尽可能选择市场占有率最高的语言及其生态来开发 exe 小工具。可能基于 js 的也行,只不过我没有足够踩坑经验,而我在 Java 踩坑够了,所以对我来说就选了后者。 所以这是一个小马过河的故事,无非就是看站在哪个层面看需求了。 |
|
H0HJul 5, 2023
123
@GeruzoniAnsasu #121 ,实在不懂的话可以不评论。
|
|
owt5008137Jul 5, 2023 via Android
124
golang ,rust
|
|
GeruzoniAnsasuJul 5, 2023
125
|
|
isekiJul 5, 2023
126
Go ,或者 (Java|Type)Script 然后用 deno compile 打包成 exe······
|
|
zjsxwcJul 5, 2023 via Android
128
|
|
130
要不试试 bflat ,go 工具链体验版本的 c#,默认就是 nativeaot ,既具备交叉编译同时类库还比 go 丰富得多,出来的体积还比 go 更小。
既然是命令行工具那也就没有什么所谓的 nativeaot 限制,基本想咋用就咋用。 其实就算是 gui 应用你拿 avalonia 写照样不存在限制,人家原生就支持 nativeaot 。 |
|
hez2010Jul 5, 2023 via Android
131
|
|
arfaWongJul 5, 2023
132
@nikenidage1 go 能编译出来只有一个 exe 文件,但是你的小软件除了 exe 还有 dll 文件。
|
|
chengxiaoJul 5, 2023
134
golang 不需要特别的设置,只要不涉及 cgo,写出来直接用交叉编译,跨 win/mac/linux 跨 x86/arm64 都可以,而且不需要在特定平台下编译,可以直接在 x86 编译 arm64 可以在 win 下编译成 mac 的可执行文件
|
|
noahliasznJul 5, 2023
135
小众语言 vlang !!!
|
|
136
肯定是 C#呀,结合宇宙第一 IDE Visual Studio ,直接一键打包发布成各个平台的可执行文件
都不需要去折腾什么编译环境了 |
|
nxcdJaNnmyF9O90XJul 5, 2023
138
必须 golang 大法
|
|
githmbJul 5, 2023
139
必须 Rust ,cargo 那么多库,不香?
|
|
liuliuliuliuJul 5, 2023
140
@arfaWong 啊,因为我这是 ui ,所有有点依赖的 dll ,如果是命令行就一个文件。再者,应该也可以链接进去
|
|
141
C#大法好,直接选择 Net7 支持跨平台。
|
|
mxT52CRuqR6o5Jul 5, 2023 via Android
144
Python 也有办法打包成可执行文件,主要看你自己的技术栈吧
|
|
ViriFJul 5, 2023
149
@qfdk #146 这个我还真不知道,我自己用它打包过几次服务端带静态资源还挺顺利的;去看了 pkg 的 issue 好像确实有些打包不是开箱即用,这要是遇到就难受了
|
|
Masoud2023Jul 5, 2023
151
如果你不想被强制要求 runtime
1. Golang 2. Rust 3. Python + PyInstaller 4. cpp 如果你觉得拖个 runtime 也没啥问题 1. .net core 全家桶(比如 csharp )( windows 太低要.net CLR ) 2. Java (别做梦了,怎么弄 Java 不都得挂个 jvm ) 3. Electron (挂个 Chrome ) 如果要跨平台:Golang 、Rust 如果要跨平台 GUI:Electron 、Rust+Qt ? |
|
152
@Trim21 #150 我是打 linux 上面的,因为他们的 package.json 里面缺个版本号还是啥来着看了一眼,放弃了 不折腾完活要紧 哈哈哈哈
|
|
153
nim-lang 语法简单,编译快速,还可以结合 cosmopolitan 一次编译,跨平台运行
|
|
bugmaker233Jul 5, 2023
154
如果考虑 win 平台,貌似 visual studio 还不错,什么语言都可以支持,直接打包 exe 也不会有太多坑。跨平台或者 UI 要求多可以 QT ,但是 qt 只能用 c++,而且 qt 大又难用
|
|
eooJul 5, 2023
155
PHP yyds
|
|
someonedengJul 6, 2023
157
@xz410236056 我断句问题,rust 成本高
|
|
talkischeap567Nov 2, 2023
158
@shyangs 建议直接开源,然后弄成乱码论文,采纳.
|
|
Conantv2Nov 16, 2023
159
|