第1回 C# イントロダクション

使える幅は広く・影が薄い,そんなイメージのあるC#

C#は2000年にMicrosoftからリリースされた言語です.様々なプログラム言語に互換性を持たせるために開発をされた「.NET framework」といわれる実行環境的に適合性が高い言語です.(うろ覚え)
特に,Windowsのシステムと相性が良く,Windowsアプリケーションからwebアプリケーション,Unityなどの開発言語として幅広く使われています.また「.NET framework」から「共通言語基板(CLI)」を介することで,Javaやswift といった他の言語プログラムと互換性を持たせることが出来るメリットを持つことから,「Xamarin」のようなクロスプラットフォーム用のフレームワークも用意されています.実は,python(リリース:1990年)よりも若い言語なんですね.

要するに

Windowsで動かすアプリケーションを作るなら,C#が一番相性いいです.開発元がMicrosoftということもあり,Windows向けの様々な開発機能が用意されているのがこの言語の一番の魅力ではないでしょうか。
逆にいうとWEBアプリケーションなどを作りたい人には向かない言語かなと思います.(ASP.Netと言われるフレームワークがあるがあまりメジャーじゃないらしい?)多くのWEBサーバーはLinuxOSで稼働しているため,他の言語の方が人気があると思います.

オブジェクト指向の言語

プログラミングを勉強していくと,よりメンテナンス性・拡張性の高いプログラムを作るのに必要な技術として「オブジェクト指向」を呼ばれる概念と必ず出会うはずです.オブジェクト指向のプログラミング言語としてよく例に上がるのはJavaやC#だと思います.
私自身人にモノを教えるほどC#での開発経験があるわけではないのですが,C#はオブジェクト指向の恩恵を受けやすく,非常によくできている言語だと思います.C/C++やpython(一応C++もpythonもオブジェクト指向の言語)などでプログラミングの基礎を学んだ方が,さらにオブジェクト指向のプログラムを書けるようになりたい,恩恵を受けたいと思った時にC#やJavaは触れてみる価値があると思います.

C#の長所と短所は表裏一体

もちろん,初めからC#やJavaの勉強を行うもの悪くないと思います.C#でプログラミングの基礎を学ぶことは可能ですし,Microsoftから公式のチュートリアルが提供されているので,わざわざ本を買わなくてもプログラミングの勉強を進めることができます.しかしながら,プログラミングにあまり慣れていない人からすると,C#は機能が多すぎて難しく見えてしまうと思います.機能の多さがメリットのC#ですが,その点が学習コストを上げてしまっているという悲しい性を背負った言語.いまいち人気が出ない最大の原因でしょう.

どんな人がC#の勉強すべき?

私が思うC#を勉強するのに向いている人は

  • Windowsアプリケーションを作りたい
    →特に,アプリケーション作製を学びながらオブジェクト指向の勉強をしたい.
  • Microsoft系のアプリケーションのサービスを作製したい.
  • Xamarinを使ったクロスプラットフォームのアプリケーションの作製をしたい.
  • Unityを使いたい.

というモチベーションを持った人だと思います.WindowsやMicrosoftが嫌いな方は向かないでしょう.
近年,C#やJava,Swift(apple製品専用のプログラム言語)などで書かれたネイティブアプリケーションより,プラットフォームを選ばないWebアプリケーションの方が需要が高まっているようですが,ネイティブアプリケーションの需要が0になることはないと思います.そんな中でもC#は将来性がある(後継となる言語がまだ表れていない)言語だと思うので,勉強してみる価値はあるのではないでしょうか.

次回は,C#の開発環境の準備についてお話をしていきます.以降はWindowsOSを前提にお話を進めていきます.