I'm not familiar with Ember but just skimming this document highlighted something - they're going to have a dependency on Ember CLI, a commandline tool for with generators, dependency management, asset management, etc.
This dismays me a little. Another approach to this kind of thing, but looking at the docs it seems to be an npm+bower+custom magic. In some ways it reminds me of the clusterfuck that is Sencha Command, though at least this is open source.
Can anyone involved in the project shed any light on how this is implemented? It would be good if it was just a thin interface to some standard scripts.
edit: I know this comes across as a little negative, that wasn't really my intention. Sorry about that!
Ember CLI is a relatively small layer on top of a bunch of other open source modules. The core of the build system uses Broccoli[1], which is like a more powerful Gulp.
Dependencies are managed with bower and npm, and we use off-the-shelf npm modules to do the post-processing.
Basically, you should think of it as a curation of what we think are the best-of-breed tools for Ember developers, with a layer of developer ergonomics applied on top. At the same time, we don't do anything to hide the implementation from you. (Each new Ember app generated by Ember CLI includes the Brocfile.js right in the root directory.)
ember-cli is such a vast usability improvement that you would be hard-pressed to find a single developer who's tried it and would prefer not to use it.
It's in-line with Ember's whole philosophy: anything that we can solve once together in a standard way, we should. Most of the time you are not a special snowflake and you can benefit from the same build stack as everybody else. If you need more, ember addons expose a standardized interface to sharing whatever feature you need.
This dismays me a little. Another approach to this kind of thing, but looking at the docs it seems to be an npm+bower+custom magic. In some ways it reminds me of the clusterfuck that is Sencha Command, though at least this is open source.
Can anyone involved in the project shed any light on how this is implemented? It would be good if it was just a thin interface to some standard scripts.
edit: I know this comes across as a little negative, that wasn't really my intention. Sorry about that!