ktor - past, present, and future hadi hariri...a bit of history. frameworks for kotlin ... a ruby on...

29
Kotlin 1.4 Online Event @hhariri October 15, 2020 Ktor - Past, Present, and Future Hadi Hariri

Upload: others

Post on 17-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

Kotlin 1.4 Online Event

@hhariri October 15, 2020

Ktor - Past, Present, and Future Hadi Hariri

Page 2: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

What is Ktor?

• An OSS Framework

• Creating Server and Client applications

• Multiplatform

Page 3: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

A bit of history

Page 4: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

Frameworks for Kotlin

• Kara - A Ruby on Rails for Kotlin

• Wasabi - An Express.js for Kotlin

Page 5: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

Ktor

• Initiated by Ilya Ryzhenkov

• Inspired by Kara and Wasabi

• Apart from being a framework, it served to

• Explore Kotlin as a DSL tool

• Base for library usage

• Coroutines to the max

Page 6: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

It caught on…

• Started being used externally

• Started being used internally

• Space decided to go with Ktor

• Multiple internal projects started using it

• It started getting external contributions (Pull Requests)

Page 7: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

But there was a problem…

Page 8: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya
Page 9: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

And there were just two “part-time” developers

Page 10: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

Brings us to today

Page 11: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

We have quadrupled our team size!

Page 12: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

Changes we’ve already made

• Moved to Semantic Versioning

• New site, new blog. And new Twitter account (@JetBrainsKtor).

• Commitment to 3 major/minor releases a year and monthly patch releases

• Introducing deprecation cycle

Page 13: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

Ktor on the Server

Page 14: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

fun main() { val server = embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello Ktor!", ContentType.Text.Plain) } } } server.start(wait = true)}

Page 15: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

fun main() { val server = embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello Ktor!", ContentType.Text.Plain) } } } server.start(wait = true)}

Page 16: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

fun main() { val server = embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello Ktor!", ContentType.Text.Plain) } } } server.start(wait = true)}

Page 17: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

fun main() { val server = embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello Ktor!", ContentType.Text.Plain) } } } server.start(wait = true)}

Page 18: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

fun main() { val server = embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello Ktor!", ContentType.Text.Plain) } } } server.start(wait = true)}

Page 19: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

A Ktor Application

. . .

Module Module Module

Page 20: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

A Module

Request ResponseRouting App Logic

Page 21: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

A Module

Request ResponseRouting App Logic

Feature

Page 22: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

A Module

Feature

Request ResponseRouting App Logic

Feature

Page 23: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

Compression

A Module

Request ResponseRouting App Logic

Encoding

Page 24: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

A Module

Request ResponseRouting App LogicFeature

Page 25: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

Demos

Page 26: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

What lies ahead

Page 27: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

What’s in store?

• Improving of onboarding experience

• Improving development lifecycle experience (testing, deployment, etc.)

• Improving client/server parity • Improving extensibility • Being attentive to performance • Revamping documentation (with compilable samples) • Improving tooling

Page 28: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

More at ktor.io

Page 29: Ktor - Past, Present, and Future Hadi Hariri...A bit of history. Frameworks for Kotlin ... A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin. Ktor • Initiated by Ilya

@hhariri

Thanks! Have a nice Kotlin!