3 ms·
I know this is unpopular opinion on here, but I believe all this packaging madness is forced on us by languages because Windows (and to a lesser degree osx) hav
by cycomanic 4y ago
I know this is unpopular opinion on here, but I believe all this packaging madness is forced on us by languages because Windows (and to a lesser degree osx) have essentially no package management.
Especially installing a tool chain to compile C code for python is no issue on Linux, but such a pain on Windows.
- humanrebar 4y agoC tends to work in those cases because there aren't a significant number of interesting C dependencies to add... because there is no standard C build system, packaging format, or packaging tools. When juggling as many transitive dependencies in C as folks do with node, python, etc., there's plenty of pain to deal with.
- chlorion 4y agoIt may be unpopular but it's correct! Every language tries to re-implement the package manager, but it ends up breaking down as soon as you need to interact with anything outside of that specific language's ecosystem. The only solution for interacting with the "outside" (other languages, toolchains, etc) is a system level, language agnostic package manager of some kind. Linux distros package management is far from perfect but it's still miles ahead of the alternatives! I very highly recommend people to learn how to write and create Linux packages if they need to distribute software. On Arch for example this would be creating PKGBUILDs, Gentoo has ebuilds, and other distros have something similar to these things.
- Const-me 4y ago> it ends up breaking down as soon as you need to interact with anything outside of that specific language's ecosystem. It works OK in nuget on Windows, due to the different approach taken by the OS maintainer. A DLL compiled 25 years ago for Windows NT stills work on a modern Windows, as long as the process is 32-bit. A DLL compiled 15 years ago for 64-bit Vista will still work on a modern Windows without issues at all. People who need native code in their nuget packages are simply shipping native DLLs, often with static link to C runtime. Probably the most popular example of such package is SQLite. > I very highly recommend people to learn how to write and create Linux packages if they need to distribute software. I agree. When working on embedded Linux software where I control the environment and don’t care about compatibility with different Linuxes or different CPU architectures, I often package my software into *.deb packages.