# Feature 1: Kotlin is a JVM Language
* Kotlin is a scripting language running in the JVM.
* Some differences between Kotlin and Java
* Semicolons are optional in Kotlin
* Strings support interpolation by default. Eg. `"his name is ${name}`
* `val` is for read-only variables and `var` is for mutable variables.
# Feature 2: Lambda Expressions
* A lambda expression is a way to pass a function around and execute later.
* Lambda expressions are used heavily in the Grade build script.
* `repositories` is nothing more than a function call with a lambda expression as an argument.
* The contents of the lambda expression is mavenCentral() which gets executed at a later point.
```
repositories {
mavenCentral()
}
```
# Feature 3: Parenthesis Sometimes Optional
* Parenthesis are normally required when calling a function.
* eg. `implementation("dependency name")`
* Parentheses are optional when a lambda expression is the final argument.
* eg. `repositories { ... }`