====== DSL ====== [[https://oldbigbuddha.dev/post/android-gradle-with-kotlin-dsl/|AndroidのGradleでKotlin DSLを使う]] [[https://github.com/JetBrains/Exposed|JetBrains/Exposed]] ===== DSLとは ===== [[https://oldbigbuddha.dev/post/android-gradle-with-kotlin-dsl/|AndroidのGradleでKotlin DSLを使う]]からの抜粋 DSL は Domain Specific Language(ドメイン固有言語) の略。 micro-languages や little languages とも呼ばれ、特定の領域に特化した設計がなされたプログラミング言語のことを指す。 有名どころでは XML や SQL、正規表現 などがあります。 DSLには内部DSLと外部DSL がある。 内部DSL は SQL や XML など完全に新しい文法が存在し、独自でパースが必要なもの。 外部DSL は ホスト言語が既にあり、そのホストが持つ文法を拡張して特定の領域に特化させたもの。 Kotlin DSL は Kotlin というホスト言語を更に拡張して Grade を利用できるようにしている ので 内部DSLになる。 調べてみると kotlinx.html なんてものもあるらしいです。KotlinでHTMLが組めるという発想は好きですが、XML 系のマークアップ言語はそれなりの良さがあると思っているので個人的にはあまり好きじゃないです。 少し前に Android のレイアウトを Kotlin で組める Anko なんてものもありましたが、あれも DSL の一種ですね。