There's a new StealJS site: http://stealjs.com/ that has pretty
decent documentation on how to use the new steal.
There's going to be a minor release of CanJS this week that you can
be used with the new steal.
Use steal because it's flexible (it supports AMD, CJS, steal, and
ES6 syntax) and will make your site load faster.
Here's some notes on why you might consider getting involved with
the project.
Importance
Dependency
management is the bedrock of modularity and
maintainability. Bitovi is likely one of very few organizations who
can define a module's less and template dependencies
AND demo and test modules in
standalone pages. Expressive dependency
management is essential for well structured and successful projects.
However, expressive modules make it difficult to achieve good load
performance. I've talked with many people who use RequireJS,
but are unable to build it. I've talked with others who build to a
single 500k download. A good build system can have much more of an
impact on performance than any database or server side optimization.
Steal's multi-build algorithm is, afaik, unique and has
dramatically improved performance where it has been used.
StealJS's goal is to support expressive dependency management,
lightening-fast load times, and simplify dev/test/build/prod
workflows. It supports every commonly used format. It's
based on soon to be standards JavaScript technology.
Ease of development
StealJS is a million times easier to develop against than the old
steal. Here's why:
- NodeJS instead of Rhino. A real debugger.
- NodeJS instead of Rhino. Access to everything in npm.
- Most of the hard stuff (ex: loadDependencies) is done in ES6ModuleLoader and SystemJS.
- Easer and better testing. We simply create demo apps and test them in both steal and steal-tools. steal example, steal-tools example.
- steal-tools is functional programming. It simply makes a dependency graph and transforms it with a lot of functions. Learn more here.
Seriously, once you understand the basics of the ES6 Module
Loader spec, steal is easy to develop. And once you
understand what the dependency graph and bundle graphs look like,
so is steal-tools.
Fun Challenges
There are a bunch of features, large and small, that are cool and
technically interesting. For example:
- Adding a System-based
instrumentation plugin would be great for reporting on test coverage.
- A super fast watch-build.
- Reading bower.json to reduce the amount of config.
- Cache busting when the production version changes.
And the great thing, is that all of these things would
be "spec-based" tools! That is, they will be
useful even if someone wasn't using steal. For
example, here's how you could do cache
busting. All steal plugins can and should be written to
only enhance the default System loader. We're building the future.