5 ms·
It annoys me that every gee-whizz new language needs to have it's own package-management system. There's no reason why a package-management system needs to be
by denton-scratch 4y ago
It annoys me that every gee-whizz new language needs to have it's own package-management system.
There's no reason why a package-management system needs to be language-specific; dependencies are often cross-language. Hell, even some blocks of code contain more than one language.
The package-management system is responsible for deploying packages. The way a package is deployed should depend on the operating environment, not on the language. These language-specific packaging arrangements typically deploy into some private part of the file-system, organized in its own idiosyncratic way.
Using git as a repository is just nuts. Git is privately-owned, and stuffed with all kinds of unaudited junk. You can't audit everything you install by hand; so these systems force you to install unaudited code, or simply not install.
I've been using Debian derivatives for years. I appreciate having an audited repository, and an installation system that deploys code to more-or-less predictable filesystem locations.
- pjmlp 4y agoBecause cross platform packages isn't a thing, and not everyone wants to create a package for every platform out there.
- Sebb767 4y ago> There's no reason why a package-management system needs to be language-specific; dependencies are often cross-language. Hell, even some blocks of code contain more than one language. This sounds a lot like a case of https://xkcd.com/927/ https://xkcd.com/927/ . Languages have different ways of importing and installing dependencies, trying to create a package manager over all of those is just going to end up making things even more complex, especially if you target all platforms at once. > Using git as a repository is just nuts. Git is privately-owned, and stuffed with all kinds of unaudited junk. Git is fully open source. Are you confusing Git and GitHub?
- tazjin 4y ago> Languages have different ways of importing and installing dependencies They're not actually different. They call things differently, and they have different methods of passing the required lookup paths/artifacts/sources to their compilers/interpreters/linkers, but in the end all of them are conceptually the same thing.
- krapp 4y ago>but in the end all of them are conceptually the same thing The concept of a programming language isn't what people use, but the concrete reality of specific implementations on specific hardware. You could also say that a coffee cup and a donut aren't actually different because they're topologically the same... but the facts on the ground do actually matter.
- tazjin 4y agoIt absolutely does matter in this case. We have written implementations of this concept for very different languages (Go, Common Lisp, Erlang, C) and the conceptual equality means that nothing is different at the core, only at the edges (where you integrate with each snowflake's particular flavour of "what are the names of the command-line arguments to the compiler" and so on).
- nicoburns 4y ago> Using git as a repository is just nuts. Git is privately-owned, and stuffed with all kinds of unaudited junk. Do you mean github? Git is open source and one of the few pieces of software that works in a truly distributed fashion.
- arcturus17 4y ago> Git is privately-owned, and stuffed with all kinds of unaudited junk. Also: what do I care that people store unaudited and insecure stuff in there?
- denton-scratch 4y agoYou're right; I meant github. Sorry.
- randomdata 4y ago> Git is privately-owned, and stuffed with all kinds of unaudited junk. [...] I've been using Debian derivatives for years Git is owned by the same owner as Linux. If you've been using Debian derivatives for years it seems you must have some trust to give that private entity? Unless the derivative you speak of is Debian GNU/k*BSD? Furthermore, if you give trust to Debian derivative projects, why not trust their Git builds? If you trust everything else in their distribution Git is a curious omission. Do you have a personal beef with Torvalds or something?
- maple3142 4y agoProbably because your Debian doesn't work on other Linux distros like CentOS, Arch Linux ..., let alone MacOS and Windows. The holy grail would be a package manager that is both cross language and cross platform at the same time, but it seems too hard to be implemented in general. Anaconda is probably the closest as it also package many non python packages. Nix is also similar but it doesn't support Windows at all (without WSL)
- yamtaddle 4y agoThe reasons language-specific package managers are popular: 1) "npm install" or "go get" or what have you, works on every platform (barring bugs), while "apt install" only works on some. 2) Most platform package managers aren't good at handling multiple versions of dependencies (which, neither are many language package managers, but they're easier to sandbox away with supplemental tools than system package managers are) 3) Most platform package managers lag way behind language-specific package managers, and may also lack tons and tons of packages that are available on those. > Git is privately-owned Git... hub, you mean?