タグ

DSLに関するGlnのブックマーク (4)

  • 第3回 流暢なインターフェース | gihyo.jp

    最終回となる今回は、文章を書くようにプログラムを記述する流暢なインターフェースについて解説します。 レビュー:内部DSLと外部DSL 内部DSLを採用したDSLは、とても親しみやすいと言えます。なぜなら、ホスト言語のパワーと今まで使っていたツールをそのまま使うことができるということと、内部DSLは、文章のように書かれていることが多いので、処理の結果を容易に想像することができるからです。しかし良いことばかりではなく、良く設計されていない内部DSLは、処理の結果を想像することが難しくなる、という問題点もあります。 外部DSLは、その構文やルールを新たに学ばなければなりません。そして、決して読みやすいとは言えません。Eclipseプラグインのようなツールを提供しなければならなくケースが非常に多くあります。しかしその反面、外部DSLの開発者が自由にDSLのフォーマットを決めることができます。 内部

    第3回 流暢なインターフェース | gihyo.jp
  • 第2回 内部DSLへの道 | gihyo.jp

    今回は内部DSLの詳細、またその実践としてRubyを例にした実装について解説します。 内部DSLに適した言語 - Ruby 2005年12月にRuby on Railsの正式版のリリース以降、そのフレームワークのみならず、プログラミング言語Rubyを支持、採用するプログラマーが増えてきました。 そのことを端的に表しているのが、達人クラスのプログラマー、そしてアーキテクトの存在です。一人は『達人プログラマー[1]⁠』⁠『⁠プログラミングRuby[2]⁠』などの著書で知られているDave Thomas氏です。もう一人は『エンタープライズ アプリケーションアーキテクチャパターン[3]⁠』などで著名なアーキテクト Martin Fowler氏です。Fowler氏が属している会社 - ThoughtWorks社[4]の多くのプロジェクトは、Rubyで開発していると聞いてます。 なぜ、彼等は、Ruby

    第2回 内部DSLへの道 | gihyo.jp
  • 第1回 DSLとは? | gihyo.jp

    第1回目は、DSLの基的な概念について説明します。 DSL概要 DSL(Domain Specific Language)は、ドメイン固有言語と訳されてます。DSLは、Java、C#などの汎用言語とは違い、ある特定の種類の問題に特化したコンピュータ言語です。 今回の連載では、DSLの世界を解き明かします。そして、実際にDSLをつくることで、よりDSLの理解を深め、「⁠用法・用量を守って使える」ようになるのが、今回のゴールです。 DSLの必要性 なぜ、DSLを学ぶ必要があるのでしょうか。 Ruby on Railsの登場以降、メタプログラミングという言葉を良く聞くようになりました。メタプログラミングというと、マクロ、コードの自動生成、テンプレートを上げることができます。 DSLは、メタプログラミングで使われます。メタプログラミングは、一般的なプログラムとはまったく違った方法をとっているので

    第1回 DSLとは? | gihyo.jp
  • Rubyの魔術 数々の“スペル”で高度なプログラミング − @IT

    2010/09/13 元JavaプログラマのPaolo Perrotta氏は、Rubyを使い始めた頃のことを振り返り、こう話す。 「私はJavaの世界からRubyに来た当初、とてもハッピーなプログラマでした。Rubyっていいね、かっこいいじゃん! と。ところが、最先端のイケてるライブラリの中を覗いてみたら、分からないところだらけだったんです……」。 RubyKaigi2010で「A Metaprogramming Spell Book」(あるメタプログラミング魔術の書)と題した講演を行ったイタリア人プログラマのPerrotta氏は、Ruby on Railsのソースコードを覗いてみたときの驚きをこう表現する。 「例えばalias_method_chainというメソッドは、一体どこにあるんだと探しました。どこにあるか分からないんです。こんなことJavaではあり得ません。結局、テキスト検索で発

    Gln
    Gln 2011/03/08
    まつもとゆきひろ氏「Rubyは君を信頼する。Rubyは君を分別のあるプログラマとして扱う。Rubyはメタプログラミングのような強力な力を与える。ただし、大いなる力には、大いなる責任が伴うことを忘れてはいけない」
  • 1