]> info9.net Git - wiki.git/blobdiff - tmarble/posts/10000_Processes_in_Om.mdwn
om-processes
[wiki.git] / tmarble / posts / 10000_Processes_in_Om.mdwn
diff --git a/tmarble/posts/10000_Processes_in_Om.mdwn b/tmarble/posts/10000_Processes_in_Om.mdwn
new file mode 100644 (file)
index 0000000..8ee9868
--- /dev/null
@@ -0,0 +1,43 @@
+# 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/
+
+[[!taglink clojure clojurescript om]]