この世でプログラミング ツールほどプログラマーの心を動かすものはありません。 VC、DELPHI、JAVA...これらの輝かしい名前は、プログラマーの生活を占拠するだけでなく、ある種の信念になっているようです。しかし、新世紀の到来とともに、これらの信念は再び大きな課題に直面しました。裁判官やハッカーたちに疲れ果て、悩まされていたライオンである Microsoft は、王座を守り続けることを誓い、最善を尽くし、特別なスキルである .NET 戦略を思いつきました。 .NET の中核となる開発言語として、C# は自然に浮上しました。プログラマーは誰に従うべきか、苦しい選択を迫られています。答えを見つけるには、いくつかの比較と予測を行う必要があります。
技術的以外の要素をすべて脇に置くと、C# は間違いなく地球上でこれまでに作成された最高のプログラミング言語です。これには、ソフトウェア開発とソフトウェア エンジニアリングの研究における最新の成果がほぼすべて含まれています。オブジェクト指向、型、コンポーネント テクノロジ、自動メモリ管理、クロスプラットフォーム例外処理、バージョン管理、コード セキュリティ管理...これらすべての機能は、他の言語では見つけることができません。多くの人が気づいているように、上記の機能を列挙すると、人々は常に JAVA を思い浮かべますが、C# はさらに進化しています。しかし実際には、技術的以外の要因が製品の将来を決定することがよくあります。特にコンピュータ ソフトウェアの歴史においては、OS/2、Mac OS、UNIX など、技術的に優れた製品はすべてその美しさに敗れてきました。 Windowsの頬の下。しかし今回、Microsoft の役割は素手の革命家からいじめの年老いた家主に変わったようだ。もし状況が本当に変わったら、この C# の子供は間違った子供に生まれるのではないだろうか?結局のところ、痩せたラクダは馬よりも大きいので、C# が国際標準になると、かゆいところに手が届くかどうかはわかりません。他のプラットフォームに移植します。そうなるとJAVAは困りますね。 JAVA のユーザーは主にネットワーク サービスの開発者と組み込みデバイス ソフトウェアの開発者であるため、ネットワーク サービスに関しては、組み込みデバイス ソフトウェアは C# の出番ではありません。C# のジャストインタイム コンパイルとローカル コード キャッシュ ソリューションが役に立ちます。 JAVA 仮想マシンよりも強力であり、パフォーマンス上の絶対的な利点があります。さらに、C# が C++ と同様に公的標準になれば、ソフトウェア開発者は JAVA のライセンス料を節約でき、マイクロソフトの奴隷になることを心配する必要がなくなります。同じ問題です。これはまさに Microsoft が求めているものかもしれません。
ネットワーク サービス分野における C# と JAVA の競争を、将来の制空権をめぐる競争に喩えると、C# と従来の汎用高速開発ツール (VB、DELPHI など) との競争は圧勝するでしょう。そして白兵戦。おそらく最も悲惨なプログラマーは、Microsoft において、VB は、その栄光をすべて失っただけでなく、問題を抱えているクリントンのようなものです。考えてみてください。VB6 で書かれたプロジェクトは、VB7 に転送する前に、変換ツールを使用して .NET ベースのコードに変換する必要がありますが、これはほとんど認識できません。 VB7は.NETに合わせて策定された共通言語仕様(CLS)に準拠しているため、本来C++やJAVAなどの言語でしか利用できなかったほぼすべての機能が追加されていますが、構文はオリジナルと互換性があります。古い VB6 プロジェクトの変換されたコードを VB7 で見るのが初めての場合は、心に注意してください。だから、引退するなんて言わないで頑張ってください。 DELPHI の状況はそれほど良くはありません。本来の特別なスキルはアプリケーションを迅速かつ適切に作成することですが、最新の VS.NET Beta 1 を見ると、多数のプロパティ リストやコンポーネントが非常に身近に感じられるでしょう。チーフデザイナーですらサポートできないのですか?
実際、プログラミング言語の中での真の覇者は長年にわたって C++ であり、すべてのオペレーティング システムとほとんどの商用ソフトウェアは主要な開発言語として C++ を使用しています。 JAVA プログラマの大多数は C++ の愛好家でもあり、PHP の成功も C++ に似た構文によるものです。オペレーティング システム、デバイス ドライバー、ビデオ ゲームなどの分野では、C++ が今後も長期間にわたって支配的な地位を占めることになり、最も多くのアプリケーション ソフトウェアの開発においては、C# が C++ に取って代わる可能性があります。まず、C# は JAVA と同様に C++ の構文の一部をコピーするだけなので、多くの C++ プログラマーにとって習得が容易であり、初心者にとっては C++ よりも簡単です。次に、Windows は現在独占プラットフォームであり、Windows アプリケーションを開発する場合、当然 Microsoft の声を無視することはできません。最も重要なことは、C# を使用してアプリケーション ソフトウェアを開発する場合、C++ に比べて開発サイクルを大幅に短縮できると同時に、ユーザー インターフェイス コードを除いてオリジナルの C++ コードを使用できることです。
ただし、C# にも弱点があります。まず第一に、C# プログラムはまだ多くの既存の Windows プラットフォームで実行できません。これは、C# プログラムの基礎として .NET ランタイム ライブラリが必要であり、.NET ランタイム ライブラリは新世代の Windows の一部としてリリースされるためです (ウィスラー) )、または Service Pack として Windows Me および Windows 2000 ユーザーに配信されます。したがって、近い将来、C# は主にサーバーで使用されることになります。第 2 に、C# で使用できるコンポーネントやライブラリは .NET ランタイム ライブラリなどわずかで、豊富なサードパーティ ソフトウェア ライブラリがありません。これにはプロセスが必要であり、さまざまなソフトウェア開発者のサポートが必要です。も非常に重要です。第三に、JAVA の成功要因の一部は反 Microsoft 陣営によってもてはやされています。「一度書けば、どこでも実行できる」は単なるスローガンですが、結局のところ、JAVA はすでに成熟したテクノロジーです。現在、C# を支持しているのは Microsoft だけであり、評判は悪く、Windows 上でのみ実行できます。実際、ソフトウェア開発者にとって、これら 2 つの言語はかけがえのないものではなく、最も使い慣れたものが最良のツールです。特に C++ ユーザーにとって、.NET ランタイム ライブラリは C++ でも使用でき、変更する絶対的な理由がないため、C# は何も新しいものをもたらしません。
要約すると、私は個人的に、近年、必然的に C# が台頭して Windows プラットフォームの主役になる一方、JAVA が UNIX、Linux、その他のプラットフォームで支配的なプレーヤーとなり、C++ が今後もその力を発揮し続けるだろうと信じています。システムソフトウェアの分野。非常に興味深いのは、JAVA と C# は両方とも C++ から開発されたため、これらの言語の構文が非常に似ていることです。もちろん、他の開発ツールも長期間にわたって進化を続けるでしょうが、市場シェアの点で打撃を受けることは避けられません。