top | item 46796424

(no title)

DarkNova6 | 1 month 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.

discuss

order

no_wizard|1 month ago

I 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

the__alchemist|1 month ago

Concur: 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.

direwolf20|1 month ago

C 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.

pjmlp|1 month ago

And vcpkg, not only Conan.

DarkNova6|1 month ago

I 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.

AnthonyMouse|1 month ago

Tacking 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.

yxhuvud|1 month ago

No, 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.

bee_rider|1 month ago

Yes, 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.

direwolf20|1 month ago

Making 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.

DarkNova6|1 month ago

I mean, those languages have the literal culture of "Skill Issues" backed in. I would be very careful with that statement.