All these languages (and others like LiveScript, SCSS, etc.) are (unfortunately?) not natively read by browsers we develop for, adding to our test and release process an extra building step. It's here where tools like Grunt or Brunch were needed, automating this "compilation".
I personally used a lot Brunch as I considered it easier for common tasks in the stack I use, and I really appreciate his usability, and his out of the box behaviour. I loved it so much I wrote a kewl skeleton to start prototyping quickly with it. However, when I tried to use always more plugins to achieve more complex tasks, such as marking assets with a checksum, then adding them in a cache manifest file, I realized the limits of these tools, essentially because they're based on configuration, instead of code.
And then, I discovered Gulp.
As developers, we love code. We'd like to know what's happening deep down when we call some obscure function. Gulp get rid of this "black box" approach and proposes a radically different philosophy to create your perfect front-end factory.