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
200
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
96
A Practical Introduction to CI/CD
zmarkan
0
45
The Need for Speed - Practical Tips for Optimising your CI/CD Pipeline
zmarkan
0
81
Chat app with React, Auth0, and Pusher Chatkit
zmarkan
0
400
State of Kotlin - Droidcon NYC
zmarkan
1
100
State of Kotlin - Droidcon Berlin 2018
zmarkan
1
170
Building DSLs in Kotlin for Fun and Profit
zmarkan
2
590
Push Notifications That Don't Suck
zmarkan
3
450
10-ish Things about Android Library Development
zmarkan
0
130
Other Decks in Programming
See All in Programming
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
1.1k
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
230
[SF Ruby Feb'26] The Silicon Heel
palkan
0
110
ロボットのための工場に灯りは要らない
watany
11
3k
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
480
AI活用のコスパを最大化する方法
ochtum
0
220
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
220
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
150
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
1k
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
450
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
170
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
350
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
53k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.9k
Leo the Paperboy
mayatellez
4
1.5k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
180
Scaling GitHub
holman
464
140k
Mobile First: as difficult as doing things right
swwweet
225
10k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Thoughts on Productivity
jonyablonski
75
5.1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
140
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
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