> No enforced values by one or another interest group.
I wish. Try working at almost any company, and you'll have to betray your users on an unrealistic arbitrary deadline.
The industry doesn't appreciate people who think, or talented people, or good engineers. It appreciates those who can haphazardly slap together a subpar something out of ready-made libraries to meet "business goals". And this is depressing af.
I am a "dependency skeptic." A lot of folks think I'm against them, but nothing could be further from the truth. Most of my software is composed of dependent modules.
I don't oppose the whole concept of using libraries. I just look closely at each library I'm about to include in my project to understand what exactly it's doing, what it's abstracting away, what are the tradeoffs I'm making, and whether its scope is too broad for whatever I'm trying to achieve. It's sincerely perplexing to me that not everyone does this.
The other biggie is legal and fiduciary exposure. That's usually neglected by tecchies.
You can't ask a lawyer, because they will always say "no," but I have seen some really bad things happen, because people didn't take this stuff seriously.
I never take this stuff seriously, but then I never really worked, or ever had the desire to work, on anything this proprietary, or in a company this bureaucratic. When my first employer was acquired by a giant corporation and I started seeing it transform into this monstrosity, I quit.
> It appreciates those who can haphazardly slap together a subpar something out of ready-made libraries to meet "business goals". And this is depressing af.
OTOH, those who can do this while still maintaining some integrity get a lot of respect, at least in communities like HN. I'm reminded of Spolsky's "smart and gets things done."
And just to push back a bit: reuse is a good thing. Indeed, by looking first to make sure you aren't re-implementing the wheel, much of the spurious software that this article bemoans can be avoided. I know it sounds like an imperfect compromise, but that's because it is. Sometimes you just need to get shit done.
Dependencies are great. It's how small teams do big stuff.
Dependencies are awful, it's where jurassic-scale disasters are born.
Whether we like it or not, dependencies are here to stay. It's like calculators are now an integral part of every student's book bag. I'm old enough to remember when you would get thrown out of school for bringing a calculator.
It's just that when we develop and publish infrastructure, it needs to be held to a much higher standard than the apps that are built on top of it, and I'm not sure we're at the point where we can implicitly trust infrastructure. Being good at vetting and choosing dependencies is still an extremely valuable skill.
I wish. Try working at almost any company, and you'll have to betray your users on an unrealistic arbitrary deadline.
The industry doesn't appreciate people who think, or talented people, or good engineers. It appreciates those who can haphazardly slap together a subpar something out of ready-made libraries to meet "business goals". And this is depressing af.