Dessine moi un DSL en Kotlin

bdxio

Benoit Prioux

lectra
versalis

Domain Specific Language

book
Facile à lire, écrire, comprendre
  • Langage avec une syntaxe spécifique à un domaine métier
  • Permet de masquer la complexité d’une API technique sous-jacente

Specific DSL

  • Langage dédié avec une syntaxe spécifique
  • Nécessite d’implémenter un parseur
sql
regex
lexyacc

Embedded DSL

  • Utiliser un langage existant comme support
  • Réussir à abstraire le langage support
java
groovy
scala

Exemple : Jenkinsfile (Groovy)

jenkinsfile
Figure 1. Jenkinsfile

Exemple : Gatling (Scala)

gatling
Figure 2. Scénario Gatling

Kotlin ?

kotlin
  • Orienté objet et fonctionnel avec typage statique
  • Créé par JetBrains en 2010 (open sourcé en 2012)
  • Sponsorisé par Google Android 📱 en 2017
  • Compilable pour la JVM ☕️
package hello

fun main() {
    println("Hello World")
}

DSL en Kotlin

gradle
Figure 3. Gradle

Pourquoi Kotlin ?

  • Statiquement typé
  • Support de l’IDE (complétion)
  • Langage désigné pour faciliter l’écriture de DSL

Démo

xchart

Conclusion

Ecrire un DSL en Kotlin c’est facile et pas besoin de magie !
lovekotlin

/