2003年06月12日
川俣晶の縁側ソフトウェア技術雑記total 2446 count

C#は熱血プログラム言語?

Written By: 川俣 晶連絡先

 さるところで、「Javaは理論的で冷たいから面白くない。だからC#を使うのだ」という話を聞きました。

 それを聞いて、なるほど、と思いました。

 Javaとその周囲に存在するオブジェクト指向プログラミングの理論体系は芸術的に高度に複雑に理論的に構築されています。そこでは、正しいことと間違ったことが、自明のものとして語られることが多いように思います。たとえば、「それはオブジェクト指向的に正しくない」というような言葉は、何やら強制力を持つ魔法の呪文のように聞こえる場合もあります。

 しかし、正しさだけに生きて人生が面白いのでしょうか?

 やはり、それは面白くないと思うわけです。個人的にプログラムを作るのなら、面白いことこそが重要な要素であって、正しさは二の次、三の次の条件だと思います。もちろん、正しさを追求し達成することが面白い人なら、正しさと面白さは両立するかも知れません。しかし、そうでない人なら、別に正しさを追求する必要など全く無いと思います。

 正しさを追求しないと決めたとすると、Javaは非常に窮屈なプログラム言語であるという印象を受けます。正しいことと正しくないことを分け、正しくないことは記述できないようにされていて、仮に記述できても、周囲のJavaプログラマから「それは正しくないよ」と非難される可能性があります。

 しかし、C#にはその種の窮屈さは感じられません。いざとなれば何でもできます。Javaでは完全に追放されたポインタすら使えます。100% Pureでなければらないという思想もありません。何をしても良いのです。熱血プログラミング主義に則って、限界を突破するためにあらゆる手段を使って熱血しても良いのです。

 それを考えれば、C#こそ、熱血プログラム言語なのだろうか?という疑問も浮かびます。熱血プログラミング主義を実践するのにプログラム言語は問いませんが、もしかしたら、JavaよりはC#の方がやりやすいということはあるかもしれません。

 補足。C#は自由といっても、C#では何でもやりたい放題……というわけではありません。たとえば、ポインタを使うには「やばいものを使います」と明示的に宣言しないとならないし、宣言しても好き勝手には使えない厳しい制約がはめられています。その点で、C#は優れたバランス感覚を示していると思います。つまり、C#は熱血可能な言語ではあるけれど、熱血過剰で暴走することは抑止する言語であると言えます。

 そうです。熱血プログラミング主義は、熱血する主義であって、暴走する主義ではないのです。その点でも、C#は熱血プログラム言語と呼べるのかも知れません。

Facebook

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

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

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

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

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

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

管理者: 川俣 晶連絡先

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