DSL / Using Language Workbenches


DSL

Using Language Workbenches

担当:佐藤匡剛

要約

  • 言語ワークベンチ(Language Workbench)
    • 「高度な機能を備えたDSL作成支援ツール」
    • これまでの2スタイル(内部DSL、外部DSL)は、従来から知られていた伝統的なスタイル
    • 言語ワークベンチは、全く新しいカテゴリに入る
  • 外部DSLの大きな欠点
    • ツール環境が比較的限られていること
      • テキストエディタのハイライト機能程度
    • ポストIntelliJ時代には高機能なIDEが当たり前
    • 言語ワークベンチは、パーサだけでなくカスタムの編集環境まで定義できるのが特徴
  • 言語ワークベンチの最大の特徴
    • テキスト以外の様々な表現形式のDSLを設計できること
      • ex) 図的言語
    • マルチペインのビジュアル開発環境によって、様々な視点(切り口)からDSLスクリプトを見ることができる
    • 視覚的にリッチな環境を簡単に構築できることがウリ
  • 「こんなの結局、なんちゃってツール(doodleware)なんじゃないの?」
    • 確かに、テキスト形式がDSL表現に適しているのには実践的な理由がある
    • もし言語ワークベンチが流行ったとして、そのときの言語は我々が思っているようなプログラミング言語とは違うものになるのではないか?
      • よく言われる言語ワークベンチの利点:「普通の人がプログラムできる!」
      • → それ、なんてCOBOL?
      • 普通の人のためのプログラミング環境として大成功したのは「スプレッドシート」
  • Charles Simonyiが言語ワークベンチのアイデアを生み出した
    • (元Excelの開発者で、Intentional Software社の創業者)
    • そういうわけで、言語ワークベンチには大きなポテンシャルがありそうな気がする
    • とはいえ、言語ワークベンチはまだ発展途上で、今後もどんどん変化していきそう
    • しかし非常に重要だと思うので、本書の最後に1章を割くことにした

ファウラーへのフィードバック

  • せっかく出版前の本なので、フィードバックできる意見があればどんどん挙げていきましょう!

担当者のつぶやき

  • 昔バイトでコンビニ店舗の売上予測システムをExcelで構築する仕事をしたのがきっかけで、SOP(スプレッドシート指向プログラミング)とかいう概念を妄想していたのを思い出しました。S2UnitのテストデータとかDroolsのデシジョンテーブルとか、Excelを組み込んだフレームワークって結構多いように思います。もう少しExcelに市民権を与えて上げてもいいんじゃないかと思います。

みんなの突っ込み



まとめ (議事録)