Hi-performace Clojurescript w/ thi.ng, WebGL, Web Workers, WebSockets & asm.js
git clone [email protected]:postspectacular/ws-ldn-5.git
Will be moved to GitHub later…
- CLJS requires different optimization strategies than Clojure
- Focus on CPU-bound issues
- Hard time limits due to human perception & UI usability
- Graphics, especially if animated, often high computational demands
- basic demo of idiomatic CLJS code performance
- various ways of optimizing
- benefit from constrained mutability
- intro to typed arrays, benefits
Also:
- use thi.ng/domus for easy (non-React) DOM creation/manipulation
- use thi.ng/strf for string formatting / parsing
- SVG is powerful, easy to generate, but highly inefficient for realtime
- Most geometry data only passed via strings (DOM attributes)
- Requires 2x work, 3x memory (lots of string concat, then parsing + rendering + compositing)
- Usually 2D only, but can use thi.ng/geom to render as 3D (w/ customizable shading)