開発と保守 – LL (Lightweight Language)と.NET

マイクロソフト畠山です。今日は、開発言語の選択について考えてみます。

皆さんの周りでシステム開発の稟議を起こすときに、開発言語について考慮されているでしょうか?「ウチは標準がC#だから」 (ありがたい!)、「J2EE (注: Java EEが正式な呼称ですね)でしょ。大体は。」みたいなお話を伺います。
開発言語は、大きく2つに分かれます。

  • 言語自体: これを相手にするのはプログラマーです。実際にコードを書きます。.NET系だったら、C#とかVBになりますね。保守時のメンテナンス対象でもあります。
  • 実行環境: これを相手にするのは、運用担当者ですね。

Javaは、両方を一つにして語られる場合が多いですが。
これまでのコンパイル型言語(Javaや.NET)は、特に開発を支援するためのツールが非常に充実してきました。.NETならVisual Studioを使うのは、もう基本ですよね。

これに対して、「LL」と呼ばれているのは、スクリプト系の言語です。PHP、Perlなどに代表される言語です。これらは、当然実行環境は必要なのですが、外部Web系のアプリケーションで使われる場合が多いです。
じゃ、LL系の実行環境は何か?というと、大部分が、Web Server上のCGI (Fast CGIというのもありますが)です。開発は、テキストエディタでやっちゃう場面も多いようです。もちろん、Eclipseなども選択肢ですが。

「LL」については、以下の特徴があると個人的に思っています。

  • 小規模、短期間開発向け
  • テキストエディタで開発できるので、開発環境が必須ではない、という印象を持たれている (Light = 軽いという印象そのままですが)。
  • 文字列処理はライブラリが充実してきている。これはHTML出力するという目的に合致しますね。
  • RDBMSアクセスが最低限そろっている。
  • データ型は存在しない。つまり、メモリ破壊の可能性はある。ということは、最近主流の実行環境 (JavaVM、CLRなど) とは逆行している。ということは、止められないシステムや、強固なセキュリティ要件があるシステムでは選択が難しい

これらの結果として、例えば「放送局様において、番組などの外部向けサイトで多く使われる」傾向があるのかなぁと感じています。

  • 番組の宣伝であること。つまり、システムのライフサイクルは短い
  • とすれば、一度作ったものは、まさに「ページ」であること
  • 読み取り処理と、最低限のデータ入力があれば十分
  • 止まっても、番組自体が止まるわけではない。インターネット連動を強く意識していない場合は特に。

言葉は悪いかもしれませんが、「作り捨て」系のシステムという特徴があるのかなぁと感じています。下手に保守をするよりは、作り直した方が、安く、早くできる、ということだと思います。

新聞社様の外部サイトは別ですよね。CMSを基本にし、システムはそんなに頻繁に更新されるものではありません。画面デザインは頻繁に更新すると思いますが。

これは、新しい考え方だと思います。
多くの開発ツールは、「開発」と「保守」をサポートするため、高価リファクタリングの機能をつけていたりします。ですが、保守をしない、という方針を打ち出してしまえば

  • より少ない量のコードで、かける
  • 他人のコードを読む、という非常に高いスキルの作業をしなくて済む
  • 移行時は、横に新システムを立てる場合が多いと思われるため、結果、最高の検証環境が手に入れられ、外部Webサイトなどは、DNS切り替えだけで、サービス無停止を実現できる。
  • 技術リスクもあるが (これについては、製品メーカーを入れて検証すべきです)、最新技術が使える。最新技術は、製品メーカーから、手厚いサポート(いろんな面でです・・・)が受けられる可能性がある

結果、より安く、早く、良いものを作る。という選択肢があるかもしれません。

Microsoft自身、企業内で広くご利用いただいた、Visual Basic 6.0という資産を、Visual Basic .NET (最新バージョンは、VB9.0です)へ移行を促してきました。勿論、相互接続の技術はありますので、ビジネスロジック、データアクセス部分など、かなりの部分は、そのまま.NETから使えます。画面部分については、課題があります。
プログラマーの皆さんのスキル、という大きな資産については、それ程簡単には.NET環境へとは正直いかないでしょう。ですが、コンポーネント/構造化手法の最終形みたいなVB6.0から、オブジェクト指向という、新しいパラダイムへの変換はすでに過去のものですし、LL言語へ行ったとしても、オブジェクト指向を学ばないと、結局、書き方を変えただけ。というメリットの少ない移行になってしまいます。

私はプログラマー/SEの皆さんには、是非Visual Studio触ってもらいたいと思います。LLに負けないくらい、「使い捨て」にも「保守」にも十分耐えられる開発ツールだと思っています。そして、開発言語も実行環境も、そうです。

と書いては見ましたが、おひとりおひとりの好みが言語選択の一番の理由じゃないかなぁと思っています。何故なら、私はC#で書くのが好きなので、Microsoftに在籍していますから。

2007年9月5日
マイクロソフト株式会社
畠山 大有

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中