title: Why Android change 'compile' to 'implementation' configuration in Gradle dependencies?
body: <p>As seen in Android Studio 3.0 (canary 3.0), we now add <code>depedencies</code> by declaring <code>implementation</code> instead of <code>compile</code> configuration.   </p>
  
  <pre><code>// Before
  compile 'com.android.support:appcompat-v7:25.3.1'
  
  // Currently
  implementation 'com.android.support:appcompat-v7:25.3.1'
  </code></pre>
  
  <p>We can still use <code>compile</code>, but I would like to understand:</p>
  
  <ul>
  <li>What is the difference between <code>implementation</code> and <code>compile</code> configuration?</li>
  <li>Why do Android Gradle build change to use <code>implementation</code> as default?</li>
  </ul>