- PR -

.NETソフト配布問題

投稿者投稿内容
sanrai
会議室デビュー日: 2002/02/08
投稿数: 14
投稿日時: 2002-02-08 12:08
現在配布されている.NETベータ版で製作したソフトは、配布を禁じられているのはご存知の通りです。しかし、.NETが正式に発売された後、いかにして自分の作ったソフトを配布するかというのは大きな問題になりそうな気がします。

.NETで作られたソフトは、CLR(Common Language Runtime)上で動くわけですが、CLRその物がどの位の大きさを持つのか気にかかるところです。従来のVBで開発したソフトは、巨大な「VBランタイム」配布が必要なことは今までに経験したことと思われます。

日経ソフトウエアが、InstallShield社のCEOにインタビューした記事があります。
http://itpro.nikkeibp.co.jp/free/NSW/NEWS/20011004/1/print.shtml

この記事で、Viresh Bhatia CEOは、次のように言っています。
「CLRは約12メガバイトと容量が大きいのでアプリケーションと共に配布するのは難しい。」

12メガバイトものランタイムを必要とするソフトでは、FDで配布することはできなくなります。CD-Rにでも焼いて配布するしか手はないのでしょうか。たかだか数百KB・数MBののプログラムを配布するのに、ユーザーに対して12メガバイトものランタイムのインストールを要求するのでは、インストールする意欲を無くすと思います。

しかも、InstallShieldは、ランタイム配布に関する面倒は見ず、MicrosoftがサービスパックをOS中に組み込むことに期待しており、事実上のお手上げ状態です。

「(CLRは)Windows 2000/XPのサービスパックに入れるというシナリオが有力だ。ただ,それが本当に最善の方法であるかどうかはわからない。ユーザーが自分の使っているコンピュータにどのサービスパックが当たっているかを気にしているとは限らないからだ。」

普通にパソコンを使っている人はサービスパックなど気にしていないと思うのですが(プログラマーやパソコンマニアは別として)。しかも、CLRはWindows9X系のサポートはしないようです。そうなると、.NETで作ったソフトはWindows2000/XPを使用する限られたユーザーにしか配布できないこととなります。InstallShield社CEOも、不安感を拭いきれない様子です。

.NETソフト配布に関する皆様の考えをお聞かせください。
NothingBut.NETFX
大ベテラン
会議室デビュー日: 2001/09/13
投稿数: 102
投稿日時: 2002-02-08 12:54
引用:

sanraiさんの書き込み (2002-02-08 12:08) より:
現在配布されている.NETベータ版で製作したソフトは、配布を禁じられているのはご存知の通りです。


必ずしもそうでなかったように記憶しています。Beta2で開発したソフトウェアは特定の条件下でデプロイ可能だったはずです。

引用:

.NETで作られたソフトは、CLR(Common Language Runtime)上で動くわけですが、CLRその物がどの位の大きさを持つのか気にかかるところです。



再配布可能.NET Frameworkのサイズは約21MBです。Microsoft .NET Framework Redistributable

引用:

従来のVBで開発したソフトは、巨大な「VBランタイム」配布が必要なことは今までに経験したことと思われます。


そして、私たちは今、OSにそのランタイムが含まれているという環境も経験しています。つまり、「時が解決した」わけです。

引用:

12メガバイトものランタイムを必要とするソフトでは、FDで配布することはできなくなります。CD-Rにでも焼いて配布するしか手はないのでしょうか。たかだか数百KB・数MBののプログラムを配布するのに、ユーザーに対して12メガバイトものランタイムのインストールを要求するのでは、インストールする意欲を無くすと思います。


私はそうは思いません。たかだか12MBに躊躇するユーザーが、そもそも.NET Frameworkのメリットを理解するとは思えませんし。そのようなユーザーに対してソフトウェアを開発するのであれば、(究極的には)アセンブラを選ぶ以外にないと思われます。なんらかの抽象化が施される環境では、サイズは犠牲になるものだからです。

ちなみに私も仕事でソフトウェアを開発・納品していますが、現在のようにCD-ROMとCD-Rが普及した環境では、CD-Rで納品するのが普通です。いまどきFDでしか納品させてくれないところがある(そしてそのユーザーが.NET Frameworkによる開発を認めてくれる)とは思えません。

引用:

しかも、CLRはWindows9X系のサポートはしないようです。そうなると、.NETで作ったソフトはWindows2000/XPを使用する限られたユーザーにしか配布できないこととなります。



CLRはWindows 98以上で動作します。CLRを用いた開発は、NT4以上でないとできません。上記URLからダウンロードできるREDISTはWindows 98/MEをサポートしています。

引用:

.NETソフト配布に関する皆様の考えをお聞かせください。



まず、仕組みとして、開発したソフトウェアといっしょに.NET Frameworkを配布し、自動インストールさせることが可能です。Microsoft .NET Framework Setup.exe Bootstrapper Sample

また、これは単に私の予想ですが(どこかで見たような気もしますが)、サービスパックというか、NT4のオプションパックのような感じで、現行のプラットフォームに対する配布物がMSから提供されるものと思っています。さらに、今後出荷されるWindows XXには、すでにCLRがインストール済みということになります。

より根本的な問題としては、sanraiさんがご指摘のとおり、太古のVBの昔から、この手の問題は存在しました。そしてそれはJavaでも同様です。C++でも同様です。

開発プラットフォームが、CPU、メモリ、その他デバイスを抽象化するにしたがって、この手の問題が出てきたものと認識しています。ユーザーとデベロッパーは、よりネイティブな環境に対してプログラムを行う柔軟性よりも、より抽象化された層に対してプログラムを行う生産性を重視して、今日のJavaにまでいたっています。

したがって、この配布の問題は、.NET Frameworkうんぬんの問題ではなく、生産性と柔軟性のどちらを選ぶのか?という哲学の問題なのです。今日のVBとJavaの隆盛を見れば、私たちがどちらを選んだのか(そして、結果的にユーザーにどちらを選ばせたのか)は明らかです。ユーザーには選択肢は掲示されなかったように見えるかもしれませんが、「早く、安く」と要求することで、間接的にそれを選択したのです。

「だって今すでにVBランタイムとJREがOSに入っているんだから(除XP)、それ以上何を抽象化する必要があるんだ!」というご意見ならごもっともだと思います。そして、それならそれでVB6で開発を続行しつづけるオプションもMSは提供しています(少なくとも今は)。ランタイムの配布とインストールの手間と、開発生産性とを天秤にかけて、どちらが重いかで選択できる問題なのだと思っています。
autumn
大ベテラン
会議室デビュー日: 2001/07/27
投稿数: 215
投稿日時: 2002-02-08 13:16
 調べてみたら

2002/01/14 18:30 21,823,560 dotnetfx.exe

 ということなので、約21MBということで考えた方が良いと思います。
 Adobe Acrobat Readerのセットアップファイル一式は約9MB、DirectX 8.1は7MB以上あることを考えれば、ランタイムとしては巨大と言えますね。
 ただ、
引用:
FDで配布することはできなくなります。CD-Rにでも焼いて配布するしか手はないのでしょうか。

 という意見はちょっと時代錯誤のような気もします。今やCD-Rは極めて安価で大量に消費されるメディアです。小さなデータでもCD-Rに焼くのは、今やよくあることではありませんか?
引用:
CLRはWindows9X系のサポートはしない

 というのは良く分かりません。http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/dotnetfxref.aspによれば98やMeも対象にしています。

_________________
sanrai
会議室デビュー日: 2002/02/08
投稿数: 14
投稿日時: 2002-02-08 14:24
21MB・・・かなり大きいですね。OS内に取り込まれるのを待つか、CD-Rなどの「物」として配布するのがNothingBut.NETFWさん・autumnさんのおっしゃる通り賢明な方法だと思っています。

まして、供給先が企業であれば心配しなくても良いでしょう。

問題は、企業でなく、一般ユーザー向けにソフトを配布するにはどうするとよいか気にかかるのです。VBのおかげで、「プログラミング」が、一部のパソコンマニア・エンジニアのみの特権でなくなっています。一般のパソコンユーザーもプログラミングに手を伸ばし始めています。個人のホームページを通じ、または、Vectorのように、多くの「フリーソフト」「シェアウェア」作者さんがインターネットダウンロード(「物」ではない)を媒介としてソフトを流通させているという現実もあります。

もし、巨大なランタイムのダウンロードを必要とするソフトを作って、「CLRランタイム必須」と注意書きしたところで、21MBものランタイムをユーザーがダウンロードしてくれるのか疑問ですし、アナログモデムやISDN利用者から、相当のひんしゅくを買うことだと思うのです。ADSLや光ファイバーが一般家庭に普及するのはもう少し先のお話です。

それ以前に、一般ユーザーに対し「CLRランタイム必須」などと.NET専門用語をぶつけても何のことだか理解してもらえないという心配もあります。プログラマー側の利点である「柔軟性・生産性」を強調したところで、使う側の利点が置き去りにされないか考える必要もあるでしょう。

いくら素晴らしいソフトを作っても、できる限り多くのユーザーに気持ちよく使ってもらえなくては意味がないでしょう。配布問題を考えることは、ユーザーにソフトを快適に使ってもらう上で重要な入り口だと思います。だからこそ、InstallShield社もランタイム配布に心配を隠せないのです。

対応OSについては私の誤解でした。「.NET対応のOS」が強調されたのがWindows2000/XPだった記憶があるため、.NETのランタイムは、Windows2000/XP系でしか動作しないものと思ったのです。
NothingBut.NETFX
大ベテラン
会議室デビュー日: 2001/09/13
投稿数: 102
投稿日時: 2002-02-08 14:49
引用:

sanraiさんの書き込み (2002-02-08 14:24) より:
問題は、企業でなく、一般ユーザー向けにソフトを配布するにはどうするとよいか気にかかるのです。
<<中略>>
もし、巨大なランタイムのダウンロードを必要とするソフトを作って、「CLRランタイム必須」と注意書きしたところで、21MBものランタイムをユーザーがダウンロードしてくれるのか疑問ですし、アナログモデムやISDN利用者から、相当のひんしゅくを買うことだと思うのです。ADSLや光ファイバーが一般家庭に普及するのはもう少し先のお話です。

それ以前に、一般ユーザーに対し「CLRランタイム必須」などと.NET専門用語をぶつけても何のことだか理解してもらえないという心配もあります。プログラマー側の利点である「柔軟性・生産性」を強調したところで、使う側の利点が置き去りにされないか考える必要もあるでしょう。



生産性を強調したわけではありません。生産性を重視するなら、抽象化層の導入は避けられない、と言っています。それを重視しないなら、ほかに方法があるわけです。
さらに言うなら、私の文章に書いたとおり、生産性はプログラマだけの利点ではないのです。むしろユーザーが、プログラマに、サイズや配布の手間よりも生産性の優先を強制したのです。

たとえば、フリー/シェアウェアで、VBを使って開発されているものが出てきたのは最近です。それまでは、sanraiさんと同じ心配をした作者が、VC++などのランタイム配布を必要としない
環境での開発をしていました。VC++でさえ、MFCの問題があるので避けていた人もいます。

「使う側の利点を置き去り」にするかどうかは個々の開発者の判断です。それは開発プラットフォームとして何を使うのが「自分(と自分を相手にしてくれるユーザー)に対して」最良の選択であるかどうかという判断であって、ユニバーサルにこれが正解!というものではありません。21MBのランタイムを強制したら、それがイコール「使う側の利点を置き去り」にしているわけではありません。

引用:

いくら素晴らしいソフトを作っても、できる限り多くのユーザーに気持ちよく使ってもらえなくては意味がないでしょう。



そうです。そして、ユーザーの要求は単に配布サイズが小さいことだけではありません。実行の速度、バグFIXの頻度と速度、機能、セキュリティ...。さまざまな要因でユーザーは「気持ちいい/悪い」と思ってしまいます。サイズが小さいの*も*いいことでしょうが、サイズが小さければ良いわけではないのです。ことはそれほど単純ではありません。

誤解のないように言っておきますが、私は「だからみんなが.NET Frameworkで作るべきだ!サイズなんか気にすんな!」とか言ってるわけではありません。サイズが重要なら、CLRは選択できないかもしれませんし、そうでないなら選択できるかも知れない、ただそれだけです。

ただ、.NET Frameworkを選択しておきながら、「ランタイムを配布しなければならないのはおかしい。ランタイムのサイズがデカいのはおかしい。なんとかしろ。」というのは、そりゃ無理だ、ってことが言いたいのです。ランタイムが重要な役割をする環境を選んでおきながらそりゃあないでしょう、っとことです。
sanrai
会議室デビュー日: 2002/02/08
投稿数: 14
投稿日時: 2002-02-08 16:55
引用:

「使う側の利点を置き去り」にするかどうかは個々の開発者の判断です。それは開発プラットフォームとして何を使うのが「自分(と自分を相手にしてくれるユーザー)に対して」最良の選択であるかどうかという判断であって、ユニバーサルにこれが正解!というものではありません。



なるほど・・・ユーザーの環境・重視するものによって、.NET対応ソフトを作るかどうかどうか考えなくてはいけないですね。.NETにしたくなければVC++のMFCやATLがあるわけですし。

ただし、.NET対応ソフトが出回るにつれて、.NETについて何も知らないユーザーから、「何で、お前のソフトを使うためだけに21MBものランタイムをダウンロードしないといけないだ!?」とクレームを付けられることが多くなってくる気がします。

このようなユーザーに対し、ソフト製作者はどう説得すべきか。.NETが完全に浸透するまで、しばらくの間は考えておく必要があるかと思います。
autumn
大ベテラン
会議室デビュー日: 2001/07/27
投稿数: 215
投稿日時: 2002-02-09 13:23
引用:

sanraiさんの書き込み (2002-02-08 16:55) より:
このようなユーザーに対し、ソフト製作者はどう説得すべきか。.NETが完全に浸透するまで、しばらくの間は考えておく必要があるかと思います。


 とりあえず、こんな方法は考えられますね。
・ 昔Internet Explorerでやったように、あらゆるパソコン雑誌に収録していただく
・ 無料でCD-ROMを送付するサービスをMSにやっていただく
 全て他力本願ですが。
 まあ、これも過渡期の問題で、2〜3年後のために今からプログラムを書き始めるのだと思うなら、悩む必用もない話ですね。

_________________
sanrai
会議室デビュー日: 2002/02/08
投稿数: 14
投稿日時: 2002-02-09 14:13
引用:

 とりあえず、こんな方法は考えられますね。
・ 昔Internet Explorerでやったように、あらゆるパソコン雑誌に収録していただく
・ 無料でCD-ROMを送付するサービスをMSにやっていただく



パソコン雑誌への収録については、Internet Explorer 5.5 SP2以降、Microsoftが拒絶しているため、行われないでしょう。私の愛読雑誌「DOS/V Power Report」も、Microsoft関連のソフト収録を打ち切る流れで進んでいます。

Microsoftは、アップデートファイルの配布形態をWindows Updateや、CD-ROM送付サービスに統一したいと考えているような気がします。

スキルアップ/キャリアアップ(JOB@IT)