5 ms·
Is it not curious that languages known for their rigor have solid package manager/build tools while the remakning languages do not? This is not a technical pro
by DarkNova6 9mo ago
Is it not curious that languages known for their rigor have solid package manager/build tools while the remakning languages do not?
This is not a technical problem. It’s a cultural one.
- no_wizard 9mo agoI don’t think those have much to do with it. Certainly Go is a more rigorous language than say JavaScript but it’s package mangement was abysmal for years. It’s not even all the great now. C/C++ is the same deal. The way it handles anything resembling packages is quite dated (though I think Conan has attempted to solve at least some of this) I think Cargo and others have the hindsight of their peers, rather than it being due to any rigorous attribution of the language
- pjmlp 9mo agoAnd vcpkg, not only Conan.
- the__alchemist 9mo agoConcur: C and C++ are a great example of being both used for rigorous uses, but building/packaging being a mess. And I think the big adv Cargo/Rust has is learning from past mistakes, and taking good ideas that have come up; discarding bad.
- DarkNova6 9mo agoI was mostly having typical application programming languages in mind such as C# and Java. Go doesn't exactly fit that bill and I've seen it be used more for technical plumbing that needs a good concurrency model. And Maven isn't exactly new. Frankly, PHP also has a very good packet manager with Composer. In general, PHP has done surprisingly good and sane decisions for the language and extremely solid support for static typing by now. But yeah, Cargo definitely had the benefit of Hindsight.
- direwolf20 9mo agoC and C++ enjoy the joys of not having a lot of packages. If you want to distribute leftpad in C++ you do it in the form of a code block to copy/paste. It's too small to justify the high overhead of creating a package.
- bee_rider 9mo agoYes, we can even see—the languages with the best culture and superior rigor have the best package manager: C and Fortran, which just use the filesystem and the user to manage their packages.
- pklausler 9mo agohttps://fpm.fortran-lang.org https://fpm.fortran-lang.org
- DarkNova6 9mo agoI mean, those languages have the literal culture of "Skill Issues" backed in. I would be very careful with that statement.
- direwolf20 9mo agoMaking the end developer think about every package they use has led to a culture of using just enough packages and not too many, which I think is good.
- AnthonyMouse 9mo agoTacking package management onto a language is feature creep to begin with. You can pretty obviously have a program in one language that uses a library or other dependency written in a different one. The real problem is that system package managers need to be made easier to use and have better documentation, so that everyone stops trying to reinvent the wheel.
- deleted 9mo ago[deleted]
- yxhuvud 9mo agoNo, the system package managers is part of the fragmentation problem, as every app would have to support n different package managers. That is a nonstarter. Getting away from that is the main feature that drive adoption of language specific managers. What is needed is a layer in between that work well with both languages and systems.
- AnthonyMouse 9mo ago> No, the system package managers is part of the fragmentation problem, as every app would have to support n different package managers. Apps don't support system package managers, system package managers package apps. The problem is that this should be easy. Given a written description by the app developer of what files the app needs to be installed and what its dependencies are, writing a packaging metadata file for any given package manager should be less than ten minutes of work for the packager, and anybody should be able to learn how to do it in less than a day. But the packaging systems are poorly documented and in some cases unnecessarily complicated, and then getting someone to add your app to any given package manager is more work than it should be and app developers start trying to figure out how to package it themselves instead of getting on with just developing their app. > Getting away from that is the main feature that drive adoption of language specific managers. https://xkcd.com/927/ https://xkcd.com/927/ > What is needed is a layer in between that work well with both languages and systems. That's what system package managers are.