Naming things is hard

If an implementation is hard to explain, it's a bad idea.

I’m so fond of this particular line from the Zen of Python that I’m listing it on my Quotes page as well.

Ever since React Server Components came out, I see article after article, video after video trying to explain them. Understanding React Server Components, Making Sense of React Server Components, Demystifying React Server Components, React Server Components From Scratch, React Server Components in Under Seven Minutes, Deep Dive into React Server Components… It feels like poor Dan Abramov’s full-time job in his last year was just trying to explain React Server Components.

You know what this reminds me of? Prototypal inheritance in JavaScript. I read about it in all the JavaScript books again and again, and each author assured me that although prototypal inheritance might feel odd at first if you’re used to other languages, but once you understand it, it’s actually a very powerful mechanism, maybe even better than class-based inheritance.

All that has achieved was make me feel dumb.

But then ES6 rolled around and boom, suddenly you really don’t need to care about all that stuff. So maybe it wasn’t all that important or powerful after all? Better yet — who cares if it’s super powerful if nobody can understand the bloody thing?