3 ms·
> But, to answer your question: In general, every language has its own memory model. Maybe I'm very ignorant about something really important, but isn't this a
by logicalmonster 4y ago
> But, to answer your question: In general, every language has its own memory model.
Maybe I'm very ignorant about something really important, but isn't this arguably irrelevant for a basic package manager functionality?
What do package managers actually do?
Isn't the core of it basically moving the asked-for collection of files into some standard accessible folder and then triggering the right events to install or process whatever needs to be installed in order to run a program if possible?
Whenever you install a JavaScript library for example, npm copies 50,000 folders and files into some node_modules folder and then just updates a package listing. npm doesn't guarantee that any program you use that library in will actually run or be functional, after all.
A universal package manager wouldn't have to force a Java library to run in a JavaScript project, but it could simply copy the files from that package manager and give you some configuration or other information needed to run Java if you so choose.
- gwbas1c 4y agoIf it was that simple you'd see languages coalesce around 1-3 winners, kinda like what's happened with every IDE under the sun integrating with git. A lot of this has to do with the semantics of how a language imports its dependencies. For example: Look deeply into a NuGet package. It often has multiple builds, because in the .net ecosystem, 3rd party libraries are always dynamically linked. These different builds can be different versions of .net, and may include native dlls for different instruction sets. Npm and cargo tend to bring in source code. Cargo lets you suck in a git repo directly. This is totally different than .net; again because these systems are source code based.