From: Tom Marble Date: Fri, 8 Aug 2014 15:23:24 +0000 (-0500) Subject: om-processes X-Git-Url: https://info9.net/gitweb/?p=wiki.git;a=commitdiff_plain;h=6070d1be6ead34d675204a0bd716dd75d87b04e7;ds=sidebyside om-processes --- diff --git a/tmarble/posts/10000_Processes_in_Om.mdwn b/tmarble/posts/10000_Processes_in_Om.mdwn new file mode 100644 index 0000000..8ee9868 --- /dev/null +++ b/tmarble/posts/10000_Processes_in_Om.mdwn @@ -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]]