先月、Ruby On Railsを中心とした軽量言語に関するカンファレンスに参加してきました。
私自身、入社以来PHPやPerlなど軽量言語を中心にプログラミングしてきたので最近注目されているRubyにも興味がわき参加してきたわけです。
Ruby On Railsを中心としたといっても内容の方がRubyの書き方などを講義すると言うよりは軽量言語の今後の展望などがその中心でした。
Webのアプリケーションのライフサイクルなどを考慮し、今後はすぐに作ってどんどんカスタマイズしブラッシュアップしていくような手法とそれを実現できる軽量言語の方が、現場のニーズを吸収したり変化へのスピードに柔軟に対応できると言うようなものがその中心です。
それを実現できるのがRuby On Railsであり、そしてその開発手法として取り上げられるのがアジャイル開発であると言うものです。
Ruby On Railsが今最もそれにふさわしいかと言われれば、このカンファレンス内でも言ってたところですが、開発環境の日本語化が整備されていない点などから少し疑問ではあるのですが軽量言語の中でもRuby自体は非常に強力な言語である事は間違いないと思っています。
ここで少し解説を入れると、アジャイル開発とは開発の対象を小さな機能に分けて、その機能ごとに開発単位を設定し、繰り返し開発を進めていくと言うものです。
開発単位は、一般的な要件定義、設計、コーディング、テストなどです。
これを小さな機能ごとに繰り返して開発を行います。
「人間はミスを犯すもの」とし、ウォータフォールモデルなどの開発手法で後半に発生する手戻りによる影響を最小限にとどめようとするための開発手法です。
一方で、軽量言語というのは動作が軽いと言う意味ではなく、開発者にとって負担が小さい言語と言う意味です。
そこまで深い知識がなくとも容易にプログラムを書く事ができる言語。
(明確にこれが軽量言語だという基準はありません)
このカンファレンスの中で、「中間管理職にプログラミングを!」と面白い事を言っていました。
Ruby On Railsは統合開発環境(Rails Platform)を利用すればGUIの操作だけで簡単にプログラミングできるため、中間管理職が手を焼いている様々な業務をプログラミングする(それを解決できるアプリを作ってしまう)事で簡略化してしまえばよいという話です。
Excelでマクロを組んでその一部を簡略化するというのはたまに目にしますが、それなりの知識が必要ですし、Excel自体でできる事の限界もあります。プログラムでできる事と言うのは、ある意味無限大です。
簡単にプログラミングができるのであれば、確かにコーディングをしてしまった方が業務も効率化できるのでしょう。
もう一つ、なるほどと思ったことは現在の開発の現場では、開発者と使用者の距離が遠くなっていると言う点を指摘したお話です。
使用者がニーズを上げ、誰かがそれをまとめ開発者に渡ってくる頃には、それは「要件定義書」や「設計書」になっているわけで、どういった意図でそれを作らなければならないのかという生の声はなかなか開発者に届きにくいというものです。
そこから、現場とのズレが生じたり、開発者のモチベーションに影響したりと言う事が起きている。
こうした軽量言語があれば、「とりあえずまず作ってみましたんで見てください」という事が言え、実際に画面を使用者に見せながら、「ここをこうして欲しい」という細かな現場の要望を拾う事ができるであろうと言う事です。
そして、それがモノづくりを行う開発者のモチベーション向上にもつながるのではないかと。
これには納得しました。
最初に触れたように、これからのWebアプリケーションはスピードが重視される部分が大きいです。
ニーズの変化、環境の変化、流行などなどそれへの対応のためには柔軟な開発手法と開発者の負担が少なくコーディングできる軽量言語と言うものが、さらに注目されていくものと思います。
こうしたニュースも流れていますし。
「JRubyなどスクリプト言語連携で,JavaはWeb 2.0に拡大する」
2007.03.16追記
楽天市場のシステム開発にRuby on Railsを採用 - 楽天
というニュースが流れましたね。
こうした大規模な導入事例が出てくると、Rubyの利用もより活発になってきそうです。
関連記事
