プログラミング環境の乗り換えは簡単か

John Carrol

2005-05-13 19:06

 先日のブログのなかで、プログラミングの環境を変えること(たとえば、UnixからWindowsへ)は本質的に難しいと、私は記した。これに対して、一部の読者から、プログラミングというものは普遍的なものであり、ある程度のスキルをもつプログラマだったら、道路を渡るのと同じくらい簡単に別の開発環境に移行できるはずだという意見が寄せられた。それができないのだったらそのプログラマは無能であり、すぐクビにすべきだ(と言ってきた人も実際にいる)。

 これは馬鹿げた意見だ。オープンソース陣営とMicrosoft陣営のどちらに属していようが、ある程度の期間プログラミングをしたことのある人ならすぐに分かるはずだ。だが、人はそれぞれ自分の色眼鏡を通してしか物事を見ることができない。そのため、なぜ上述のような意見が馬鹿げているのかを理解することは難しいかもしれない。このような場合に物事を分かりやすく整理する一番の方法は、例え話を使うことだ。

 Richard Stallmanが書いた記事に対して、私がケーキの例え話を使いながら反論したことがある。そのとき、ある人物が、例え話は頭を使おうとしない怠け者が利用するプレゼンテーションの方法であって、Richard Stallmanほどの人間は滅多に例え話をしないと言った。それはそれで結構だ。でも、例え話を使うと、話の枠組みが明確になって、同じことを別の角度から見られるようになり、問題をよりよく理解するうえで役に立つと私は考える。

 ミュージシャンについて考えてみよう。例えば、Joe Keyboardというピアノの達人がいたとする。彼はピアノを弾くのが非常に上手く、演奏の腕が認められて彼のアルバムはたくさん売れるようになった。でも彼の友人の中に、ギターを演奏した方が熱狂的なファンがつきやすいので、ギターに乗り換えたほうが良いと勧める者がいたとしよう。

 確かに、Joe Keyboardには音楽の才能がある。そして、楽譜を読み書きする能力は、ピアノ演奏でもギター演奏でも求められる。だからといって、Joeがライブハウスに行って突然Eddie Van Halenのようにギターを弾きまくることができるのかというと、そういうわけではない。ピアノと同じで、ギターを上手に弾けるようになるまでには時間がかかる。彼はピアノをマスターすることを選んでその達人になったわけである。いきなりギターも同じように上手に弾けるようになるとは限らない。

 専門能力を身に付けるには時間がかかる。Linuxの専門家だからといって、同時にWindowsの専門家になれるわけではない。その逆もしかりだ。それがこの業界の現実だ。ある程度の腕前になりたいと思ったら、専門領域に特化しなければならない。そういうことから考えると、Windowsの世界からLinuxの世界に移ろうとするのはとても難しいのだ。

 というわけで、Linuxの世界の連中がWindowsの技術をもっと取り入れようとしない限り、LinuxはWindowsを脅かす存在にはならないと私は今でも思う。「QtとGTKはクロスプラットフォームだ」と言っているだけではどうにもならない。Windowsの開発者はQtもGTKも(その意味ではJavaも)使わないのだから、QtとGTKでWindowsプログラムを書けると喜んでいても意味がない。一方で、Windows開発者は.NETだったら使っている。だから、競合するAPIの利点を自慢するよりも、彼らの使う技術に歩み寄る姿勢を見せる方が、彼らを引きつけるやすいように見える。

 これはあくまでも私個人の意見だ。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    セキュリティ対策で注目の「OSINT」、自組織の防御に役立つ基礎知識と活用方法を解説

  2. セキュリティ

    攻撃者は侵入ではなく“ログイン”する、エンドポイントとアイデンティティセキュリティを連携すべき理由

  3. モバイル

    目前の「Windows 10」サポート終了、「Windows 11」への移行負担を解消する最適解とは

  4. セキュリティ

    こんなにあった!従来型SIEMが抱える課題──次世代SIEMに必須の“8つの要件”とは?

  5. ビジネスアプリケーション

    データリーダーが知っておくべき、AI活用の投資対効果を高める「実効性のある戦略策定」の進め方

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]