Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The State of Kotlin
Search
Zan Markan
March 29, 2018
Programming
0
180
The State of Kotlin
State of the Kotlin Ecosystem
Zan Markan
March 29, 2018
Tweet
Share
More Decks by Zan Markan
See All by Zan Markan
High-Performing Engineering Teams and the Holy Grail
zmarkan
0
74
A Practical Introduction to CI/CD
zmarkan
0
34
The Need for Speed - Practical Tips for Optimising your CI/CD Pipeline
zmarkan
0
61
Chat app with React, Auth0, and Pusher Chatkit
zmarkan
0
340
State of Kotlin - Droidcon NYC
zmarkan
1
68
State of Kotlin - Droidcon Berlin 2018
zmarkan
1
140
Building DSLs in Kotlin for Fun and Profit
zmarkan
2
540
Push Notifications That Don't Suck
zmarkan
3
410
10-ish Things about Android Library Development
zmarkan
0
100
Other Decks in Programming
See All in Programming
Compose Hot Reload is here, stop re-launching your apps! (Android Makers 2025)
zsmb
1
400
フロントエンドテストの育て方
quramy
11
2.9k
爆速スッキリ! Rspack 移行の成果と道のり - Muddy Web #11
dora1998
1
270
Do Dumb Things
mitsuhiko
0
400
gen_statem - OTP's Unsung Hero
whatyouhide
1
190
custom_lintで始めるチームルール管理
akaboshinit
0
200
国漢文混用体からHolloまで
minhee
1
140
WordPress Playground for Developers
iambherulal
0
130
Coding Experience Cpp vs Csharp - meetup app osaka@9
harukasao
0
670
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
220
AIコードエディタの基盤となるLLMのFlutter性能評価
alquist4121
0
190
Develop Faster With FrankenPHP
dunglas
2
3.1k
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
4 Signs Your Business is Dying
shpigford
183
22k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
370
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
A Tale of Four Properties
chriscoyier
158
23k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
720
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Transcript
The State of KOTLIN ZAN MARKAN DEVELOPER EVANGELIST @ PUSHER
The State of KOTLIN ZAN MARKAN DEVELOPER EVANGELIST @ PUSHER
KOTLIN @ PUSHER Used for all new SDK development for
Android ▸ Chatkit ▸ Push Notifications ▸ Feeds © @zmarkan 2018 | @pusher
SURVEY GOALS ▸ Learning ▸ Promote Kotlin usage ▸ Give
back to the community ▸ Hoping for 1000 responses © @zmarkan 2018 | @pusher
DOING THE SURVEY ▸ December - Jan -> Questions ▸
Jan - March -> Survey running ▸ prize -> Nikola Curilovic © @zmarkan 2018 | @pusher
2744 RESPONSES © @zmarkan 2018 | @pusher
33% COMPLETION RATE © @zmarkan 2018 | @pusher
13M14S AVG TIME TO COMPLETE © @zmarkan 2018 | @pusher
CATEGORIES SURVEYED ▸ Usage ▸ Learning ▸ Features ▸ Zeitgeist
▸ Demographics © @zmarkan 2018 | @pusher
STATE OF KOTLIN © @zmarkan 2018 | @pusher
KOTLIN USAGE © @zmarkan 2018 | @pusher
58% CURRENTLY USE KOTLIN ON A PROJECT © @zmarkan 2018
| @pusher
HAVE YOU EVER USED KOTLIN? © @zmarkan 2018 | @pusher
ON WHAT KIND OF PROJECTS? © @zmarkan 2018 | @pusher
80% OF PEOPLE USE IT FOR ANDROID APPS © @zmarkan
2018 | @pusher
WORK PROJECTS © @zmarkan 2018 | @pusher
OTHER PROJECTS ▸ Games ▸ Scripting ▸ Experiments ▸ Learning
& Koans ▸ Data Science © @zmarkan 2018 | @pusher
55% vs 25% KOTLIN-ONLY PROJECTS © @zmarkan 2018 | @pusher
KOTLIN IN WORK PROJECTS © @zmarkan 2018 | @pusher
KOTLIN IN SIDE PROJECTS © @zmarkan 2018 | @pusher
Other programming languages OF KOTLIN COMMUNITY © @zmarkan 2018 |
@pusher
JAVA, SWIFT, JS, NODE, PYTHON, ... © @zmarkan 2018 |
@pusher
MIGRATIONS FROM JAVA TO KOTLIN (and back again) © @zmarkan
2018 | @pusher
87% MIGRATED JAVA TO KOTLIN © @zmarkan 2018 | @pusher
HOW HAVE YOU DONE THE MIGRATION? © @zmarkan 2018 |
@pusher
25% REVERTED MIGRATION © @zmarkan 2018 | @pusher
None
REASONS ▸ Reflection, dependencies - Dagger, GreenDAO, Realm & Data
classes ▸ Early days: Spring DI and JaxRS ▸ Organisational reasons © @zmarkan 2018 | @pusher
"Made to do it due to organizational rules" !
"Another team took the code and didn’t want Kotlin" !
"Migration tri!ered a number of changes in the Java code"
!
"Migration doesn't provide idiomatic kotlin and puts lot of nu!
assertions" !
LEARNING KOTLIN © @zmarkan 2018 | @pusher
WHEN DID YOU PICK UP KOTLIN? © @zmarkan 2018 |
@pusher
WHY? ▸ Google, JetBrains support ▸ Tooling support ▸ Community
folk: Jake Wharton, Christina Lee, Antonio Leiva ▸ JB folk: Hadi Hariri, Svetlana Isakova, Andrey Breslav © @zmarkan 2018 | @pusher
"The popularity of Kotlin in a short period of time"
!
"Java was very verbose and Kotlin is just "
"It's like Java++"
TOP LEARNING RESOURCES © @zmarkan 2018 | @pusher
DEVELOPER BACKGROUNDS © @zmarkan 2018 | @pusher
FAVOURITE FEATURES © @zmarkan 2018 | @pusher
FAVOURITE FEATURES © @zmarkan 2018 | @pusher
Other FAVOURITE FEATURES ▸ when ▸ reified ▸ sealed classes
▸ lambdas © @zmarkan 2018 | @pusher
FIRST ORDER FUNCTIONS? © @zmarkan 2018 | @pusher
77% HAVE USED EXTENSION FUNCTIONS © @zmarkan 2018 | @pusher
WHAT FOR? ▸ Reducing Android boilerplate ▸ Replacing Util classes
▸ “nicer” FP ▸ Conversions → strings, etc… ▸ DSLs © @zmarkan 2018 | @pusher
"We felt like going overboard with them Now trying to
find a happy medium" !
"The most important use case is lambda parameters for DSL-
style builders." !
"For clean code mostly They make the code more readable"
!
29% HAVE USED COROUTINES © @zmarkan 2018 | @pusher
WHAT FOR? ▸ Threading, I/O, UI ▸ Replacement for RxJava
▸ Lazy generators ▸ Serverside - with Ktor ▸ C# "expats" © @zmarkan 2018 | @pusher
"I've used it with the library Arrow" !
"Stopped using it because it’s experimental" ⚗
"Fu!y in production for a fintech solution" !
"They provide a very funny API when used to wrap
JS promises" !
26% USED NON-JVM FEATURES © @zmarkan 2018 | @pusher
NON-JVM FEATURES © @zmarkan 2018 | @pusher
BUILD TOOLS © @zmarkan 2018 | @pusher
41% HAVE USED A DSL © @zmarkan 2018 | @pusher
DSL USAGE © @zmarkan 2018 | @pusher
24% HAVE DEVELOPED A DSL THEMSELVES © @zmarkan 2018 |
@pusher
WHAT FOR? ▸ ML & AI ▸ Jake Wharton's Testing
Robots ▸ UI Declarations (Android & Java) ▸ Configurations, tooling ▸ Custom Data Structures - typed JSON © @zmarkan 2018 | @pusher
REPLACING C WITH K? © @zmarkan 2018 | @pusher
© @zmarkan 2018 | @pusher
KOTLIN ZEITGEIST © @zmarkan 2018 | @pusher
29% ARE MISSING THINGS IN KOTLIN © @zmarkan 2018 |
@pusher
MOST MISSED ▸ Ternary operator ▸ SAM for Kotlin classes
▸ Pattern matching ▸ More syntax sugar ▸ LINQ © @zmarkan 2018 | @pusher
MORE MISSED... ▸ Literal bitwise operations ▸ Custom operations ▸
Single multiplatform IDE ▸ VueJS support ▸ Swift’s guard © @zmarkan 2018 | @pusher
21% DISLIKE FEATURES... © @zmarkan 2018 | @pusher
MOST HATED ▸ Companion objects / statics ▸ Too many
"exotic" keywords ▸ Public by default ▸ No package-local modifier ▸ Not a dynamic language © @zmarkan 2018 | @pusher
WHAT DO YOU LIKE THE MOST? ▸ Features ▸ moden
programming language, similar to Swift, NOT Java ▸ Syntactic sugar, stdlib, easy to learn ▸ It's fun ▸ Platform independent © @zmarkan 2018 | @pusher
None
"It can be read like a story" !
"I smile again when writing code" !
"The language doesn't get in the way of getting the
job done" !
"Mortal Kombat: The Programming Language" !
DEMOGRAPHICS © @zmarkan 2018 | @pusher
KOTLINERS ARE EVERYWHERE ! " © @zmarkan 2018 | @pusher
EMPLOYMENT © @zmarkan 2018 | @pusher
YEARS WORKING AS DEVELOPER OR SWE © @zmarkan 2018 |
@pusher
NUMBER OF PEOPLE YOUR ORG © @zmarkan 2018 | @pusher
KOTLIN DEVS IN YOUR ORG © @zmarkan 2018 | @pusher
SECTORS AND INDUSTRY © @zmarkan 2018 | @pusher
FUTURE OF STATE OF KOTLIN? WHAT WOULD YOU LIKE TO
ASK? © @zmarkan 2018 | @pusher
Zan Markan zan@pusher.com @zmarkan © @zmarkan 2018 | @pusher
REFERENCES ▸ 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 © @zmarkan 2018 | @pusher