@mattly Thank you, Matthew! I mean this absolutely genuinely, and if at all possible, I'd really like to know more specifics about that (happy via DM if more comfortable). Usually, I'm just getting the most vague "It's hard & different" comments, but then hardly ever get to learn about which parts and/or why they're hard to grasp for some people. Groundhog Day. I do want to improve the situation (if I can) for those of you struggling, but I do need your help!
I'm especially interested given your stated background. E.g. re: Clojure, you _must_ have come across at least hiccup style syntax (both for HTML & SVG), transducers, atoms, reactivity, polymorphic functions, multiple dispatch (defmulti) — these are all well-established, not new concepts, especially not in Clojure-land and so should not feel alien in thi.ng either, even though I've been extending/expanding/changing them in various places/aspects over the years (but also then went out of my way explaining why/how they differ).
So from my POV, I always think for most of the theory & pre-requisites, there should be _some_ sense of familiarity in general (unless someone has only ever worked with closed-world/blackbox frameworks which don't expose one's mind to any of these techniques). If there is not (familiarity), I'd _really_ like to figure out why that isn't the case...
It's also not just Clojure concepts (which might be unknown to, say, the average P5 user): Laziness, iterables, generators, functional composition, map/filter/reduce. All well-established & documented in various other languages and literature. Similarly, coroutines/fibers (cooperative multitasking), CSP (communicating sequential processes) are popular in Golang and embedded programming (FreeRTOS, NuttX), but I think they're super powerful, expressive and elegant for use cases in the JS/TS domain too, maybe more so than people realize because 90% of that community seems to be just chasing the latest fad/framework with layers of magic abstractions, a game I've consciously decided to not partake in (and actually been trying to counter) with these projects...
I've talked about this fairly recently, but happy to repeat: I'm _really_ trying my best to ease any of these supposed steep learning curves (e.g. Personally, I find getting a detailed understanding of internals [not just using] React a much harder challenge). 90% of the past 3 months of development have been about creating new examples, adding explanations, improving documentation, showing usecases, opportunities etc. n order to do so (more/better), I do need to learn more detailed feedback, hear about concrete problem cases of topics/implementations/examples/documentations which are unclear to you (and others)... Where do you/others get stuck? At which point of the journey/attempt?
With all that said, I'm _always_ super grateful to anyone who's willing to at least make this small effort & contribution of giving concrete feedback & raise issues. The general "it's hard/alien" comments are not really helpful at all (actually rather demotivating). On social media, this topic predictably seems to get stuck at the same stage each time, i.e. lack of concreteness to help analyzing, improving and moving forward... I hope we can break that vicious circle/cycle at some point! Thank you in advance for helping! 🙏🤩
Ps. Sorry for the wall of words. This topic is very close to my heart!