2005年04月26日
川俣晶の縁側ソフトウェア技術雑記total 7720 count

続・C++の重要性は高まっているか? 中さんの意見にお答えします

Written By: 川俣 晶連絡先

 中の技術日誌ブログにて、中さんより、私が書いたC++の重要性は高まっているか? JavaやC#に見切りを付けて戻る価値があるか?について、ご意見を頂きましたので、以下にお答えさせて頂きます。

全体的な認識について §

 まず最初に書いておく必要があると思うのは、私と中さんのスタンスの違いです。

 たとえば、中さんは「C#をあえて捨てて」という表現を使っていますが、これはC#が十分に実用的かつ将来にわたって安心して使えるプログラム言語として認識しているのだろうと推測します。

 しかし、私から見える世界は、それとは違います。C#について書いて欲しいという原稿依頼はさっぱり来ないし、C#の本も売れません。世間からの注目度は上がらないし、おそらくはC#プログラマの人口も増えていないでしょう。

 むしろ勢いがあるのは、Visual Basicの方です。未だに、極めて多くのVisual Basicプログラマは今後もVisual Basicを使い続けたいと願っているようで、それを目当てにしたビジネスも動いています。必然的に、Visual Basic関係の原稿依頼はちょくちょく発生しています。

 このような状況から、事実上C#は将来の「主流」プログラム言語の一角を構成する可能性はおそらくあり得ないだろう、という認識を持ってから少なくとも2年以上ぐらいは経過しています。

 つまり、私の立場から言えば、将来性のあるメジャーなプログラム言語という候補から、既にC#はとうの昔に落ちているのです。

 (C#よりもC++が優れているから乗り換えるのではなく、先にC#が候補から落ちて、代わりの候補を模索していたということです。念のため)

ぼやき §

 C#を落としたというのは、落としたいから落としたわけではなく、泣く泣く落とさざるを得なかったと言うことです。周囲の状況からそのように選択せざるを得ない状況に追い込まれたのであって、けして自分から望んだわけではありません。

 だってそうでしょう?

 C#はとても完成度が高くて生産性の高いプログラム言語です。

 それを自ら放棄するというのは、あり得ない選択でしょう?

 しかし、プログラム言語の使い勝手は、言語仕様の善し悪しだけで決まるものではありません。より良いプログラム言語を選択できなかったことは、過去の人生の中で何回もありましたが、それがまた繰り返されただけのことです。

未来予測の話ではない §

中さんwrote:

C++の重要性が高まることはないでしょう。

 「ないでしょう」というのは将来の見通しを書いているのだと思いますが。

 私が書いたのは未来の予測の話ではありません。

 既に一部で「C++の重要性が高まっている」という状況について書いているものです。

 そのような状況の規模の大小は議論の対象になり得ますが、少なくともそのような傾向が実在することは事実です。

プログラム言語を置き換える理由 §

中さんwrote:

それがC#であろうが、Javaであろうが、C++から一定の影響力をそげればいいと考えているから置き換えるものでないのです。

 影響力を削ぐ、という言葉の意味はちょっと分かりません。

 私の立場で言えば、プログラム言語を置き換えるのは、基本的には生産性を高めるためです。別の言い方をすれば、最小の費用で最大の効果を得るために、プログラム言語を置き換えるのです。C#よりもC++を使うというのは、将来のリスクを含め、その方が費用に対する効果が大きいであろう、と大ざっぱな推測を立てているということです。

C++は難しいか? §

中さんwrote:

C++のメリットは認めるけど、完全に使いこなすには難しすぎるからなんです。

 その通りです。

 C++が過剰に強力すぎることは、懸念事項だと思っています。

 しかし、他に良い候補がない状況では妥協して受け入れるしかないと考えています。

Visual Basicを採用する意図 §

中さんwrote:

C#をあえて捨ててVisual Basicを採用する意図が私には残念ながら伝わりませんでした。

 C#と比較して、Visual Basicの方がプログラマ人口が圧倒的に多く、おそらくはそれを目当てとした様々な開発支援、サポートビジネスなどが出現すると思います。ライブラリなどは、C#でも使えるかもしれませんが、ソースコードをそのものを対象としたツール等は、VB用をC#に転用できません。

 プログラム言語としての完成度、生産性などはC#の方が優ると思いますが、開発とは言語仕様だけで決まるものではないと思います。

 それに、Visual Basicは劣悪な言語と言うわけではありません。

Windowsでしか動かない? §

中さんwrote:

>しかし、Visual Basicを採用するには、様々なハードルがあります。主にWindowsでしか使用できないであるとか、C/C++/Java/C#といったC系言語に慣れたプログラマには違和感が大きすぎると言った問題です。

現時点でC#もWindowsでしか使えません。

monoを言うのであれば、VBでもほぼ同じです。

 この部分は正確な意図を読み取れていません。

 ただ、おそらく何かの誤解はあると思います。

 C#はWindowsでしか使えないのと言うのは完全な間違いです。

 C#は、以下のような標準として規定されています。

  • ECMA-334 C# Language Specification
  • ISO/IEC 23270:2003 Information technology -- C# Language Specification
  • JIS X 3015 プログラム言語C#

 特定私企業の特定製品に依存していては、国際的、あるいは国家的な標準にはなれません。使用環境がWindowsに限定されないことは、C#の言語仕様が保証していることになります。(そして、C#コンパイラの実装は世の中に多数あります)

 マイクロソフト独自の言語であるVisual Basicには、このような保証はありません。

言語はどうでもいいか? §

中さんwrote:

結論から言うと、言語なんてものはどうでもいいことってことです。どのような仕組みで、何を実現するか。言語が1つや2つ使えたからなんだ、5言語くらい、20テクノロジーくらい使えてやっと一人前。そうじゃありませんか?

 すみません。

 ここも良く分かりません。

 少なくとも、この話題は、多数のプログラム言語の中から、「いくつかの条件」に最も適応する最善の言語を選択するという前提の話です。ですので、「どうでもいい」であるとか、使える言語が多いこととは、直接関係ありません。

 結局のところ、具体的なコードを書くには、1つのプログラム言語を選択しなければなりません。その選択は、人や立場によって変わるために、唯一の正解は無いでしょう。しかし、ある程度条件を絞り込むと、「ああ、これしか選択肢が残らないね」という諦めの境地に辿り着くことがあります。私にとってのC++とは、そういう境地の選択肢です。

補足 §

 http://blogs.users.gr.jp/へのトラックバック送信に問題があるようで、中さん宛のトラックバックがエラーで終了しました。そのため、一時的にこのコンテンツを削除して調査を行っていました。しかし、登録そのものは成功しているらしいので、あらためてコンテンツを置き直します。

 うーん、なぜエラーになるのだろう。結果として返送されるXML文書の解析に失敗しているようなのですが……。他人のサーバとの通信問題は、うかつに試せないので、悩ましさ100倍です。

Facebook

トラックバック一覧

2005年04月27日[日常]議論をメタるFrom: 檜山正幸のキマイラ飼育記

(おそらく今日は、創業(?)以来最大量の書き込みになりそう。) この日記で、ここ何日かメタ・ネタを扱ってみました。ジジイの説教たれたり、「メタる」なんて下品、奇天烈な造語をしたり、バカバカしい調査(?)をしたり。 さて、川俣さんのサイト(http://mag.autumn.org/)でちょっとした議論(川俣さん1、中さん、川俣さん2)を見つけたので、これをメタってみます。 まず、議論のメタ階層を説明しておきます: - レベル0:同じ土俵(前提、状況、問題意識など)で議論に参加する。 - レベル1 ... 続きを読む

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

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

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

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

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

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

管理者: 川俣 晶連絡先

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