The Compile-To-JS Zoo

Ben Lovy - Nov 20 '18 - - Dev Community

There are lots of tools that promise to let you write your client-side code without touching an ounce of JavaScript.

Which ones does the Dev.to community use? Why should we drop everything and run towards your tool of choice? What are we gaining over just using ECMAscript?

My personal number 1 choice is Re-Frame. The minimal (750 SLOC!) structure it imposes makes perfect sense, and it lets you avoid rolling your own architecture. Defining UI with Clojure vectors via Reagent couldn't feel more natural, and interop is so seamless you barely notice you're doing it. Once you learn where everything goes, you've got everything you need to build performant, scalable real-world applications.

Next on my list to try is Halogen, but I haven't managed to get my head around it quite yet beyond a "hello world" application. PureScript is fascinating tech, though, and I'd love to dedicate more time to learning how to use it.

The easiest one I've used so far is ReasonReact. If you've used React, you can already use this tool and reap the benefits of the underlying OCaml compiler to check your code.

There's dozens I haven't mentioned - that's your job! Sell me on something nifty.

I'd also love to hear opinions about why this is all hogwash and we should just stick with what's already right in front of us. ES6/7/next/infinite is an expressive, robust tool in its own right, drawing inspiration in many cases directly from these tools - make your case below.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .