C#
C# はとても楽にコードが書ける。OSS & クロスプラットフォームになり .NET Core でのユニバーサルなアプリ開発をすることが増えると思われる。
C# 1.0 (.NET Framework 1.0 / Visual Studio.NET 2002-2003)
.NET の出はじめは、遠巻きに見ていた。少し Remoting のコードを書いた。VBA で開発したクラスモジュールを一部だけ VB.NET に移植した(C# じゃない)。 この頃はネイティブ一辺倒で Java は業務で使っていたが Windows Only なのに CLR のようなランタイムを使う必然性が分からなかった。
C# 2.0 (.NET Framework 2.0 / Visual Studio 2005)
2006年から大規模に .NET 2.0 を採用するプロジェクトに数年携わったが、その時は VB6/ASP の技術者転用のため Visual Basic 2005 が採用されていた。IL を使った静的コード分析のカスタマイズをしたりして、徐々にマルチ言語な CLR のありがたさも分かった。Typed DataSet とか、デザイナーコードや Partial Class など .NET のエコシステムについても理解し始めた。クリーンでモダンなライブラリー群でしがらみのないコードが書けるのも良かった。Java にはないプロパティが使えるのが良かった。
C# 3.0 (.NET Framework 3.5 / Visual Studio 2008)
2007年頃から業務でも本格的に使い始めた。ラムダ式, 型推論, LINQ など言語仕様が凄い勢いで進化を遂げている頃。ASP.NET DynamicData, WPF, Silverlight のアプリを開発。ワークフローエンジンである WF についてお仕事で MSDN の記事を作成したりした。LINQ to Object もお気に入りに。 C# 4.0 (.NET Framework 4.0 / Visual Studio 2010)
パッケージ開発のプロジェクト支援で ASP.NET MVC のアーキテクチャ + フレームワーク構築。Razor エンジン便利! オプション引数、名前付き引数が使えるようになってますます書きやすく。
C# 5.0 (.NET Framework 4.5 / Visual Studio 2012, 2013)
ストアアプリをお試し開発した。ASP.NET Web API や Signal R も調査。
仕事では久々に Windows Forms の RIA 向けフレームワークを開発。 C# が Java のかなり先行っているのを実感。Internal なスコープはフレームワークとアプリの境界を分かつのに非常に便利だった。ただ DI が標準にないのがちょっとツラかった。static なメソッドのテストにも苦労 (static メソッドのネストが多用される残念な設計だったので。エンプラだったら Fakes と云うテスティングフレームワークがある Ultimate Edition を使うべきなのだろう)。 async, await で非同期プログラミングが簡単になっていた。色々とチューニングもやった。
C# 6.0 (.NET Framework 4.6 / Visual Studio 2015)
滅亡したストアアプリに代わって登場した Windows Universal App をちょっと作成してみた・・程度で VS 2017 が出た。
C# 7.0 (.NET Framework 4.6 / Visual Studio 2017)
WPF の案件来るかもってことで、C# 7.0 にキャッチアップ、最近の WPF の書き方を勉強したりしたが、空振りに終わった。
https://gyazo.com/9d47e309ee372146cb60978918f0f3b0