kmizu @kmizu いきなりだけど言語語り。自分の理想とする言語は、ユーザによる抽象化の試みを可能な限り邪魔しないと同時に、「破れにくい」抽象化層を簡単に構築できる言語であって欲しい。 kmizu @kmizu 「破れにくい」というのはどういうことかというと、いわゆるマクロを持っている言語の多くに共通する話だと思うのだけど、定義されたマクロを間違った、あるいは想定外の使い方をした場合に、その中身、つまり展開結果がユーザに漏れてしまうのは駄目だと思うのだ。
良いドメイン特化言語 (DSL) とは、プログラマ以外でも読むことができる英語のようなものだと広く言われている。Dave Thomas氏は、DSLは自然言語にできる限り近づくものではない(source)と主張し、そのような考え方に反対する。 さらに、これをDSL設計の指針とすることがむしろ有害であると主張する。また、彼が信じていることがDSL設計では重要であることを強調し、必ずしも英語らしくなくてもうまくいくDSLの例を紹介している。 Dave氏によると、DSLは英語や他の自然言語に近づく必要はない。なぜなら、それは実際に自然言語を話さないドメイン専門家など、かなり特別なカテゴリやユーザを対象にするからだ。 ドメイン専門家 [中略] は業界内の専門用語を話します。それは、彼らが仲間同士で効率的にコミュニケーションするための簡単な表現として発明した特別な言葉です。専門用語は英語を使うかもしれ
I'd like to be able to express my unit tests fairly naturally, using the conditional operators built into the language. So, for example, I'd want to write: expect(factorial(5)) == 120 expect(factorial(10)) > 10000 I'd like the error messages to show both the code that caused the error and the values that caused the error. So, for example, I'd want the following (incorrect) test expect(factorial(6
このドメインを購入する。 fragmental.tw 2018 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy
The 'Language' in Domain-Specific Language Doesn't Mean English (or French, or Japanese, or ...) I'm a really big fan of Domain-Specific Languages. Andy and I plugged them back in '98 when writing The Pragmatic Programmer. I've written my share of them over the years, and I've used even more. Which is why it is distressing to see that a whole group of developers are writing DSLs (and discussing DS
人間とは、未来へ向けて自らを投企していく存在である。ということで、今年最初のエントリでは、ソフトウェア開発に関して、新しく迎えた2008年の展望を予想してみたい。 今年はDSL普及元年 DSLは以前から話題に上ってはいるが、実際に恩恵に与っているのはまだ一部のRails開発者くらいなのではないかと思う。いまMartin Fowlerがすごい勢いで次の本を書いていて、そのタイトルが『Domain Specific Languages』のようだ。 http://martinfowler.com/dslwip/ このDSL本が年内に出版されるとすれば、PofEAAによってエンタープライズアプリの開発が一気に整理されたように、DSLの使用が一般のエンタープライズアプリ開発の現場まで降りてくるかもしれない。 いずれにせよDSL自体は古くからあった技術で、それだけでは面白みは少ない。期待されるのは、ド
ianime.jsもようやく安定して動き出したので、スライドショーを作ってみようと思ったのだが、通常のjavascriptのイベント処理を使って作ろうとすると、(1)最初のアニメーションの動作を指定し、(2)そのアニメーションの終了イベントを受けて次の指示を出し、...と、ものすごいスパゲッティ・コードを書かねばならなくなる。 それがどうしても耐えられなかったので、色々と試行錯誤をしているうちにたどり着いたのが、JSONを使ったアニメーション専用のメタ言語である。下の例の太字の部分がそれ。 function start() { anime.addSequence([ { duration:3000 }, { id:'pic4', effect:'fadeout', duration:3000 }, { duration:3000 }, { id:'pic3', effect:'fadeou
モデル駆動型開発(MDD:Model Driven Development)は、現実的には困難な課題を多く抱えていて、実用的なEoD(Ease of Development:開発容易性)に貢献できないと考えている開発者は多い。 しかし、その課題をよく分析すると、OMG(Object Management Group)のMDA(Model-Driven Architecture)が固有に持っている課題、つまり現実的アプローチとのギャップによる課題であることが多い。例えば、モデル駆動型開発のフレームワークやコンポーネント技術への適合性、各種パターンやリファクタリングの適用、テスト、ビルド環境の利用、開発プロセスの進め方や開発チームの役割、モデルを含めた開発成果物の管理などの課題があり、それぞれを解決していく必要がある。しかし、モデルがあればそれらすべてを解決できるという単純な問題ではない。 そ
以下の文章は、Martin Fowler による 「Language Workbenches: The Killer-App for Domain Specific Languages?」 の日本語訳である。 ソフトウェア開発における新しい考えの多くは、実は古い考えの新しい組み合わせ方です。この記事では、その新しい組み合わせ方のひとつ、私が「言語ワークベンチ(Language Workbenches)」と呼んでいるツールについて説明します。これは、現在広まりつつある考え方で、たとえば、Intentional Software、JetBrainsのMeta Programming System、MicrosoftのSoftware Factoriesなどが例として挙げられます。これらのツールは古い開発スタイルを採用しており、私はこれを「言語指向プログラミング(language oriente
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く