I’m reminded of xkcd’s cartoon about standards.
I struggled with JSX as well, abhorring the comingling of language responsibilities and “Everything’s Javascript” wave that I saw coming. But one thing struck me:
JSX became a standard. It’s taken over React.
One of the challenges to not using JSX is getting others to understand the code you’re creating. As an incoming developer, I would have to learn a whole new way of thinking, as well as keeping track of an enormous meta-codebase of HTML replacement functions. I couldn’t just know the CoffeeScript system, I’d have to know React and the CoffeeScript system.
This is a really fun exercise of switching out syntax sugars. But I’d hesitate to say that this makes the code more beautiful. It’s all in the eye of the beholder.