I couldn’t agree more. These threads have got me thinking and revisiting prior threads and talks about why we want trimming and small binaries. In a desktop tools context, where I’m delivering something developed in Julia to non-Julia users, asking them to install Julia is a non-starter (and may frankly not even be allowable in some environments). Also, given that trimming only seems to reduce the binary itself (great if your use case is low-SWAP embedded targets), but not the many times larger collection of runtime dependencies, it actually doesn’t seem to be doing much for the desktop use case. If anything, since we don’t have cross-compilation, it makes things less portable (and let’s not forget that I also have to give up parts of Julia in order to be strict and (gradually) rewrite my code to even get there… sorry, that’s very much two languages and serious desktop tool deployment friction).
Hello World is about ~120MB on Windows with --trim, which, compared to Electron and other hybrid alternatives, isn’t too bad. Given the compromises you will have to make across the board, this makes me far less interested in trimming and static compilation for the desktop tool use case.
And, again, shoutout to AppBundler.jl for providing options here. I’d love to see some benchmarks for size and performance vs tradeoffs under different option sets for desktop deployments using it.
3 Likes