title: Relation between CommonJS, AMD and RequireJS?
body: <p>I'm still very confused about <strong>CommonJS, AMD</strong> and <strong>RequireJS</strong>, even after reading a lot.</p>
  <p>I know that <strong>CommonJS</strong> (formerly <strong>ServerJS</strong>) is a group for defining some <strong>JavaScript</strong> specifications (i.e. modules) when the language is used outside the browser. <strong>CommonJS</strong> modules specification has some implementation like <strong>Node.js</strong> or <strong>RingoJS</strong>, right?</p>
  <blockquote>
  <p>What's the relation between <strong>CommonJS</strong>, <strong>Asynchronous Module Definition</strong> (AMD) and <strong>RequireJS</strong>?</p>
  <p>Is <strong>RequireJS</strong> an implementation of the <strong>CommonJS</strong> module definition? If yes, what's <strong>AMD</strong> then?</p>
  </blockquote>