# 10,000 Processes in Om I have just published [om-processes][om-processes] which is a port of David Nolen's [10,000 Processes][swannodette-10k] in [Clojurescript][clojurescript] to [Om][om]. Clojurescript is a port of [Clojure][clojure] to JavaScript which is especially well suited for running in a browser. Just as Clojure offers a pleasant LISP on the JVM Clojurescript offers (nearly the same) LISP in the browser. The performance of Clojurescript is outstanding due to the massive optimizations available from the [Google Closure compiler][closure]. JavaScript, however, has some fundamental flaws... Top among these are it is single threaded which leads to an asynchronous callback style of "event programming". Clojure's [core.async][core.async] offers a solution in the form of [CSP][csp] style programming. Using core.async one can *think* about coding in a more intuitive way. In [10,000 Processes][swannodette-10k] Nolen demonstrates using core.async to simulate independent "threads" despite the fact that the underlying platform has no native support for threads. In [Om][om] Nolen leverages [Facebook's React][react] to create a high performance, immutable model for client programming. The technical study [om-processes][om-processes] is simply the fusion of all these ideas into one demonstration. Who knew web development could be so much fun! [om-processes]: https://github.com/tmarble/om-processes [swannodette-10k]: http://swannodette.github.io/2013/08/02/100000-processes/ [clojurescript]: http://github.com/clojure/clojurescript [om]: https://github.com/swannodette/om [clojure]: http://clojure.org [closure]: https://developers.google.com/closure/ [core.async]: https://github.com/clojure/core.async/ [csp]: http://en.wikipedia.org/wiki/Communicating_sequential_processes [react]: http://facebook.github.io/react/ [[!tag clojure clojurescript core.async om]]