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
Kotlin: Where We Stand & What's Next (K-Night)
Search
Andrey Breslav
May 18, 2016
Programming
22k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kotlin: Where We Stand & What's Next (K-Night)
Andrey Breslav
May 18, 2016
Other Decks in Programming
See All in Programming
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
250
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.1k
AIとRubyの静的型付け
ukin0k0
0
540
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
340
Oxlintのカスタムルールの現況
syumai
6
1k
関係性から理解する"同一性"の型用語たち
pvcresin
2
640
OSもどきOS
arkw
0
460
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
1k
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
140
dRuby over BLE
makicamel
2
320
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Evolving SEO for Evolving Search Engines
ryanjones
0
210
HDC tutorial
michielstock
2
690
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
160
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
200
The World Runs on Bad Software
bkeepers
PRO
72
12k
Design in an AI World
tapps
1
220
Transcript
Where We Stand & What’s Next Andrey Breslav
Learning materials • kotlinlang.org – Language Reference – API Reference
– Tutorials – Talk Videos • try.kotlinlang.org – Mini-IDE in your browser – Kotlin Koans • Kotlin EDU Plug-in • + books, and much more
Where We Stand • Kotlin 1.0 released in Feb, 2016
– 1.0.1 in March – 1.0.2 in May – 1.0.3 in the summer • 1.1 is feature-driven – EAP will start this summer
Others like it (and so will you J)
You are not alone • Lively community – Slack, Forums, StackOverflow
– 100+ OSS contributors • Responsive Team – Regular bugfix updates – Frequent EAP builds
KEEP • Kotlin Evolu\on & Enhancement Process – Proposals from JB
and Community – Feedback – Discussions • h_ps://github.com/Kotlin/KEEP
OUR PLANS
Lines of Development • 1.0.X — incremental updates – Bugfixes,
Performance – Tooling – Source Compa7bility*: Full • 1.1 — language release – Language features – Source Compa7bility*: Backward * modulo bugfixes
Tooling Plans: 1.0.X • Incremental compila\on in Gradle • Spring
Support in the IDE • Reducing the Standard Library Size • Android Lint Checks • Jack&Jill Support
New Targets • Java 8/9 – Generate default methods in
interfaces – Support new collec\on APIs (Streams etc) • JavaScript – Run\me modules (amd, umd, common.js, …) – Common toolchains (npm, browserify, gulp, ...) • Na\ve – iOS – Embedded – Server-side
Scrip\ng: example.kts #!/usr/bin/kotlin <define dependencies> import java.io.* for (file in
File(“.”).listFiles()) println(file.name)
Type Aliases typealias Int32 = Int typealias Predicate<T> = (T)
-> Boolean • Not a “newtype” – Int can be assigned to Int32 and vice versa – Value types will cover the newtype use case (later)
Bound Method References val p: Predicate<String> = “foo”::equals // behaves
as { x -> “foo”.equals(x) } val c: KClass<Foo> = x.foo()::class • Kotlin 1.0 only supports Type::foo/Type::class
Enhancements for Proper\es • Local delegated proper\es – fun foo()
{ val lazyBar by lazy { ... } while (...) { if (...) { lazyBar.doBaz() ... } • Inline proper\es – val foo: Foo inline get() = ... inline set(v) { ... }
Hierarchies for Data Classes data class User(val name: String, val
age: Int) – equals()/hashCode()/toString() – copy() • val newUser = someUser.copy(name = “Jane Doe”) – componentN() • val (name, age) = someUser • sealed class C() { data class Example(…) : C() }
Destructuring in Lambdas myMap.forEach { (k, v) -> println(“$k =>
$v”) } Map.Entry<K, V> destructured
None
async/await fun loadImage(url: URL) = async { val bytes =
await(loadBytes(url)) bytesToImage(bytes) } Suspension point Asynchronous computa\on
Corou\nes • Covers async/await/yield, and much more • Maximum flexibility
– Support for virtually all exis\ng asynchronous APIs – Language is not bound to a given Task framework
Corou\nes: Example fun loadImage(url: URL) = async { val bytes
= await(loadBytes(url)) bytesToImage(bytes) } Library Func\ons, not keywords!
Conclusion • Come take part in KEEP
None
And One More Thing…
Images used • h_p://i.huffpost.com/gen/1307774/thumbs/o-PAGATI-PER-VIAGGIARE-facebook.jpg • h_ps://vanuatudaily.files.wordpress.com/2012/10/no-school-today-in-vanuatu.jpg • h_p://laubach.extapps.alphaplus.ca/pluginfile.php/2535/course/summary/learning%20materials.JPG • h_p://images.clipartpanda.com/knight-shield-clipart-Chrisdesign_weapon_shield.png
• h_p://pngimg.com/upload/hammer_PNG3884.png • h_ps://upload.wikimedia.org/wikipedia/en/thumb/4/42/Expedia_logo.svg/1024px-Expedia_logo.svg.png • h_p://fontmeme.com/images/Basecamp-Logo.jpg • h_ps://web-assets.domo.com/blog/wp-content/uploads/2015/03/connector-square-logo.png • h_p://info.clearpathsg.com/hs-fs/hub/154661/file-34316289-png/images/pivotal-logo1-resized-600.png • h_ps://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/Neulix_2014_logo.svg/1280px-Neulix_2014_logo.svg.png • h_ps://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/1000px-Google_2015_logo.svg.png • h_ps://s3.amazonaws.com/\tlepages.leanpub.com/kotlin-for-android-developers/hero?1457531118 • h_ps://images.manning.com/255/340/resize/book/8/9b10436-7580-436b-85f2-0e6d17405ee6/Jemerov-Kotlin-MEAP-HI.png • h_p://www.garfsblog.uso99.com/wp-content/uploads/2014/04/people-joining-add.jpg • h_p://www.geotronix.co.id/wp-content/uploads/2016/01/Support2.png • h_p://www.sheffieldextensions.co.uk/wp-content/uploads/2014/09/blueprints-rolled.jpg • h_p://www.babybedding.com/images/collec\ons/solid-white-cradle-bedding_large.jpg