Scala

特徴

  • 純粋なオブジェクト指向
  • 本格的な関数型言語
    • Lisp→熱狂的支持→でも遅い。。
  • Scalaは静的型付け&型パラメータ
  • 動的型付けが流行ってる
    • Ruby,Physon,Groove
      • 当たり前のとこは型付しない
  • スクリプト言語的な使いやすさ
    • ダイナミック言語の使いやすさはすべて網羅されてる
  • JVMの上で動くよ
  • スペックあがって、作りやすいほーがいいじゃん
  • Scalable!ここがいちばん大事
    • もともとスケーラブルなのがScala
    • DSLのホスト言語として最適
      • 作りやすいけど、生産性そこまで高くないかも
      • だけどDSL上だと最強だよ
      • 静的型付けでDSL作れるのはScalaだけ

DSL

  • Domain Specific Language
  • 領域特化言語
    • UMLとは反対、冗長性がある
  • 専門言語で必要十分な情報を効率良く記述
  • ツールで必要な成果物を生成
  • One Source Multi Use
  • 適切な言語選択が必要

Specs

SimpleModeler

g3フレームワーク

  • Scala DSLで記述したメッセージフローを実行する

Scala

abstract doDo{
var name: String = _
}

  • var
    • 可変可能
  • val(final)

メソッドチェイン

  • メソッドに引数が1だと『.』『()』を省略できる

暗黙変換

階層構造を導入

階層構造でのパラメタの受取

まとめ

  • DSLを導入するならScalaがおすすめ
  • Java的に使うことできる
  • Scala DSLも案外簡単