3 ms·
I have a philosophical objection to this approach, while respecting the technical achievement. For me, the ideal distribution of software is always by source. T
by norir 2y ago
I have a philosophical objection to this approach, while respecting the technical achievement. For me, the ideal distribution of software is always by source. The only reason I wouldn't want this is if compilation is prohibitively expensive. But I have found that usually this is only the case for truly massive projects like chrome or projects with heavy dependencies. Most c programs can be compiled in at most a few minutes but usually just a few seconds (luajit and sqlite come to mind as being in the seconds camp). The big problem is that culturally we have accepted too many dependencies in libraries and this has made building too slow and has made binary distribution feel necessary. It is actually much faster on my computer to build neovim from source than upgrading it from homebrew if the upgrade triggers a cascade of dependency updates (which basically seems to happen every time I update anything using homebrew).
I also can't envision a common scenario in which I would have a machine that doesn't have a c compiler but I would be able to run an APE executable. Even in that uncommon case, I still think I would be better off using software that I could compile with a standards compliant c compiler and ship the binary that _I_ built myself to the machine that lacked a c compiler.
- jcelerier 2y ago> I also can't envision a common scenario in which I would have a machine that doesn't have a c compiler but I would be able to run an APE executable 99.99% of people who want to run executables on mac or windows don't have a C or C++ compiler installed and wouldn't have the knowledge to operate it if they did. And if you want to install the default one for these platforms (MSVC or XCode) it's at least 30 minutes of download + 30 minutes of installation. For me this really solves an actual problem I've had customers & team members ask me hundreds of time - "how can I compile a Qt app for Mac when I'm on Windows" (and the inverse)
- loglog 2y agoFor me, cargo is among the most reliable package managers these days. It is about as convenient as any other Linux package manager (and therefore much better than the feeble Windows or Mac alternatives), yet also compiles from source. I evidently don't fall into the 99.99% of Windows users without a C compiler, but I also never write Rust. Anyway, the point that I am making is that it is entirely possible to have a distribution chain that involves a compiler and a user that does not know how to operate that compiler. And how is that fundamentally different from JIT compilation in a JVM or JS runtime anyway?