MPSが出ました 、紳士! そして、この機会に、インターネットが何とかまだ静かであることは奇妙です。 結局のところ、私たちはソフトウェアエンジニアリングの世界で真の革命に取り組んでいます。 どうやら、OOPへの移行の場合のように、LOPへの移行は遅く、痛みを伴います。
どのような革命とどのようなLOPを求めますか? 言語指向プログラミングについてはここで英語で非常によく書かれています 。 要するに、アイデア自体はシンプルです-誰もがDSL (ドメイン固有言語)の概念に長い間慣れ親しんでおり、新しいレベルにそれを置き、既存の拡張言語を作成し、これらの言語での開発に便利なカスタムIDEを作成するためのツールを入手します。
テキストではなく、 抽象構文ツリー (プログラムのテキストがコンパイル中にリダイレクトされる)をすぐに使用して、MPSを使用すると、テキストプログラムを編集するときに非テキストエディターを作成したり、あらゆる種類の興味深いコントロールを使用したりできます。 そして最も重要なことは、開発をスピードアップするために新しいデザインでお気に入りの言語をどのくらいの頻度で拡張したいですか? 言語の文法を拡張する必要がありますが、他の誰かが別の拡張機能を考え出し、それらの両方が文法を破るとどうなりますか? MPSではこれをエレガントに行うことができますが、もちろんそれは複雑であり、実際に何をしているかを学習して理解するには時間がかかります。 また、たとえば、多くのフレームワークとライブラリを考えてみましょう。これらは、本質的に狭い領域にあるこれらのDSLです。 それらを言語の拡張に変換してみませんか?
一般に、誰もがMPSを読んでダウンロードします。
私はどちら側にいるのか、なぜこのイベントに満足しているのか? 前にMPSを見せてくれた素晴らしい人はエフゲニーポタペンコだから 。 そして彼はこのシステム上で面白いActionScript 3エディターを長い間書いており、何度も何度も面白いスクリーンキャストで驚きました(説明はIvan Dembitskyからです、私は彼がこれにあまり怒っていないことを願っています):
ゲッター/セッターおよびフィールドテンプレート
www.potapenko.com/tmp/screencasts/templates.flv
オーバーライドキーワードとナビゲーションを自動的に追加してオーバーライドメソッドを作成する方法
www.potapenko.com/tmp/screencasts/override.flv
メソッド/変数/フィールド命名アシスタント
www.potapenko.com/tmp/screencasts/naming.flv
エディターの主な機能は言語拡張です-ここにASのENUMSが追加されました
www.potapenko.com/tmp/screencasts/enums.flv
さて、編集者、だから何? また、MPSを詳細に検討した結果、AOPがActionScriptに簡単に追加される方法、XMLファイルを介して構成されたSpringのようなIoCフレームワークが単純なDSLに変換される方法がわかりました。 ビデオプレーヤーやシンプルな名刺サイトを作成するためのヘルパークラスでさえ、DSLに適合しています。
未来は今、紳士です!
更新! コメントから、LOPについてのロシア語のテキストへのリンクが届きました(以前のリンクは英語での翻訳です)。
http://www.rsdn.ru/article/philosophy/LOP.xml