# What is in Kotlin that is not in Groovy?

**URL:** <https://discuss.kotlinlang.org/t/what-is-in-kotlin-that-is-not-in-groovy/1638>\
**Category:** Uncategorized\
**Created:** [April 30, 2016, 8:54am UTC](https://discuss.kotlinlang.org/t/what-is-in-kotlin-that-is-not-in-groovy/1638 "2016-04-30T08:54:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mustafa01991](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/mustafa01991/32/1947_2.png) [@mustafa01991](https://discuss.kotlinlang.org/u/mustafa01991)\
**Post date:** [April 30, 2016, 8:54am UTC](https://discuss.kotlinlang.org/t/what-is-in-kotlin-that-is-not-in-groovy/1638/1 "2016-04-30T08:54:20Z")

</div>

What are the futures that Kotlin have that Groovy do not?

---

<div class="post-metadata">

**Author:** ![guest](https://avatars.discourse-cdn.com/v4/letter/g/8dc957/32.png) [@guest](https://discuss.kotlinlang.org/u/guest)\
**Post date:** [May 3, 2016, 3:38pm UTC](https://discuss.kotlinlang.org/t/what-is-in-kotlin-that-is-not-in-groovy/1638/2 "2016-05-03T15:38:32Z")

</div>

Kotlin has:

- data classes
- sealed classes
- extension methods (which are easier to write and use)
- non-nullable types
- cleaner standard library, with classic names for FP constructs (like map instead of collect)
- Kotlin is newer, it didn’t implement closures as a class groovy.lang.Closure, and because of that integrates better with java 8 than groovy does

groovy has:

- AST transformations
- @Delegate AST (which is way better than in kotlin)
- categories
- standard library has templating
- standard library has ConfigSlurper and ConfigObject, which are nicer to use than java.util.properties

---

<div class="post-metadata">

**Author:** ![neilg](https://avatars.discourse-cdn.com/v4/letter/n/fbc32d/32.png) [@neilg](https://discuss.kotlinlang.org/u/neilg)\
**Post date:** [May 5, 2016, 1:05pm UTC](https://discuss.kotlinlang.org/t/what-is-in-kotlin-that-is-not-in-groovy/1638/3 "2016-05-05T13:05:43Z")

</div>

Groovy also has type checking extensions.

See: [http://docs.groovy-lang.org/next/html/documentation/type-checking-extensions.html](http://docs.groovy-lang.org/next/html/documentation/type-checking-extensions.html)

These can be used to provide type checking support for AST transformations, or to make type checking stricter in some spots.
