2013年08月16日

プログラミングの未来

プログラミング言語は抽象化していく。アセンブリ言語で、物を作るのがなぜ大変か、それはアイデアを実現するのに選択肢がありすぎ、道のりが長いからだ。高級言語でその選択肢は大幅に減る、だから作るのもはやくなる。プログラミングという抽象化作業が減るからだ。高級言語で汎用性を保った抽象化の道は限界になり、言語は多様化と特化の道を辿る。特化された言語はアイデアをそのまま表現できる。つまり直感的だ。
一つのソフトウェアを作るのに、複数の言語を使うかもしれない。ややこしく感じるかもしれないが、直感的だから大丈夫。
そうなれば、それらの連携の仕組みも必要だ。新しい言語と呼べるかもわからない、それらのための周辺ツールが必要だ。

cloocaはそれを目指す。
必ず未来のソフトウェア開発の基盤になる。
posted by Syuhei Hiya at 00:46| Comment(0) | TrackBack(0) | 日記

2013年08月15日

これが私には1番

この間、タワーデフェンスという種類のゲームを、作っていました。
迫ってくる、敵を倒すために、ユニットを配置するという戦略ゲームです。
僕が作っていたのは、敵の侵入経路は固定のものです。以下画像。
スクリーンショット 2013-08-15 20.04.45.png

その際に、ステージを作るのがめんどくさかったです。
最終的に15ステージ作ったのですが、ステージごとに設定ファイルみたいな物を作るようにしていて、ステージの構造とかを書くのですが、コードで書くとすごく大変でした。
かといって設定ファイルが独自だし、汎用マップエディタも使えないし。

そこで、cloocaを使ってみました。

スクリーンショット 2013-08-15 20.00.13.png

cloocaのシンプルなクラス図を改造して、ステージ情報を生成するようにしました。クラスの位置情報から、ステージの構造を生成しています。

すると以下のようなステージが生成されます。

スクリーンショット 2013-08-15 19.50.03.png

クラスの位置の微妙なずれは、ソースコード生成時に補正しています。
これで15ステージ作りました。

半分冗談ではありますが、コードで書くよりもだいぶ時間を短縮できました。
きっと他にもっといい方法があるのでしょう、でもいいのです、これが私には1番なのです。

追加

この例になっているアプリを公開しました。

Fruit Defense
posted by Syuhei Hiya at 20:06| Comment(0) | TrackBack(0) | 日記

2013年07月03日

思い出のDSL

今からちょうど3年前、大学4年のとき、Domain Specific Languageという言葉を初めて知り、抽象度の高い状態遷移図からロボット用のプログラムを自動生成しているのを見て、感動した。

その当時はグラフィティカルなDSLを作るのに、Eclipse EMF+GMFとVisual Studio DSL ToolとMetaEdit+という選択肢があった。当時Eclipse EMFは自分には難解で使いこなすことが出来ず、MetaEdit+は高価過ぎた。Visual Studio DSL Toolは有料だったが、学生用のキャンペーンで無料で手に入れることができ、簡単なサンプルは動かすことが出来た。しかし自分の技術の無さで、それ以上のことができなかった。DSLの概念は理解しているのに、DSLを作ることが出来ないことがもどかしかった。そこで、フリーのコード生成フレームワークと、C#で自作したIDEもどきを組み合わせて、画面遷移DSLからswfを生成する、ツールを作った。それが最初の自作DSLツールだった。

もっと簡単にDSLを作りたい、そうすれば魔法のようなことが実現できると信じていた。
そして3年後、そんな思いを叶える、WebベースのDomain Specific Languageのためのツール「clooca」は完成した。

それなのに今、cloocaの良さを人に伝えるのに、大変苦労している。
今僕に必要なのは、3年前のDSLへの感動を、思い出し皆さんに伝えることだと思う。
タグ:dsl EMF
posted by Syuhei Hiya at 10:25| Comment(0) | TrackBack(0) | 日記
Powered by さくらのブログ