3 ms·
I'm working on a project right now where the centerpiece is a Three.js scene. It's about data visualization, so the surrounding code covers much of the same gro
by GradientAssent 6y ago
I'm working on a project right now where the centerpiece is a Three.js scene. It's about data visualization, so the surrounding code covers much of the same ground as a typical single-page web app: fetching data, UI for manipulating the dataset, etc.
I decided not to use my beloved Clojure and re-frame because it seemed like I was going to end up wrestling with Three's imperative API.
Others inclined toward projects like the OP and the Clojure ecosystem more generally: how have you approached similar projects before? Where there's a very non-Clojure-native library that will be critical?
I ended up with TypeScript, React, and Redux instead of re-frame.
- capableweb 6y ago> how have you approached similar projects before? Where there's a very non-Clojure-native library that will be critical? Started playing around with Arcadia which is Clojure-CLR + Unity3D tooling/library. Basically used for make some interactions with the Unity3D framework easier. While most of the code is using interop, having the repl flow is something that for me, after using Clojure professionally for a while, is really really hard to give up. I've tried getting into game development before, but the slow iteration cycles on "make change -> save -> do thing to test" just sucks all the fun out of it. If I were to use Three.js in a project, I'd approach it the same way. As I try to stay far away from any other languages, I'd write a small layer between my CLJS code and the Three.js API, the smaller the better, and then use that. Because giving up on being able to eval whatever and having access to a repl is not worth it in the projects I work with. Basically, any hurdle (like basing my project around a non-CLJS library) is easier to overcome than having to deal with something like TypeScript again.