2010年08月26日
川俣晶の縁側IT都市伝説 total 9039 count

C#ではC言語を直接C#中に埋め込むことができる

Written By: 川俣 晶連絡先

 誰が言い出したのか、まことしやかに流布される謎の解釈。

 今回のIT都市伝説はこれだ!

C#ではC言語を直接C#中に埋め込むことができる §

 - Java プログラマのためのC# 考察 -- 言語仕様の比較

 より

C# では,C 言語を直接 C# 中に埋め込むことができる.これは,丁度 C 言語がアセンブリ言語を asm キーワードによってインラインに埋め込めるのと似ている.下記のコードは,配列要素のアドレスを書き出すものだ.

 凄いですね。言語の中に別言語が埋め込めます。組み込み用で未だに使われているC言語のソースがそのまま今時のWebアプリにそのまま転用できます。セキュリティホールもそのまま残って即座に穴だらけの運用もできます。

なんて話はないのだ §

「いやー、久々に大爆笑したな」

「笑えるの?」

「C言語のそのままC#のソースに埋め込めるという話はどこをどう叩いても無い。言語仕様書のどこにも書いてない。言語仕様もライブラリも違うから、実際に通らない事例をサンプルとして書くことも簡単だ。実際に、このページに書かれているのもC言語のライブラリではなく.NET Frameworkのメソッドを呼んでいてまるでC言語のサンプルになっていない」

「うん」

「しかも著者は、けっこう日本のオブジェクト指向の世界では有名なカリスマだが、知識も経験も見識も足りないのだろう。知識も経験も見識も足りないからオブジェクトを語れるとも言えるけどね」

「そうなの?」

「オブジェクト指向の世界もトンデモの宝庫だからね」

「ははは。昔痛い目にあったようだね」

「うん。信じて取り組んで酷い目にあったことは多い」

「じゃ、それで話は終わり?」

「いやそうじゃない。実は作成日:初版 2000,8/17という記述と、謝辞のところも見所だ」

「どういうこと?」

「謝辞にたくさんの名前があって、しかも2000年という古い日付で公開されたにも関わらず、未だに訂正されていない」

「つまり、取り巻きも含めて凄く分かってないということだね」

「うん。本当にC#を使っているプログラマなら読むだけで大爆笑ものの誤記だからね。考えたり資料を調べる必要すらない」

「ということは、どういうこと?」

「本人も取り巻きもC#なんて使ってないということだろう。あとC言語もね」

「じゃあ、C#とJavaの比較は無理なんじゃない?」

「その比較は最初から無理があるが、それは当事者と取り巻きにC#経験が無いからではない。もともと比較するのが無理なんだよ」

「というと?」

「C#というのは、実際はDelphiの後継言語であり、Pascal系だ。だから、文法だけC風にしても、言語仕様的に山のように非互換の要素が含まれている」

「方法論が違うから並べて評価できないってことだね」

「類似性は表面的な部分にとどまるからね」

「じゃあ、以下のように書いて中立に比較しているように最初に言っているけれど、そうじゃないの?」

2000年6月に発表された Microsoft の新しい言語,C#(シー・シャープ)は,その目指す目標,言語仕様ともに Java と密接な関係がある.この記事では, C# 言語仕様の紹介を,特に Java との比較の観点から行う. C# およびこの言語が動作する .NET(ドットネット)プラットホームについては多分にセンセーショナルな側面があるが,ここではJava と C# 周辺の政治的な部分には立ち入らず,技術的側面にのみ焦点をあてる.

「政治的な部分には立ち入らず、というのは大嘘だね。実は、C#をJavaの粗悪なパチモンとして考える政治的な史観そのものが無いと比較が成立しない。つまり、JavaのモノサシでC#を無理に計ろうとしないとこういう比較は成立しないが、それは政治的な悪意がないと最初から成立しない」

「そもそもJavaと密接な関係があるという主張そのものが間違っているんだね」

「うん。C#と密接に関係があるのはDelphiだ」

「なぜそう言い切れるの?」

「C#にあってJavaに無い新機能の大半はDelphiに既にあったからだ。しかもJavaより歴史が古く、けして斬新な機能というわけでもない」

「ガベージコレクションも昔からMicrosoft Basicにあった機能だしね」

「Javaは新しいアルゴリズムで上手くやったに過ぎない。発想としては古い」

「仮想マシンも発想が古いし」

「昔からマイクロソフトにもPコードへのコンパイラとかあったしね。別に画期的でも斬新でもない」

オマケ §

「で、なぜこういう話を今頃になって書いたの?」

「理由は簡単だ。関係ない検索で偶然このページが引っかかってしまったからだ」

「じゃあ、引っかからなかったら書いていないの?」

「そうだ。Javaはもう過去の流行ワードだからね。今更調べるようなことは通常あり得ない」

「調べてくれと仕事で依頼でもされない限り自分から探すことはないということだね。でも決め手に欠くなあ」

「じゃ、こう言い直そう」

「なんて?」

「大爆笑して笑い転げたから。超大受け」