¿Cuál es la diferencia entre implementación y compilación en Gradle?

Después de actualizar a Android Studio 3.0 y crear un nuevo proyecto, noté que build.gradlehay una nueva forma de agregar nuevas dependencias en lugar de compileexistir implementationy en lugar de testCompileexistir testImplementation. Ejemplo: implementation