2004年04月25日
川俣晶の縁側ソフトウェア技術雑記total 1967 count

フレームワークが欲しい、汎用記述言語が欲しい、もっと手間を減らしたい!

Written By: 川俣 晶連絡先

 最近、特に強く思うことは、ここ数年間やって来たプログラミングスタイルが(個人的に)通用しなくなりつつある、ということです。

 それはどういうことかというと。

 小さく目的に合わせて贅肉を削ぎ落としたプログラムが最善であるという考え方で対処出来なくなりつつあると言うことです。

これまではモノリシックな構造だった §

 たとえば、りすと亭とMagSite1では、ほとんどコードが共有されていません。共有できる部分が全く無いとは言いませんが、それでも、個々のソフトのソースコードが最も重複無くコンパクトな状態であることが良いという考えでやって来ました。

 その結果として、一部の小さなライブラリ(NetstedHtmlWrierなど)は独立して開発され、双方で利用されているものの、あくまで基本は分離独立しています。

 これは、裏を返すと、個々のソフトが1体となったモノリシックな構造になっていて、汎用モジュールの組み合わせという形にはなっていないことを意味します。(厳密に言えば、りすと亭の下位モジュールは、分離独立して他ソフトでも使えるようになっていますが、そういう使い方はほとんど行われていません)

 安全性、信頼性、ソースコードの分かりやすさなどの観点からは、贅肉を削ぎ落としたコンパクトなモノリシック構造は悪くないと思います。また、汎用モジュールは、開発の難しさが段違いに大きなものになります。特に必要が無ければ、そのようなものには手を出さない方が楽だと言えます。

 しかし、扱う問題の性質によっては、そうとも言えなくなります。

携帯対応という問題 §

 とりあえず目の前にある問題は携帯電話への対応です。

 携帯電話に対応すると言うことは、直接的には(X)HTMLコンテンツをデバイスごとに変化させて送信しなければならないことを意味します。

 このような機能性は、ある程度汎用性があって、個々のソフトとは独立して開発して用意する価値があります。そして、それは、それなりの規模になることが予想されます。それはフレームワークと呼んで良いものになるでしょう。

 そういうフレームワークを前提に開発すると言うことは、小さなモノリシックな世界にはもういられない、と言うことを意味します。

 そして、フレームワークの開発の難度は高く、成功すれば効果は大きいものの、リスクも大きいものになります。

 更にもう1つ、コンテンツの汎用記述言語というものが要求されてきます。つまり、様々なデバイスに変換しうる汎用的なコンテンツを記述する言語があって、そこから、デバイスごとに変換を行うような構造にしたいと思っています。言い換えれば、フレームワークと、個々のソフトを、この言語によって結び付ける構造を作ると言うことです。

 これは、かなり難しい話です。たとえば、XMLなどでは、抽象的な文書を用意して、それをスタイルシート変換で具体的な文書に変換することは良く行われます。しかし、抽象的な文書は、個々の用途に応じて言語が設計されるのが普通です。しかし、りすと亭やMagSite1は、使用される用途が限定されません。つまり、汎用であることが要求されます。

 汎用のコンテンツ記述言語としてはXHTMLがあって、それを使うという選択が1つあります。しかし、携帯電話とPCを意識すると、これでは力不足なのです。両者は表示能力が圧倒的に違うため、そもそも1ページに盛り込むデータ量を変えねばなりません。XHTMLでは、基本的に、1ページに含まれる内容が1文書ファイルとイコールになります。そのような硬直的な構造では、今の私のニーズには耐えません。おそらく、XHTMLのかなりの部分はそのまま利用できるだろうと予測しています。しかし、それに足りない機能をプラスアルファしていく必要が予想されます。

問題は手間と時間 §

 問題は手間と時間です。

 といっても、フレームワークや汎用言語を造る手間や時間が問題であると言っているわけではありません。むしろ、フレームワークや汎用言語を造らねば、手間や時間が現実的に対処可能な範囲を逸脱してしまうことが問題であると言えます。

 その点で、フレームワークや汎用言語こそが、遠回りに見えて近道であると考えます。ただし、ハイリスクハイリターンの近道です。

C#に集中するメリットの現れ §

 このように、「フレームワークが欲しい、汎用記述言語が欲しい、もっと手間を減らしたい!」と叫ぶことができるのは、実はC#に集中するという選択によって実現したメリットだと思います。資源を1つのプログラム言語に集中的に投入することによって、開発のための基礎的な基盤がしっかりしてきました。その基盤があればこそ、リスクの大きなフレームワークや汎用言語に取り組めるというものです。

 その点での懸念は、はたしてこれからもC#を安心して使えるのか、熱血応援しているVB.NETに乗り換えるという成り行きはあり得るのか、といったあたりになりますが、まあ未来のことは不明であると言うことで、当面はできることをやれれば良いと思っています。

 (しかし、その前に、片づけるべき作業が山のように……)

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2004年
05月
04日
IISのWebサイト一覧を出力するサンプルソース (ADSI経由)
3days 0 count
total 3528 count
【技術雑記】の前のコンテンツ
2004年
04月
12日
.NET Frameworkのクラスライブラリでディレクトリの深い階層を作成する方法
3days 0 count
total 8269 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20040425173850
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.33 (Alpha-Test) Copyright (c) 2004-2018 Pie Dey.Co.,Ltd.