++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

C#、2012年の首位プログラミング言語に名が挙がる

with one comment

集計方法1つ変えるだけで順位なんて変わるという話でもあったりはするのだけども。

ある指標では、2012年で一番伸びた言語はC#ということになるそうです。

2012年

去年、C#とか.NET周りで何があったかというと、MonoTouch/Mono for Android であったり、Unity(Monoベースのゲーム エンジンの)であったり、Windows 8であったり。

Windows 8

Windows 8、というか、WinRTで、ネイティブ(C++)の復権があったり、JavaScript+HTML5での開発もできたりで、世の中には「.NETは下火」なんていう人もいるにはいましたが。実際にWindows 8がリリースされて、ふたを開けてみればやっぱりほとんどのWindowsストア アプリはC#で書かれてるそうで。ですよね。

TypeScriptがらみでも、×「Andersが生みの親」、×「Andersは.NETを離れてHTML5方面に移った」みたいな誤解も出てましたが、実際は「開発の一員」だし「.NETにも引き続き(Roslynがらみ)関わる」だそうですし。

マスメディアはそういう大どんでん返し的なあおり記事が大好きですけども、実際の結果はそんなものです。

マイクロソフトは昔から、ギャップのない世界を目指しています。.NETだって元をたどれば言語を超えての連携を目指したものだし、今はその連携の幅を広げに掛かってるだけで。.NETを捨てる気なんて全くない。むしろ、.NETはこれからもマイクロソフト技術の中心にあり続けることには変わりないでしょう。

まあ、.NETもコアの部分は落ち着いて、周りを固める時期に来たのかもとも思います。

Mono

「マイクロソフトだから」という理由だけで敬遠する人が多かったりもするわけで、Monoが伸びた2012年はその意味でもC#に取っていい年でした。

マイクロソフトよりも我々の方がC#と.NETを愛している」と豪語して商売成り立たせてる会社もあるわけで。もう、C#に対して「マイクロソフトの」なんて前振りも要らないでしょう。

実際伸びてる

まあ、マスメディアにどうあおられようと、うちのサイトのC#ページ、アクセス数増えてますからね。

ここ2年ほど、伸びが鈍化はしてるんですが、その2年って、ほとんど更新してないんですよね。僕が、商用サイトへの寄稿とか、紙の本の仕事で手いっぱいで。更新しなくても伸びてるんだから、利用者の純増かと。(もっとも、商用サイトとか本とかでの露出が広告効果になって人が流入してるというのもあるでしょう。かけてる手間を考えると高コストな広告だこと…)

うちみたいなチュートリアルが主軸のサイト、ブログともマスメディアともアクセス傾向違うんでしょうねぇ。ブログだと更新しないとアクセス目減りしていきますし、マスメディアだとバズワード的なあおりの方が伸びるでしょうし。

C#がモバイル開発に最良の言語である8つの理由

冒頭のリンク、2つ目の方は Xamarin (Mono を作ってるところ)のブログなわけですが、良いまとめだと思うので、軽く和訳:

この2012年のC#の伸びはどう説明しましょう?たぶん、Windows 8のローンチもその役を担ってるでしょう。C#は今なお、Windowsデバイス上のサードパーティ アプリ開発の主要言語です。

しかし、それ以上のものがあると思います。モバイル開発でのプログラミング言語としてC#がますます選択肢となる8つの理由を挙げてみます。

  1. 最先端 – 非同期処理がファーストクラスな言語機能になり、かつては退屈で、反復的で、エラーになりがちなコーディングを、単純で楽しい体験に変えてくれます。それに、匿名型、ラムダ式、型推論、関数型スタイルのプログラミング、LINQなどによって、開発者は非常に意味のある、保守の容易なコードを書けます。
  2. 強力な特性 – オブジェクト指向プログラミングとカプセル化は、コードを構造化し、再利用性を最大限引き出すことを容易にします。リフレクションや依存注入などの機能は開発者に多くの力と柔軟性を提供します。
  3. 高度な実行環境 – ガベージ コレクションは、メモリを手動管理することのオーバーヘッドをなくし、開発を非常に簡素化します。開発者は、ポインターと戦うのではなく、解決したい問題に注力できます。
  4. 信頼性 – 型安全性は、コンパイル時にバグを見つけて切り出すのを、より早く、より簡単にします。これは特にモバイル開発で重要な特性です。モバイル開発では、パッケージ化して実機やエミュレーターに配置するためにビルド/実行/テストのサイクルが長くなりがちです。コンパイル時の正当性検査によって、C#開発者は、明確なエラーを見つけるために、プログラムが実際にクラッシュするのを待つ必要はありません。
  5. 採用が簡単 – 非常に学習が簡単です(特に、オブジェクト指向プログラミングの原理を既知の開発者にとって)。多大な量のC#の参考資料があり、新しい開発者が行き詰らずに済みます。
  6. 高速な実行 – C# on iOSは、LLVM最適化コンパイラー、つまり、CとC++(OSを駆動させている)と同じバックエンドで動いています。これによって、C#の高い生産性と、低級言語の実行性能の両方の良いところ(the best of both worlds)を与えます。Android上では、C#はJavaよりも良い性能を発揮します。これは2つの理由があって、1つは言語設計の選択(値型、真のジェネリック型、既定で非virtualなメソッドのサポート)によります。もう1つは比較的若いDalvikよりも、Mono実行環境が成熟しているためです。
  7. ネイティブ アクセス – ネイティブ コードとのシームレスな(継ぎ目のない)相互運用も、両方の良いところを与えます。ネイティブのライブラリを用いP/Invokeを活用することで、マネージ コードの世界に追加の機能を触れさせることができます。これが、iOSやAndroidのネイティブAPIの100%をC#開発者が触れられるように、Xamarinがやっていることです。下層にあるプラットフォームの表現力豊かな力にアクセスするすべを提供します。
  8. ポータビリティ – そして大きな8番目。Windows、iOS、そして、Androidで、22億以上のデバイス上でC#コードを実行できます。そして、モバイルを超えて、C#は非常にポータブルです。モバイル、組み込み、デスクトップ、サーバー コンピューティングなど広い範囲の環境で使えます。
広告

Written by ufcpp

2013年1月5日 @ 06:53

カテゴリー: .NET, C#

コメント / トラックバック1件

Subscribe to comments with RSS.

  1. guitarrapc.wordpress.com でリブログ& コメント:
    Mono de C#. ますます注目ですね。

    guitarrapc

    2013年2月6日 at 07:03


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。