差分

ナビゲーションに移動 検索に移動

C Sharp

1,850 バイト追加, 2012年3月30日 (金) 16:15
編集の要約なし
'''C#'''(しーしゃーぷ)とは、マイクロソフトが開発したプログラミング言語である。(しーしゃーぷ)とは、[[マイクロソフト]]が開発した[[プログラミング言語]]である。
== 概要 ==
C#は、常に日陰者であったボーランド社のは、常に日陰者であった[[ボーランド]]社の[[Turbo Pascal]]を流れを組むプログラミング言語であり、を流れを組む[[プログラミング言語]]であり、[[Object Pascal]]([[Delphi]])に続くTurbo Pascal一族の正当な後継言語である。
パッと見た構文は[[Java]]に似ているように見えるが、これは「Javaのパクリだから簡単だよ」と世に溢れるJavaプログラマーを騙し、C#のプロジェクトに誘い込むための罠である。あくまでJava風なのは見た目だけであり、構文や掟は基本的にPascalであるため、騙されたJavaプログラマーは一時的に精神錯乱状態に陥るが、そこで脱落しなかった多くの者はPascal教へ入信することとなる。のプロジェクトに誘い込むための罠である。あくまでJava風なのは見た目だけであり、構文や掟は基本的に[[Pascal]]であるため、騙されたJavaプログラマーは一時的に精神錯乱状態に陥るが、そこで脱落しなかった多くの者はPascal教へ入信することとなる。
== 生い立ち ==
遙か昔、[[ボーランド]]社が売っていた[[Turbo Pascal]]、[[Delphi]]は[[アンダース・ヘルスバーグ]]による洗練された設計と圧倒的なポテンシャルを持っていた。にも関わらずサードパーティ製開発ツールであるがため常に二番手の日陰者であった。
そのボーランド社で1994年頃、創業メンバーと会社乗っ取りを目論む取締役会との派閥闘争が勃発。派閥闘争は創業メンバーの敗北に終わり、そのボーランド社で1994年頃、創業メンバーと会社乗っ取りを目論む取締役会との派閥闘争が勃発。この派閥闘争は創業メンバーの敗北に終わり、[[フィリップ・カーン]]や[[アンダース・ヘルスバーグ]]、[[ポール・グロス]]をはじめとする創業初期メンバーと、その関連部署(主に開発ツール部門)の社員が全員クビになるという大事件が発生した。
それを知った[[ビル・ゲイツ]]が「私の味方になれば世界の半分をやろう」と言ったかどうかは知らないが、ボーランドをリストラされたほぼ全員がマイクロソフトに再就職し、復讐を誓ったという。そしてが「私の味方になれば世界の半分をやろう」と言ったかどうかは知らないが、ボーランドをリストラされたほぼ全員が[[マイクロソフト]]に再就職し、復讐を誓ったという。そして[[Delphi]]と[[Visual Component Library]] (VCL)を魔改造したC#と[[.NET Framework]]が生まれた。
その当時、マイクロソフトには創業の祖であり同社にとって創造主、いわゆる神である[[ポール・アレン]]と[[ビル・ゲイツ]]の作った[[MS-BASIC]]、その流れを組み、かつMS-DOSの生みの親であり第二の神である[[ティム・パターソン]]が指揮した[[Visual Basic]]が主力であった。にも関わらず、それらを全て捨てるという決断を下すほどTurbo Pascalの一族は圧倒的な完成度であったという。
 
以上のような経緯もあり、公開当初のC# 1.x系はDelphiの見た目を変えただけの方言という感じであったが、当時大流行していた[[Java]]風に[[実行ラインタイム]]を[[仮想マシン]]、[[メソッドポインタ]]を[[デリゲート]]などと各種用語の呼び名も刷新することで「まるで新しいもの」と思わせた細かいマーケティング戦略も功を奏し、Delphi以前を知らない多くの人はコロッと騙された。
 
なお、C# 2.0から全く別物といえるほどの壮絶な進化が始まり、現在ではほぼ初期(C# 1.x)の原型をとどめない形となっている。
 
== 進化の系譜 ==
=== C# 1.0 ===
ほぼDelphiそのもの。
=== C# 1.2 ===
コメント形式が変わった。
=== C# 2.0 ===
* [[イテレーター]]
* [[匿名メソッド]]
* [[ジェネリクス]]
* パーシャルクラス
* Nullable
* アクセサのアクセスレベル
* staticクラス
* namespace alias qualifier
* extern alias
* pragma
* Conditional
* 固定長配列
* デリゲートの Covariance/Contravariance
<ref>http://ufcpp.net/study/csharp/ap_ver2.html</ref>
=== C# 3.0 ===
* [[LINQ]]
* 型推論
* 拡張メソッド
* ラムダ式
* 初期化子
* 匿名型
* 暗黙型付け配列
* 自動プロパティ
* パーシャルメソッド
<ref>http://ufcpp.net/study/csharp/ap_ver3.html</ref>
=== C# 4.0 ===
* dynamic
* オプション引数
* 名前付き引数
* ジェネリックの共変性・反変性
* COM 相互運用時の特別処理
<ref>http://ufcpp.net/study/csharp/ap_ver4.html</ref>
=== C# 5.0 ===
* 非同期処理
* Caller Info 属性
* foreach の仕様変更
<ref>http://ufcpp.net/study/csharp/ap_ver5.html</ref>
== 関連項目 ==
* [[.NET Framework]]
* [[Turbo Pascal]]
* [[Delphi]]
== 参考文献 ==
<references/>
== 外部リンク ==
 
{{stub}}
''斜体''
匿名利用者

案内メニュー