As we know - [core.async](https://github.com/clojure/core.async) [uses](http://www.infoq.com/presentations/clojure-core-async) [CSP](http://en.wikipedia.org/wiki/Communicating_sequential_processes) and is similar to [goroutines](https://gobyexample.com/goroutines) from [go-lang](http://golang.org/). Now for a scenario like [select](http://talks.golang.org/2012/concurrency.slide#50) and alt [this makes a lot of sense](http://www.leonardoborges.com/writings/2013/07/06/clojure-core-dot-async-lisp-advantage/). 

David Nolen has done [an amazing demo here showing core.async](http://swannodette.github.io/2013/08/02/100000-processes/) in Clojure at work in animation in ClojureScript.

Yet I can replicate a similar functionality with a simple for loop. You can see a [demo here](http://jsfiddle.net/5SaSL/). 

```
function animationLoop() {
    for (var i =0;i<100;i++) {
        for (var j= 0; j<100;j++) {
            //decision to animate or hold off
            var decisionRange = randomInt(0,10);
            if (decisionRange < 1) {
                var cell = document.getElementById('cell-' + i + j);
                cell.innerHTML = randomInt(0,9);
                cell.setAttribute('class','group' + randomInt(0,5));
            }
        }
    }
}

```

My question is **What is the actual benefit of core.async in the '10,000 processes animation scenario'?**