| ▲ | taminka a day ago |
| lowkey ppl who praise cargo seem to have no idea of the tradeoffs involved in dependency management the difficulty of including a dependency should be proportional to the risk you're taking on, meaning it shouldn't be as difficult as it in, say, C where every other library is continually reinventing the same 5 utilities, but also not as easy as it is with npm or cargo, because you get insane dependency clutter, and all the related issues like security, build times, etc how good a build system isn't equivalent of how easy it is include a dependency, while modern languages should have a consistent build system, but having a centralised package repository that anyone freely pull to/from, and having those dependencies freely take on any number of other dependencies is a bad way to handle dependencies |
|
| ▲ | dev_l1x_be a day ago | parent | next [-] |
| > lowkey ppl who praise cargo seem to have no idea Way to go on insulting people on HN. Cargo is literally the reason why people coming to Rust from languages like C++ where the lack of standardized tooling is giant glaring bomb crater that poses burden on people every single time they need to do some basic things (like for example version upgrades). Example: https://github.com/facebook/folly/blob/main/build.sh |
| |
| ▲ | taminka a day ago | parent | next [-] | | i'm saying that ease of dependency inclusion should not be a main criterion for evaluating how good a build system is, not that it isn't the main criterion for many people... like the entire point of my comment is that people have misguided criteria for evaluating build systems, and your comment seems to just affirm this? | | |
| ▲ | Sl1mb0 a day ago | parent | next [-] | | > dependency inclusion _should not_ be a main criterion for evaluating how good a build system is That's just like, your opinion, man. | | |
| ▲ | lutusp a day ago | parent | next [-] | | > That's just like, your opinion, man. I would love to know how many younger readers recognize this classic movie reference. | |
| ▲ | taminka a day ago | parent | prev [-] | | i mean, unless you have some absolute divine truths, that's kind of the best i have :shrug | | |
| ▲ | virtualritz a day ago | parent [-] | | There are no truths but your opinion in this case runs counter of what 35 years developing software have taught me. Obviously, I may be an outlier. Some crank who's just smitten by the proposal of spending his time writing code instead of trying to get a dependency (and its sub-dependencies and their sub-dependencies) to build at all (e.g. C/C++) or to have the right version that works with ALL the code that depends on it (e.g. Python). I.e. I use cargo foremost (by a large margin) for that reason. | | |
| ▲ | taminka a day ago | parent [-] | | in my original comment i specifically mentioned that C (and C++) situation is also too extreme and not optimal... |
|
|
| |
| ▲ | CodeMage a day ago | parent | prev | next [-] | | Dependency management should most definitely be one of the main criteria for evaluating how good a build system is. What's misguided is intentionally opting for worse dependency management in an attempt to solve a people problem, i.e. being careless about adding dependencies to your project in circumstances when you should be careful. | |
| ▲ | adwn a day ago | parent | prev [-] | | > like the entire point of my comment is that people have misguided criteria for evaluating build systems, and your comment seems to just affirm this? I think dev_l1x_be's comment is meant to imply that your believe about people having misguided criteria [for evaluation build systems] is itself misguided, and that your favored approach [that the difficulty of including a dependency should be proportional to the risk you're taking on] is also misguided. | | |
| ▲ | taminka a day ago | parent [-] | | my thesis is that negative externalities of build systems are important and i don't know how to convince of importance of externalities someone whose value system is built specifically on ignoring externalities and only factoring in immediate convenience... |
|
| |
| ▲ | huflungdung a day ago | parent | prev [-] | | [dead] |
|
|
| ▲ | quantumspandex a day ago | parent | prev | next [-] |
| Security is another problem, and should be tackled systematically. Artificially making dependency inclusion hard is not it and is detrimental to the more casual use cases. |
|
| ▲ | hobofan a day ago | parent | prev | next [-] |
| > but having a centralised package repository that anyone freely pull to/from, and having those dependencies freely take on any number of other dependencies is a bad way to handle dependencies So put a slim layer of enforcement to enact those policies on top? Who's stopping you from doing that? |
|
| ▲ | itsibitzi a day ago | parent | prev | next [-] |
| What tool or ecosystem does this well, in your opinion? |
| |
| ▲ | taminka a day ago | parent [-] | | any language that has a standardised build system (virtually every language nowadays?), but doesn't have a centralised package repository, such that including a dependency is seamless, but takes a bit of time and intent i like how zig does this, and the creator of odin has a whole talk where he basically uses the same arguments as my original comment to reason why odin doesn't have a package manager | | |
| ▲ | zoobab a day ago | parent [-] | | "a standardised build system (virtually every language nowadays?)" Python packages still manage poorly dependencies that are in another lang like C or C++. | | |
| ▲ | taminka 3 hours ago | parent [-] | | that's two different languages, they don't have have a standardised build system across them |
|
|
|
|
| ▲ | IshKebab a day ago | parent | prev | next [-] |
| This is the weirdest excuse for Python's terrible tooling that I've ever heard. "It's deliberately shit so that people won't use it unless they really have to." |
| |
| ▲ | taminka a day ago | parent [-] | | i just realised that my comment sounds like it's praising python's package management since it's often so inconvenient to use, i want to mention that that wasn't my intended point, python's package management contains the worst aspects from both words: being centralised AND horrible to use lol my mistake :) |
|
|
| ▲ | a day ago | parent | prev | next [-] |
| [deleted] |
|
| ▲ | MangoToupe a day ago | parent | prev | next [-] |
| > the difficulty of including a dependency should be proportional to the risk you're taking on Why? Dependency hell is an unsolvable problem. Might as well make it easier to evaluate the tradeoff between dependencies and productivity. You can always arbitrarily ban dependencies. |
|
| ▲ | jokethrowaway a day ago | parent | prev [-] |
| Is your argument that python's package management & ecosystem is bad by design - to increase security? In my experience it's just bugs and poor decision making on the maintainers (eg. pytorch dropping support for intel mac, leftpad in node) or on the language and package manager developers side (py2->3, commonjs, esm, go not having a package manager, etc). Cargo has less friction than pypi and npm. npm has less friction than pypi. And yet, you just need to compromise one lone, unpaid maintainer to wreck the security of the ecosystem. |
| |
| ▲ | taminka a day ago | parent [-] | | nah python's package management is just straight up terrible by every metric, i just used it as a tangent to talk about how imo ppl incorrectly evaluate build systems |
|