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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Zan Markan
March 29, 2018
Programming
210
0
Share
The State of Kotlin
State of the Kotlin Ecosystem
Zan Markan
March 29, 2018
More Decks by Zan Markan
See All by Zan Markan
High-Performing Engineering Teams and the Holy Grail
zmarkan
0
110
A Practical Introduction to CI/CD
zmarkan
0
49
The Need for Speed - Practical Tips for Optimising your CI/CD Pipeline
zmarkan
0
83
Chat app with React, Auth0, and Pusher Chatkit
zmarkan
0
400
State of Kotlin - Droidcon NYC
zmarkan
1
110
State of Kotlin - Droidcon Berlin 2018
zmarkan
1
180
Building DSLs in Kotlin for Fun and Profit
zmarkan
2
600
Push Notifications That Don't Suck
zmarkan
3
460
10-ish Things about Android Library Development
zmarkan
0
140
Other Decks in Programming
See All in Programming
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
1
180
PHPでローカル環境用のSSL/TLS証明書を発行することはできるのか? #phpconkagawa
akase244
0
370
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
390
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
210
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
1.1k
Making the RBS Parser Faster
soutaro
0
720
「なんか〇〇ライブラリで脆弱性あるみたいなんだけど。。。」から始める脆弱性対応 / First Steps in Vulnerability Response
mackey0225
2
120
KMP × Kotlin 2.3 - How Android Got Slower While iOS Builds Improved by 47%
rio432
0
200
Liberating Ruby's Parser from Lexer Hacks
ydah
2
2.7k
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
840
UaaL×Androidアプリのメモリ計測 — Memory Profilerの先へ
rio432
0
160
サプライチェーン攻撃対策「層を重ねて落ちない壁」を10日間で組み上げた話 #TechLeadConf2026
kashewnuts
1
280
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
3
360
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
500
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
180
The agentic SEO stack - context over prompts
schlessera
0
780
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
420
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Odyssey Design
rkendrick25
PRO
2
620
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Practical Orchestrator
shlominoach
191
11k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
110
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
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
[email protected]
@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