was out 2011. - partial support 2013. • Java 8 was out 2014. - no support announced in the near future • Null references • Covariant arrays • Raw types • SAM types • Checked exceptions
hard to work with in practice because of IDE support • Scala - We are engineers with deadlines, not scientists. Also 80k methods • Groovy - Very nice, but not type safe and adds over 30k methods. IMHO best alternative - to our alternative :) • Closure, etc, etc… • Kotlin
language that borrows many ideas from functional languages • Fast learning curve - inspired by Scala and C#. Scaled down Scala :) • Meant to be used for building large software systems • Engineered to be highly interoperable with Java - you can use existing code base w/o (many) problems
JetBrains, creators of IntelliJ which is Android Studio based on. Also has some contributions from James Strachan - creator of Groovy • Significantly more concise and readable than Java, which means it’s easier to maintain • Lightweight - Kotlin stdlib has 8k methods • If it means something to someone - it also compiles to Javascript
struggle works with, for now, limited support - Dagger 2 works • Mocking and testing - managed to run AndroidTestCase with Mockito, but no serious testing done • IDE was still bit unstable few months ago, but it seems fine now and it can only get better. But still be patient for now
collections returned from Kotlin code • New language that still evolves - teams need to establish code conventions - still no "Effective Kotlin" :) • Interoperability with new Jack and Jill compiler - should be all right, but we have to monitor the situation
- but check thoroughly afterwards • Use clean code option after upgrading Kotlin version • KotlinFrontEndException • > sudo find . -name ".DS_Store" -depth -exec rm {} \; • This list was much longer few months ago