石野光仁 Blog

開発、C#、ASP.NET、アイライトの活動について、いろいろ

AILight Banner
AILight Blog

プロフィール

石野光仁 Blog

目次

Blog 利用状況

記事分類

過去の記事

タグ

C#、昔話

C# Advent Calendar 2013
http://www.adventar.org/calendars/119
最終日、25日のエントリーです。

メリークリスマス!!

仕事が忙しくて、細かいネタを用意することが出来ませんでした。
なので、ちょっと昔話をしたいと思います。

C#との出会いは、Visual Studio .NET 2002のインストールから始まります。
このころは、Visual Basic 6.0が幅を利かせていた時代でした(笑)
VB6.0も良いところが沢山あるのですが、大規模なシステムを組むにはクラスを
まともに扱えなかったため、問題があると感じていました。
C++も良いところが沢山あるのですが、メモリ管理が難しく社内の開発で気軽に
使えるようなものでもありませんでした。

そんな時に、2002年に、C#が目の前に現れました。

メモリ管理が簡単な、C++を望んでいた自分には、ピッタリな製品でした。
無謀にも?、2002から業務アプリの開発で使っていました。

2002は初物の製品でしたが、特に問題もなく開発が出来たように思います。
その1年後には、2003が発売され、.NET Framework 1.1になりました。

その時、自分のプログラムが不具合になった1.0と1.1の挙動の違いを一つ。

decimal 型の値を、ToStringすると、
1.0では、少数の値を入れない時は整数値のみ、
1.1以降は少数の値を入れなくても、整数部と小数部が表示されるようになりました。

この問題で、開発した製品にトラブルが多少出たので、
ToStringはそのままで使わず、第一引数に値を指定するようになりました(笑)

あと、GotDotNet Japan 掲示板で、Disposeについて年末から年越しで書き込みを行ったのも
懐かしい思い出です。

そして、Visual Studio 2005が発売されます。C#は2.0になり、ジェネリクス等が入りました。
やっと、ArrayListともさよならです(笑)
SQL Server 2005も同じ時期だったのですが、両方の足並みをそろえての出荷だったので
とても難産でした。

その後しばらくして、Visual Studio 2008が発売されました。
ここで、C#が3.0になります。個人的には、このバージョンで満足のいく言語になったと思います。

LINQ、拡張メソッド、var(型推論)

拡張メソッドは、好きじゃない人もいましたが、個人的にはとても欲しかった機能の一つです。
MFCの頃、CStringに機能を増やすために、継承をしてオレオレCStringを持っていたのですが、
それを使って汎用ライブラリを作ると、ライブラリのハンドリングが悪くなるので嫌いでした。
拡張メソッドはそれを解決するためだけの物ではありませんが、継承の汚染が防げる意味では、
助かっている人も多くいるかと思います。
(そんな風に言うのは私だけかもしれませんが・・・)

型推論が出た時も少し面白かったですね。
ネット上で、varを使う派と使わない派に分かれて意見が交わされていました。
今はほぼ全員が、使う派だと思いますが・・・
私はもっと変人で、ライブラリを作ると、左辺(受け取る)型に合わせて、
送り出し側を選べるプロパティを作りたくなります。
(こんな事を言うのも、私だけかもしれませんが・・・)

なので、

Form from = new();

みたいな書き方が欲しかったのです・・・ が、

var form = new Form();

の方が言語として良いですね。


とりあえず、そろそろ寝る時間なのでまとめに・・・(笑)
今のC#は、自分の思考をそのままプログラムに起こせるところが魅力です。
多少、もう少しという所もありますが、それでもほかの言語よりは完璧に近いです。

こんな素晴らしい言語を世の中に送り出してくれた、「アンダース・ヘルスバーグ」に
感謝しながら、2013年、Advent Calendarを締めたいと思います。


あっ、アンダースは今年も元気でしたよ~

2013年11月 レドモンドにて

投稿日時 : 2013年12月25日 1:34


コメントを追加

タイトル
名前
URL
コメント