To provide a quick feedback, I believe the 'without jsx' version could have been improved.
One advantage it already has is that it doesn't need the repetition of /closing> elements.
But it doesn't go far enough in terms of function composition to pass arguments. The signature (that resembles react.createElement I guess) is too cumbersome.
That creates a succession of braces and comma which is unfortunate.
Just to specify some object attributes. That could be easily a function Attr().
We have higher order functions easily in javascript. We should make use of it.
That eliminates html looking jsx since we just use functions. That's less confusing than pseudo html syntax.
The beauty of JSX is that it's not HTML, it's much more generic.
> And that's irrespectively of my view on jsx, the latter which I find non ergonomic and confusing.
You're in the very, very small minority here. JSX is very clear and intuitive and natural and ergonomic and lovely to most of us.
And I don't even like React!
Compare:
Without JSX: https://github.com/sdegutis/sys32.90s.dev/blob/26bcb088a3df6...
With JSX: https://github.com/sdegutis/os.90s.dev/blob/cc7310633d9ab186...