Visual Studio .NETの非技術的影響

株式会社ピーデー
川俣 晶
2002/06/27
2002/06/29 更新


技術的な解説は数々あれど

 Visual Studio .NET(以下VS .NET)が発売され、すでに数カ月が経過した。ベータ版から数えれば、軽く1年以上が経過している。この間、VS .NETに関して、いろいろな解説が行われてきたが、その多くは技術的な内容であった。だが、ふと、技術的な内容を語るだけでは、不十分ではないかという気がしてきた。では技術的ではない内容とは何だろうか。それは、主に人間側の心理の問題だと考える。VS .NETの登場は、それを取り巻く人間にも影響を与えているということである。

 一例として筆者の体験を述べよう。VS .NET発売後にしばしば「ドットネットがうんたらかんたら」と口にする者達をしばしば見かけるようになった。批判的な意見であることも多い。しかし、いざ、「具体的に、あなたのいう『ドットネット』とは、.NET Frameworkのことなのか、Visual Studio .NETのことなのか、それともWindows .NET Serverのことなのか、はたまたVisual Basic .NETのことか、あるいはVF.NET*1なのか、どれかはっきしてくれ」というと、ちゃんと説明できない場合が多い。当然、これらは技術的に別個のもの(相互に包含するものはあるが)なので、真面目に技術的問題を議論する気なら、これらのキーワードの相違は適切に把握されていなければならない。もし、技術的な状況把握が不十分なまま「ドットネットは……」と語ることに意味があるとすれば、それは技術的な問題ではなく、人間の心理の問題ということになる。

*1 Virtua Fighter 4(対戦型格闘ゲーム)の登場キャクターを育成するというネットワーク・ゲーム    
http://www.sega-am2.co.jp/vf.net/index.html

筆者の心理に与えた影響

 VS .NETの出現は、筆者の心理にも影響を与えただろうか? 答はイエスである。明らかに、Visual Studio 6.0(以下VS 6)を使っていた時代と気持ちの持ちようも、それによって引き起こされる行動も、明らかに変化した。

 具体的に、いったい何が変わったのか。最も分かりやすいのは、記述するコード量が圧倒的に増えたことだろう。仕事上でも、プライベートでも、記述するコード量が何倍にも増えた。しかし、VS 6の時代にプログラミングをしていなかったわけでもないし、特に避けていたわけでもない。それなのに、記述するコード量が増えたのは、主に心理的な側面の影響が大きい。

 例えば、ふと何かのアイデアが頭に浮かんだとしよう。そして、そのアイデアを実現するプログラムは、うまく作れば、数時間でできそうだと予測できたとしよう。VS 6の時代なら、次に、具体的にどのプログラム言語を使えば、最も手軽に作れるかを考えることになる。この機能はVisual Basicのあのステートメントを使えば楽そうだとか、Javaのあのクラスを使えばすぐ実現できる、といったことを頭の中で考えてみる。そして、プログラム言語を決定してコーディングを始めるわけだが、書いている途中で、ほかのプログラム言語なら簡単にできるが、そのプログラム言語では面倒なプログラミングを要求される場面に遭遇し、後悔したり、うんざりしたりする。そんな経験を何度も積むと、だんだんと、心理的にプログラミングから距離を置くようになってしまった。

 ところが、VS 6がVS .NETに変わると、この状況が逆転してしまった。まず、プログラム言語の選択というプロセスが消滅した。もちろん、VS .NETでもプログラム言語を選択可能なのだが、プログラム言語間の機能の相違が非常に少なくなった結果、どのプログラム言語を使えば楽に書けるか、考えることに意味がなくなってしまった。よほど特殊な事情でもない限り、一番洗練されているC#を使えば、まず問題になることはない。また、クラス・ライブラリは、従来のVisual Basic的な機能やJava的な機能が網羅されているので、ほかのプログラム言語なら……と途中で後悔することもなくなった。例えば、C#で書いていて、Visual Basic .NETなら簡単に書けるのに、と思うようなことは起こらない(実はその気になれば、C#からVisual Basic .NETの主要な関数は呼べてしまう。関連記事「C#プログラミングTIPS:C#からVisual Basicの関数を使う」)。

 このような状況が、筆者の心理に与えた影響は絶大である。VS 6時代にはアイデア→使用する言語の検討→コーディングという流れであったものが、VS .NETでは検討というプロセスが消滅して、アイデア→コーディングとダイレクトにつながってしまったのである。それにより、もし言語選択を間違ってしまったら、という心理的な負担は消滅してマイナスの影響が消えた。それだけでなく、プラスの影響もある。アイデアを即座にコードとして表現して実行できることにより、自信のないアイデアでも即座に試してみようという気になるようになった。言い換えれば、書いてみて駄目でも大した心理的ダメージにならないので、あやふやなアイデアでも試してみようという気になったのである。

 そうして、実際に何でもソース・コードに書いてみると、頭で何時間掛けて考えても分からないことが、いろいろ分かるようになってくる。「論よりソース」である。考えるだけの人よりも、実際にコードを書いて検証する人の方が、ずっと確実なことをいえるようになるものである。さらに、コードを書いているうちに、主要な機能やコーディング・パターンが頭に入り、身体に染み込み、資料を引いたり、悩んだりしないで即座に記述できるようになる。すると、プログラミングの負担(疲労)が減る。そうなるとさらに気軽にプログラムが書けるようになり、この好循環が、どんどんプログラミングに対する心理的な抵抗感を減らしてしまったのである。いまや、筆者は、クラス・ライブラリのAPIリファレンスの記述が不十分だったりすると、即座に検証プログラムを1本書いてしまうほど、新しいプログラムに取り組む心理的ハードルが低くなっている。また、しばしば使い捨てプログラムもC#で書く。以前なら複雑なバッチで何とかしようとした対象でも、いまはC#で書いてしまう。その方が楽だからだ。そして、何でもC#で書いているとますますC#に慣れて、楽に書けるようになる。そうやって書かれたソースが蓄積されていくと、別のところで転用できるケースが出てきて、ますますコーディングの手間が減る。これらのすべてがプラス方向に作用しているのである。

しかし問題もある

 このように、筆者のコーディング量は、VS 6時代の数倍にまで跳ね上がったが、残念ながら現在は頭打ち状態である。その理由は簡単で、時間が足りないのだ。暇のあった学生時代が懐かしいところだが、こればかりはやむを得ない。あれが書けると分かっていながら、棚上げになっているプログラムがいくつもある。

 別の問題は、周囲の人と話が噛み合わないケースが増えてきたことだ。まだまだ世間一般のJava信仰は根強く、筆者がまだJavaを主力言語として使っているものだと思い込んで話しかけてくる人もいる。Javaが当たり前という人たちに囲まれると、会話の中で浮いてしまう場合もある。また、生まれたばかりのC#と、長い実績あるJavaでは、利用できる外部ライブラリの厚みに差があるのも事実である。Javaなら、あれもこれも使えて便利なのに、と思うこともある。また、過去の実績という点ではC++にも分があるし、Visual Basicには根強い人気を背景とする仲間が多い。このようにほかのさまざまなプログラム言語にも、C#にはない特徴を持つものが多い。そのような点が、心理的なマイナス影響を筆者に与えていることも事実である。

 しかし、C#をやめて過去の言語に戻る、あるいはC#とほかの言語を混用したいかといえばノーである。技術面での理由もあるが、心理面での理由もある。特定の機能に限定すれば、C#より優れる言語はいくらでも存在する。だが、それらの言語をどんな分野に使っても長所を発揮できるとは限らない。それに対して、C#のよいところは、長所と短所のバラツキが小さいことである。つまり、どんなアプリケーション・ソフトを記述するために使っても、100点満点で80点までは行けそうだ、と信じることができる。筆者は、ギャンブラーではないので、100点を取れるが失敗すると0点になる言語よりも、コンスタントに80点を取れる言語の方が好ましく感じられるのである。心理的に何か不安を抱え込んでいると、自然に生産性が落ちたりバグが増えたりするものだが、そういう不安を減らして、生産性を向上させることが、筆者にとってC#の長所である。

 また、VS .NETという存在も、同シリーズを長年使ってきた信頼から、コンスタントに80点の成果を期待してよい開発環境だと感じている。ほかに、もっと優れた開発環境が存在するかもしれないが、手堅く80点の水準を確保するという意味では、VS .NETも悪くない選択だと思っている。何より、過去の経験から水準が予測できることが、心理的な不安感を取り除いてありがたい。End of Article


川俣 晶(かわまた あきら)
 株式会社ピーデー代表取締役、日本XMLユーザー・グループ代表、日本規格協会 次世代コンテンツの標準化に関する調査研究委員会 委員、日本規格協会XML関連標準化調査研究委員会 委員。1964年東京生まれ。東京農工大化学工学科卒。学生時代はENIXと契約して、ドラゴンクエスト2のMSXへの移植などの仕事を行う。卒業後はマイクロソフト株式会社に入社、Microsoft Windows 2.1〜3.0の日本語化に従事。退職後に株式会社ピーデーの代表取締役に就任し、ソフトウェア開発業を始めるとともに、パソコン雑誌などに技術解説などを執筆。Windows NT、Linux、FreeBSD、Java、XML、C#などの先進性をいち早く見抜き、率先して取り組んできている。代表的な著書は『パソコンにおける日本語処理/文字コードハンドブック』(技術評論社)。最近の代表作ソフトは、携帯用ゲーム機WonderSwanの一般向け開発キットであるWonderWitch用のプログラム言語『ワンべぇ』(小型BASICインタプリタ)。

更新履歴
【2002/06/29】文中に登場した「VF.NET」について、編集部にて追加した脚注の説明が「Virtua Fighter 4(対戦型格闘ゲーム)のネットワーク・サービス」とされていましたが、これは「Virtua Fighter 4(対戦型格闘ゲーム)の登場キャクターを育成するというネットワーク・ゲーム」の誤りでした。お詫びして訂正させていただきます。

 「Insider.NET - Opinion」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間