I'd like to learn more about the differences between the following, with special attention to compatibility issues (different browsers, minification, etc), performance, and readability/maintainability.
ES6:
export
andexport default
syntax, paired withimport {module1, module2} from
.AMD
define()
syntax.CommonJS
require()
syntax.
Are any more common, in wider adoption? Where will the convention go, and why? What is next for ES6, since it seems to be changing so quickly. Is there a historical reason/motivation for ES6's module loading syntax as-is, and what is next?