# 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 { ... }`