I say this as a design dude that became a developer because I got tired of developer's telling me what could and couldn't be done.
In my career, I can honestly say 90% of devs make shit overly complicated so they can impress other devs.
It's the 21st century, homie. Things should be getting _easier_ to use, not harder.
True there is something to be said about learning about programming to help bridge that gap, but as devs, we gotta meet them more than halfway.
Because we know how.
There is a fluidity to great design that when it is done well, it disappears. The greatest design is invisible.
This is the same ethos I would like to see applied to development and programming. Of course, there isn't going to be a one to one translation, but good development should be easily digestible, not a marathon of unraveling some random insufferable person's theories.
I'm often disappointed with devs because so many are invested in keeping it a mystery.
And that's some bullshit.
One of the things I am proud of is that I consistently hear how easy my code is to follow and pick up. I value that feedback from my peers.
On the flip, it's interesting how I've actually gotten push back from others 'critiquing' my coding saying it is 'too simple', which generally reveals to me the mindset of a shop. A lot of folks, A LOT, get off by making overly complicated code.
In my estimation, this one of the biggest reasons that keeps programming from being as accessible as it should
@Are0h That's a great source of pride! Write code that looks like anyone could write it, and anyone will be able to read and enjoy.
Someone was just explaining the logic to me that simpler code is easier to debug, anyway. I already thought people should keep it clear and straightforward, but I haven't gotten far enough into writing my own to have made the connection that it's a bad move on its face. So really the only justification to make code flashy is... to feel superior?
The enterprise level solutions are the ones that need simply and easy to read code the most. These projects last a long time and you have many developers working on the same code.
But just as you said there are cases where code has to be complex. I think the key word here is that it needs to be as simple as possible but no simpler, to paraphrase Einstein who I believe said it first.
@loke To a certain extent this is true, but when you're building something specific that there aren't readily available solutions for, you have to figure it out. And that process isn't always sexy.
Ideally, you'll get to that point with enough effort, but you can't really solve problems until you know they are problems, so it takes time to figure that out.
@Are0h @loke @pamela honestly in my experience the enterprise solutions are the ones with the most unnecessary complexity and shows of machismo X'D
(although open source has a *lot* of that too!—to our perpetual chagrin..)
i think the only things that really need to be truly complex are little algorithms of the kind you read about in Donald Knuth's books or in cryptography or etc., but those can be tucked away into cute little bundles with abstraction so people don't need to be overwhelmed :'3
functional.cafe is an instance for people interested in functional programming and languages.