anchor.diff:  ----
   ====
   
  -What's going on here? This build script defines a single task, called `hello`, and adds an action to it. When you run `gradle hello`, Gradle executes the `hello` task, which in turn executes the action you've provided. The action is simply a closure containing some Groovy code to execute.
  +What's going on here? This build script defines a single task, called `hello`, and adds an action to it. When you run `gradle hello`, Gradle executes the `hello` task, which in turn executes the action you've provided. The action is simply a block containing some code to execute.
   
   If you think this looks similar to Ant's targets, you would be right. Gradle tasks are the equivalent to Ant targets, but as you will see, they are much more powerful. We have used a different terminology than Ant as we think the word _task_ is more expressive than the word _target_. Unfortunately this introduces a terminology clash with Ant, as Ant calls its commands, such as `javac` or `copy`, tasks. So when we talk about tasks, we _always_ mean Gradle tasks, which are the equivalent to Ant's targets. If we talk about Ant tasks (Ant commands), we explicitly say _Ant task_.
   
   [[sec:build_scripts_are_code]]
   == Build scripts are code
   
  -Gradle's build scripts give you the full power of Groovy. As an appetizer, have a look at this:
  -
  -.Using Groovy in Gradle's tasks
  +Gradle's build scripts give you the full power of Groovy and Kotlin. As an appetizer, have a look at this:
  +
  +.Using Groovy or Kotlin in Gradle's tasks
   ====
   include::sample[dir="userguide/tutorial/upper/groovy", files="build.gradle[]"]
   include::sample[dir="userguide/tutorial/upper/kotlin", files="build.gradle.kts[]"]
  
positive.code: [[sec:dynamic_tasks]]
  == Dynamic tasks
  
  The power of Groovy can be used for more than defining what a task does. For example, you can also use it to dynamically create tasks.
  
  .Dynamic creation of a task
  ====
  
negative.code: 
  The calls `doFirst` and `doLast` can be executed multiple times. They add an action to the beginning or the end of the task's actions list. When the task executes, the actions in the action list are executed in order.
  
  [[sec:shortcut_notations]]
  == Groovy DSL shortcut notations
  
  There is a convenient notation for accessing an _existing_ task. Each task is available as a property of the build script:
  
  