Qual é a diferença entre implementação e compilação no Gradle?

Após atualizar para o Android Studio 3.0 e criar um novo projeto, notei que build.gradleexiste uma nova maneira de adicionar novas dependências em vez de compileexistir implementatione em vez de testCompileexistir testImplementation. Exemplo: implementation