Yeah, I am aware that folks don't understand all about it yet. There are a number of things to cover when working with contexts, but the most important is that you limit the cache files to a single section of the site. For beta, it will be imperative that we have some sample packages that will install a multi-lingual site demonstration, including all the snippets, plugins, and content separated into contexts.
A couple of notes though to answer your specific questions:
For example in 09x we can use containers to group language files and some snippets to identity the language and go to the correct container. Would using contexts for this be any more efficient?
Yes, because you would only load information about the specific context the document is being loaded in. It also allows cultural specific sections of the site to be organized into separate subdomains, either by serving them all from a single virtual host and single index.php with a plugin to decide which context to load, or by having multiple virtual hosts and index.php's in each that load a specific context. Examples of both approaches should be prepared and discussed.
If there is more than one context is there a system setting to select the default context?
The index.php initializes the 'web' context by default, so it is the default context. You can have other index.php's (also known as gateways or front-controllers) that specifically initialize a context by name.
Can documents be shared between contexts?
In Revolution 2.0.0, no; each Resource will be confined to a single context. 2.1 will likely include features to allow Resources (formerly Documents) to exist in a primary context and any number of additional contexts.
However, you can use the new SymLink Resource type to create Resources in other contexts which forward requests to pages in another context, displaying that content as if it existed at the URL location defined by the SymLink.
Why is there a context for ajax and would ajax work without a context?
Contexts, since they allow overriding system settings, allow you to redefine almost all aspects of MODx request and response handling. The mgr and connector contexts each define their own custom Request handler class for routing and processing requests. Since the mgr uses Smarty, the mgr context defines a Request class (modManagerRequest) that takes of everything needed to render the Smarty templates. Similarly, the connectors (or Ajax context) has modConnectorRequest to handle Ajax requests and responses most efficiently. Users can define their own custom Request handlers as well, so you can create a context to render a set of Smarty templates, or integrate with another software application that would not generally work with the regular front-end (web context) Request handler.
I can create a context but I cant create a document in a context, how do I assign a resource to a context?
You should be able to use the right-click context menu in the tree to create a document in a specific context. If that doesn't work, it's a bug.
Should there be a Select Context option when creating a document like there is for templates?
Yes, that is a good idea, though you should be able to drag and drop them between contexts as well.
Do contexts have independent caches?
Yes, all the cache files, except the system settings cache, are divided by Context. This means all the Resources (and Plugins) defined for a specific context are loaded only when needed in a specific Context. MODx loads Contexts on demand, for instance, if you create a Wayfinder instance and wanted to list Resources from multiple contexts, those would be loaded dynamically as needed.
Should average users be concerned about contexts?
Average users is hard to define, but in general, probably not. It is an additional organizational feature, but generally would be involved in some kind of specific site requirement, or be used by a specific add-on or core extension package automatically. Users interested in multi-domain, sub-domain, multi-site, and/or multi-lingual deployments will likely need to understand what it means however, as well as users with large numbers of Resources that would benefit from isolation into contexts (for caching purposes).