おでーぶでおでーぶ

いろいろ書く。いろいろ。

KotlinFest 2019 CfP に応募した

Deep Dive into Kotlin DSL

DSL の話から Kotlin DSL (Gradle Kotlin DSL じゃないよ)について触れ、自分たちでも DSL を構築する方法を知る・構築できるようになることを目的とした発表です。

日本語で出したんですが、英語発表でもいいよと書いておきました。(英語発表がどの程度欲しい・採択するつもりなのか分からなかったので)

この発表では DSL の基礎から Kotlin DSL における拡張表現や開発方法まで踏み込んで発表します。

また Kotlin DSL の実例として

- Gradle Kotlin DSL
- Ktor or DOM (like React)
- Android Jetpack Compose

あたりを取り上げて、どのように Kotlin DSL が作用し、Java/Groovy ではなぜ出来ないのかについても触れたいと思います。

Topics (予定)

- What's domain-specific language and Kotlin DSL?
- Let you know real examples of Kotlin DSL
- Getting started understanding and developing DSL
    - What's the *primitive* DSL
    - The power of *Lambda* in DSL world
    - Typesafe builder and Kotlin DSL
- Syntactic extension
    - Extension method e.g. Gradle Kotlin DSL
    - Operator overloading e.g. Ktor
    - Infix operator based Fluent style e.g. Assertion libraries
    - DSLMarker and implicit receiver resolution e.g. Jetpack Compose
- For DSL users
    - Adapt Kotlin DSL to existing libraries
- For DSL developers
    - How to keep both usabilities of Kotlin DSL and other JVM languages
    - Examples in Gradle Kotlin DSL

英語なら以下みたいな感じ。

In this presentation, I will talk about the basis and practical application of Kotlin DSL in achieving attendees will be able to develop Kotlin DSL.

I will pick up the following examples to explain how Kotlin DSL work and why Java/Groovy are not enough or not good at doing so.

- Gradle Kotlin DSL
- Ktor or DOM (like React)
- Android Jetpack Compose

Topics (just a plan)

- What's domain-specific language and Kotlin DSL?
- Let you know real examples of Kotlin DSL
- Getting started understanding and developing DSL
    - What's the *primitive* DSL
    - The power of *Lambda* in DSL world
    - Typesafe builder and Kotlin DSL
- Syntactic extension
    - Extension method e.g. Gradle Kotlin DSL
    - Operator overloading e.g. Ktor
    - Infix operator based Fluent style e.g. Assertion libraries
    - DSLMarker and implicit receiver resolution e.g. Jetpack Compose
- For DSL users
    - Adapt Kotlin DSL to existing libraries
- For DSL developers
    - How to keep both usabilities of Kotlin DSL and other JVM languages
    - Examples in Gradle Kotlin DSL

おまけ

昨日の勉強会で Nkzn さんに「Gradle Kotlin DSLの話聞きたい」と言われたけど、45分やれる気がしないのでサクッと5分LTに送るか悩む。