title: What is the need for SystemJS in Angular2?
body: <p>I am a complete beginner to Angular and Angular2. I am confused about how the workflow is structured. I have been looking at the <a href="https://angular.io/docs/ts/latest/quickstart.html#!#create-and-configure">sample project</a> that is present in the Angular2 site. </p>
  
  <p>Correct me if I am wrong but what I know till now is that all the typescript is transpiled into javascript by the typescript compiler. Then the compiled javascript is actually what runs in the browser.</p>
  
  <p>Now if I am importing the javascript files into typescript using ES6 import statements like the following-:</p>
  
  <pre><code>import { NgModule }      from '@angular/core';
  </code></pre>
  
  <p><strong>Why do I again need to use SystemJS to load them -:</strong></p>
  
  <pre><code>map: {
        // our app is within the app folder
        app: 'app',
        // angular bundles
        '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
  </code></pre>
  
  <p>I mean isn't that counter productive ? <strong>Looking at the transpiled javascript of the ts files it shows all import statements are converted into require() statements.</strong> <strong>First of all how does require() work in a ES5</strong> js file, and second if thats the case what is SystemJS doing.</p>
  
  <p>This really confusing me. Any help will be greatly appreciated.</p>