4 ms·
Given you've seen the same effect in both Ruby and JS maybe the takeaway should instead be that there is a group of devs who will always reach for a package fir
by moritonal 3y ago
Given you've seen the same effect in both Ruby and JS maybe the takeaway should instead be that there is a group of devs who will always reach for a package first, not that a specific language has a problem.
- PH95VuimJjqBqy 3y agoand that group of devs tends to flock to certain ecosystems. I've never seen a .net project with 100+ dependencies, I've easily seen that multiple times for RoR and node.
- majormajor 3y agoIn Javaland you can have a huge nested tree of dependencies but you often don't have a "Gemfile.lock" or such to list them all in a file in your repo...
- PH95VuimJjqBqy 3y agoI'm not a fan of the Java community either, they love their structure. people jest about the FactoryFactoryFactory but you'll legit see that stuff out in the wild. Paradoxically, I like the PHP community because they're so practical (yes, the language itself is ugly). RoR built rake for running jobs (it does more things, but that was the primary motivation). PHP community just used cron. Although, having said that, Laravel takes a lot of its cues from RoR and has the same sort of tooling. But when Laravel first hit the scene a lot of people would criticize it for its use of static, but it was legitimately nice to use and that won out in the end. I don't make a judgement of Rails as a community. Most of my Ruby work has been Ruby on Rails so that's' the lense I see things through. Rubyists may be the most practical of all, it's just that so much of Ruby code is RoR that it's difficult for me to separate them out.
- moritonal 3y agoOf all the languages I didn't think you'd hold .NET as the pillar of lean dependency trees. Maybe it's bad luck, or even just me, but NuGet hell is a real place I've been to and .NET's packaging system is brutal at resolving when you pass even 50 packages.
- PH95VuimJjqBqy 3y agoI can say that's not been my experience but I've never seen 50 nuget packages in a single project. It doesn't necessarily surprise me that it becomes painful after 50 but what in the world were those 50 packages for? You probably know this already, but just in case; I would also strongly recommend not using packages.config or upgrading if you can. PackageReference can deal with transitive dependencies because the compiler resolves them for you: https://learn.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files https://learn.microsoft.com/en-us/nuget/consume-packages/pac... So you don't have to add a dependency to a project just because another dependency has a dependency on it. It might allow you to start removing dependencies. I've been told packages.config allows pre/post events that PackageReference doesn't so it may be that it's not an option for you, but even then I'd try really hard to move away from packages.config. Here's some migration documentation just in case: https://learn.microsoft.com/en-us/nuget/consume-packages/migrate-packages-config-to-package-reference https://learn.microsoft.com/en-us/nuget/consume-packages/mig...
- charlie0 3y agoOn the flipside, it takes way longer to get things done on .net. There should be a balance here, but it's not going to happen. There will always be a fair amount of users installing packages for everything.
- jonathanlydall 3y agoThat’s not my experience with .NET, at least not on any project of non-trivial scope. What kinds of things do you find take longer in .NET?
- PH95VuimJjqBqy 3y agoIf you're talking about initial productivity they're probably right. If you're talking about long term productivity, they're most definitely wrong. I say this as someone with extensive experience in .net, ruby, PHP (laravel, et al), and so on. Even something like ActiveRecord is going to blow .net out of the water in terms of pure speed, but long term the typing and the stability of .net gives it the advantage.
- charlie0 3y agoThose typing advantages are getting much better with the latest versions of PHP. Sure, it's not like .net, but close enough. The advantage of something like PHP is that I can prototype something quickly without the language getting in my way. I can add the typing later and make it production ready.
- jonathanlydall 3y agoSpeaking as a .NET developer, I suspect this is because the base libraries are somewhat extensive.