State of Kotlin - Droidcon NYC

State of Kotlin - Droidcon NYC

Slides from the talk I gave at Droidcon NYC 2018

117c1e7c12a469a052f1361b6599af31?s=128

Zan Markan

August 28, 2018
Tweet

Transcript

  1. @zmarkan @pusher

  2. @zmarkan @pusher

  3. @zmarkan @pusher Kotlin is #2


  4. @zmarkan @pusher Kotlin is #2
 most ❤ programming language 


    (according to the StackOverflow survey)
  5. @zmarkan @pusher

  6. @zmarkan @pusher 35% 
 Android devs use Kotlin
 (according to

    Google)
  7. @zmarkan @pusher Realtime APIs powering your… [ news, chat,
 ride

    sharing, crypto trading, sports,
 ___ ] 
 …apps Pusher
  8. @zmarkan @pusher Why #StateOfKotlin? Learning what’s in the Kotlin world

    Sharing the ❤ with the community Surveys are fun! ✅
  9. @zmarkan @pusher

  10. @zmarkan @pusher •Demographics $% •Adoption & Learning & •Usage '

    •Features •Tools & Ecosystem
  11. @zmarkan @pusher responses received 2744

  12. @zmarkan @pusher 13min14s average time to complete ⏱

  13. @zmarkan @pusher Employment status

  14. @zmarkan @pusher Developer experience

  15. @zmarkan @pusher Kotlin usage

  16. @zmarkan @pusher Kotliners per company

  17. @zmarkan @pusher the state of 
 Kotlin

  18. @zmarkan @pusher the state of 
 Kotlin “It’s like Java++”

  19. @zmarkan @pusher Adoption through time Jake Wharton’s Kotlin doc

  20. @zmarkan @pusher

  21. @zmarkan @pusher Top learning 
 resources

  22. @zmarkan @pusher Other programming languages PHP, Ruby, Scala, TypeScript, C,

    Groovy, Go…
  23. @zmarkan @pusher Android is eating the (Kotlin) World

  24. @zmarkan @pusher How much Kotlin in your codebase? ☕

  25. @zmarkan @pusher Fave features in the Kotlinverse

  26. @zmarkan @pusher Fave features in the Kotlinverse Experimental features! ⚠

  27. @zmarkan @pusher Fave features in the Kotlinverse “Doesn’t get in

    the way 
 of geżting the job done”
  28. @zmarkan @pusher 77% 
 use extension functions

  29. @zmarkan @pusher Just for null checks 
 (in a Java

    app) For clean code mostly. I make their scope as limited as possible unless it is a generic utility extension function. Almost for everything. Mostly internal extension functions to avoid global namespace bloating. lambda parameters for DSL-style builders. $% $%
  30. @zmarkan @pusher 87% 
 migrated Java to Kotlin. From Java

    to Kotlin…
  31. @zmarkan @pusher 1

  32. @zmarkan @pusher

  33. @zmarkan @pusher …and back again. 25% 
 migrated back to

    Java.
  34. @zmarkan @pusher “[Automatic] migration doesn’t provide idiomatic Kotlin and puts

    lots of null assertions"
 ‼
  35. @zmarkan @pusher reasons for reverting are both technical and organizational

  36. @zmarkan @pusher 29% 
 have used coroutines

  37. @zmarkan @pusher "Stopped using it because it’s experimental"
 ⚗ 6

  38. @zmarkan @pusher "Fully in production for a fintech solution"


  39. @zmarkan @pusher 41% 
 have used a DSL

  40. @zmarkan @pusher 10% 
 have wriżten a DSL

  41. @zmarkan @pusher Testing! Custom data structures, typed JSON ML &

    AI UI Declarations - Android & Java $% %$
  42. @zmarkan @pusher 25% 
 used kotlin beyond Android/JVM

  43. @zmarkan @pusher Kotlin beyond the JVM 


  44. @zmarkan @pusher

  45. @zmarkan @pusher K K

  46. @zmarkan @pusher

  47. @zmarkan @pusher Fave build tools ⚒

  48. @zmarkan @pusher Koin, Arrow, Spek, KTX, Kluent, Ktor, Kotlin Android

    Extensions, Dokka, Okio, Knarch, …
  49. @zmarkan @pusher ( C ) → K

  50. @zmarkan @pusher ( C ) → K “Mortal Kombat of

    programming languages”
  51. @zmarkan @pusher find out more at 
 pusher.com/state-of-kotlin

  52. @zmarkan @pusher find out more at 
 pusher.com/state-of-kotlin More graphs!

    RAW data!
  53. @zmarkan @pusher Want to shape the next State of Kotlin?


    Let me know your suggestions! 
 What do you want to ask?
  54. @zmarkan @pusher Zan Markan
 
 @zmarkan
 zan@pusher.com
 pusher.com
 
 slides:

    bit.ly/state-of-kt-nyc
  55. @zmarkan @pusher Zan Markan
 
 @zmarkan
 zan@pusher.com
 pusher.com
 
 slides:

    bit.ly/state-of-kt- We’re hiring BTW
  56. @zmarkan @pusher Resources JW's whitepaper from Square: docs.google.com/document/d/ 1ReS3ep- hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8

    Kotlin Future Features survey: blog.jetbrains.com/kotlin/2017/06/ kotlin-future-features-survey-results StackOvervlow Survey: insights.stackoverflow.com/survey/2018 Testing robots: https://jakewharton.com/testing-robots/ Announcing Okio 2: https://medium.com/square-corner-blog/okio-2-6f6c35149525 Droidcon NYC app: https://github.com/touchlab/DroidconKotlin/ KeynotedDex (Kotlin frontend & backend): https://github.com/wiyarmir/keynotedex