Alternatives to JSX
If you read this article and thought Hyperscript might be something you wanted to try, please check out Mithril[0].<p>It&#x27;s an excellent project, pretty decently fast (checkout the js-framework-benchmark[1] code, or more specifically the results of round 8[2]) -- but is currently suffering from a lack of recognition. It&#x27;s the kind of project that absolutely doesn&#x27;t care about that kind of metric (as in, the team seems to be more focused on slow, steady improvement of the library rather than chasing stars on github), but I figured I should say something.<p>Shameless plug: I recently really wanted to contribute something (and kick the tires more) so I wrote an article that goes through replicating a simple mail design I saw[3] -- it might be a decent overview of what mithril is like to write (though I&#x27;m certainly not a mithril expert).<p>This brings me back to the point at hand -- as others have noted, in my opinion one of the best things about hyperscript is the straight-forwardness with which you construct the render function. I&#x27;m not convinced it&#x27;s necessary to segregate stateless&#x2F;stateful components -- and mithril is simpler in that it doesn&#x27;t introduce this dichotomy -- in the end there&#x27;s the render function, and that&#x27;s it. If you want to use state, go ahead -- if you don&#x27;t, then don&#x27;t. It&#x27;s the simplicity I&#x27;ve wanted from component frameworks (and mostly get with Vue) without any of the posturing&#x2F;looming complexity.<p>Also there&#x27;s the fact that you could write a completely vanilla es5 application with hyperscript (arguments whether you should or not aside) -- JSX is&#x2F;was revolutionary, but is basically required in practice, which often makes people jump into bed with webpack without thinking, and makes frontend development harder than it has to be.<p>[EDIT] - Another point for mithril is that it&#x27;s <i>self contained</i> -- routing and ajax calls some with the framework. When people these days talk about &quot;react&quot; or &quot;vue&quot; what they&#x27;re really talking about is react&#x2F;vue + react-router&#x2F;vue-router + flux&#x2F;vuex and some other odds and ends. Mithril is by far the simplest and most feature-complete of these frameworks despite being smaller (both conceptually and on-the-wire).<p>One of my only current gripes with Mithril is the lack of controllable subtree rendering (it isn&#x27;t as much of a problem in practice, but more me wanting to optimize early).<p>[0]: <a href="https:&#x2F;&#x2F;mithril.js.org" rel="nofollow">https:&#x2F;&#x2F;mithril.js.org</a><p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;krausest&#x2F;js-framework-benchmark" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;krausest&#x2F;js-framework-benchmark</a><p>[2]: <a href="https:&#x2F;&#x2F;www.stefankrause.net&#x2F;wp&#x2F;?p=504" rel="nofollow">https:&#x2F;&#x2F;www.stefankrause.net&#x2F;wp&#x2F;?p=504</a><p>[3]: <a href="https:&#x2F;&#x2F;vadosware.io&#x2F;post&#x2F;mithril-systemjs-and-rollup-getting-started-guide&#x2F;" rel="nofollow">https:&#x2F;&#x2F;vadosware.io&#x2F;post&#x2F;mithril-systemjs-and-rollup-gettin...</a>