On the other side, a novice generally can well identify the rough edges (which the long-time users are get accustomed to live with), but being a novice (s)he is not yet qualified to make an improvement.
That’s the whole pain of being a newcomer in a nutshell.
As a more experienced programmer, you experience organizational blindness, as all these little pain points become invisible to you.
The workarounds, that you use internally in your brain, and externally in the code, become second nature.
I recognize that every time, I actually go programming, and practice. I recognize, how I get blind to these issues, and how I make the same blind assumptions of what a newcomer is expected to understand - almost always without explicit notice - and this is exactly why I hold back with my practicing for so long.
The longer I was programming, the more it became apparent that I would only have to unlearn what I was already doing if I would encounter down the line, that it was suboptimal in the first place.
(I am already at a place, where I don’t know how to shape my code, if I don’t have sum types.)
Look at all these people, who say functional programming is so hard, only because they are used to object orientation and mutating state all over the place.
It’s literary the number one reason people give, why they would not a more functional style, and I think this is just a really sad state of affairs.
Just imagine physicist were saying “Newton is just soo convenient, and we are used to it, so better stay on that, and reject that Einstein dude with his theory. Like, how good could it be, that it warrants a change?”
I mean, that’s basically just us, the programming community.
And that is not the standard that any scientific community should set for itself.
The current top 10 most used programming languages, surely don’t comply with the scientific findings of the 70s.
The users of these languages often don’t even know about them.
And I think a huge part of that is “being used to” and not wanting to change.
Tldr: So I always thought, it’s more sensible to stay on the more modern path of language design, that incorporates these findings, and I always found languages, who put beginner friendliness as a second class citizen.
And even more worryingly, communities often did not even think consciously about this case.
As a newbie, you see exactly what is lacking, and you depend on others to make it for you.
Just like when you were a baby.
Still, we wouldn’t say babies should care for themselves
Or to not have them at all.
They are clearly our future.