Computers are cold and heartless. They don't lie, and they don't care if you scream and swear at them. You can abuse them all day long, and they'll still efficiently flip bits and push pixels.
But... people aren't. Behind every piece of software, there's at least one human. Who has a heart, and who cares what you think. Who has hopes, and dreams, and fears. Who feels.
This is something I've been wanting to write in one form or another for quite a while now, and I've been rewriting this post for a little too long.
Sometimes it seems like we forget about the humans. Either we forget that there's a human behind the software we build, or we forget that we're shipping software for people.
It seems to me that more and more, especially recently, nobody can share their work or their ideas without someone stepping in and criticising their ideas. Maybe they could have written it in a language that's faster, uses less memory, something about bloat or native code. Maybe it doesn't have a feature that another project does, so why the hell should anyone use it?
I remember earlier in my career, every time I opened a PR, I'd have a small feeling of anxiety. Was it good enough? What if I'm bad at programming? Would people hate it? What if I'm wrong? Fear of failure is one of the biggest obstacles to success, and all too often it stops people from sharing or achieving what they could. The feeling of "this isn't good enough to share" goes along with that.
Even while writing this, I couldn't help but feel like it isn't quite perfect, isn't quite good enough to share. But that's the point of my blog; I want to make myself put things out there, even if they're not 100%.
We should feel like it's ok to share work that isn't finished, that doesn't use the fastest, cleanest, most optimal approach. If I've made something for fun and want to share it, why not? If it doesn't use the technology you prefer, and you haven't paid me to build it, why would you shit all over someone else's work?
Better yet. If you care that much, make your own. Instead of pulling down something of someone else's', build your own thing up.
To some degree I understand people not being satisfied with professional software, that they have paid for, and that doesn't meet their expectations. But if it's open source, free, and available for all? Why would you ever complain about that? If it's not for you, just... move on.
Friends of mine won't share their blog posts to HN, Reddit, etc, because they feel like their words aren't good enough. Or like people there are going to tear them apart. Or because they might have made a small mistake somewhere.
The main thing I can see fuelling so many arguments is an inherent need to be right. It's been written about so many times before, but for some reason people can't bear the idea that someone on the internet is wrong.
Except, when it comes to the preferences of which tools or technology someone wants to build something with, in their own time, can you really be wrong?
There's a stereotype held about people in tech, that we're all that super nerdy person who struggles socially, can't talk to people, and hide all day in the basement programming. And that somehow, this is excusable if you're really good at writing code. But is it? If you're writing code for people to use, and you're working on it with people, not having people skills isn't really an option. Much like technical skills, it isn't an innate quality - you can work on improving your people skills, much like you can your tech skills.
If you take anything at all from my post, hopefully it's this; if you really must say something, and you really feel like someone made the wrong choice, maybe think about your phrasing. Eg
Hey! Nice work. I was curious though, why'd you pick <tech> over <other tech>?
Ugh, this would be so much better if it just used <tech>. I hate the way modern tech is going
Let's make our industry a much more friendly and welcoming place 💖