In my circles, C has a reputation for being easy. I cannot think of an easier language than C when it comes to compiled GC-less languages.
C++ and Rust are both harder, they have a much bigger surface, a bunch of additional constructs to learn about and understand, etc.
I can’t speak for Fortran, Crystal, Forth, D, Pascal, Cobol, Ada etc. But I feel, appart from Pascal, from what I know, they all seem like they’d have more to learn and thus be harder then C.
But “easy” is a personal feeling, it’s not an objective characteristic. For example, I did not find C++ or Rust harder than C, they all feel easy to me.
“Easy” also doesn’t mean free of bug, performant, expressive, concise, extendable, readable, maintainable, resilient, fault tolerant, etc.
In my experience “easy” doesn’t even mean productive or quick to implement things in. I’ve seen people do stuff in less time or similar time and call them “hard” for example.
I think “easy”/“hard” is often about how much mental effort and thinking someone had to do. If it wasn’t mind memory, but they had to think and reason, and weren’t sure they were doing it right, weren’t sure it was going to work, didn’t know how to assess if they were on the right track or not, etc.
Which means most things get easier with experience. But some things could remain harder if there’s just a lot of things to know and remember, you can find yourself more quickly forgetting, so the feeling of “hard” can stick around longer.
That means for example auto-complete has a big impact on how easy you feel something is. Even if it ends up taking you longer to implement something, that you didn’t have to remember any of the keywords, syntax, field names, etc. can make it feel easier, because you didn’t have to think about as many things.
I’m not sure how that applies to Clojure, I do feel it seems to invoke more mental effort from some people, and I think it’s just because of familiarity at first, or some people might just have a different way of thinking that doesn’t jive with it. But also for some it seems to take them less mental effort, and maybe their way of thinking is more naturally in-line with it.
What’s weird too is, “easy”/“hard” doesn’t always map to “fun”/“not fun”. Hard can often be more enjoyable and exciting. So I don’t think it directly relates with motivation, but it can.
So to the OPs point, it’s possible the people who find it hard have been more vocal, you could just as well justify calling it easy if you find a group who all felt it was easy for them.
If there’s a vocal group of people calling it hard, they can give the wrong impression, they can also drown out the ones calling it easy.
In Python, the group that finds it hard might not feel safe speaking up, worried to be seen as the odd one out, if it’s so easy for everyone else it seems, you don’t want to expose yourself as having had a hard time with it.
In Clojure we might have the other issue, people like me who found it easy, I feel bad saying it to others, there’s so much talk of people finding it so hard, I don’t want to make them feel bad or sound condescending if I say I thought it was pretty easy.
Absolutely, and that’s inline with Clojure 100%. You got immutable as the first thing you should try, and then you can fallback to controlled mutability, or if you need more, go to uncontrolled mutable.
In that way it’s very different to have a default then to only have one construct available.
Java has everything as an Object because it gives you no other options. Objects are not the default, they’re the only choice.
Clojure just gently leans you to try immutable first, but has all the fallback options you might need when they’re appropriate.
I still contend immutable is always the first thing you should attempt to use, and you need good reasons to use something else instead, as opposed to the other way around.
Said with zero data. I absolutely grasp that different people can favor different things. But both saying that a lot of people tried and, and that the vast majority rejected it is BS.
Off course “a lot” is a weasel word, but in actuality a greater majority of professional programmers never tried Clojure, and most likely this is true as well of dabling or student programmers.
As for rejecting it, that’s a strong insinuation, they might have stopped using it, that doesn’t imply they’ve rejected it. Given a better paid job, with a more interesting product and a good pleasant team as compared to their current job, would it being in Clojure be enough for the majority of people who tried Clojure to turn down the job? I too have no data, but I honestly highly doubt that.
This reasoning seems flawed. From my personal experience and all the anecdotes of every programmer I know about, this isn’t the driving factor for the language you use at work. Even I don’t use the “easiest” option. I pick the most appropriate option given a series of criteria, for languages it’s most often what is standard already in the company and what do new hires already know, when I get any influence on the choice of matter, and most of the time I don’t have any influence on the matter.
Just my 2 cents.