支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • 組み込み系を扱うC#について

C#とは

まず初めに、今回扱う組み込みシステムに関連するC#とC言語、C++は全く違う言語であるということを理解してください。 C言語は1972年に開発されたコンパイル型の汎用プログラミング言語、C++は、1983年にC言語の拡張として開発されたプログラミング言語、 そして今回登場するC#は、名前からC言語とC++から派生したプログラミング言語と思割れるかもしれませんが、「C++」と「Java」をもとに作られた全く別のプログラミング言語で、マイクロソフトが開発しました。 C#をWindows向けアプリケーションをメインとする開発に使用する言語と認識している方もいらっしゃるのですが、実際はWindows向けアプリケーション以外にもMac OSやiOS、Androidといった他のOSに対応するようになってきており、Webアプリケーションも開発できる汎用的なプログラミング言語となっているのです。C#は現在人気のある言語のひとつで、人気のある言語ランキングでは5位にランクインしています。

C#でできること

C#で作られているもので、みなさんの身近にある物であれば、マイクロソフト公式のMSNや、検索エンジンのBing、Unityまで含めれば、ポケモンGoやShadowverseなどの人気ゲームが作られています。
さらに、統合開発環境(IDE)であるVisual Studioを使用することによって、フォームにボタンやテキストボックスを張り付けて簡単にフォームアプリケーションを作成できたり、綺麗なGUIアプリケーションを作成することが可能です。また、ASP.NETというWebフレームワーク(Webアプリケーションを制作するために必要な機能を詰め合わせたツールのこと)を使用して、Webアプリケーションを開発することも可能です。

C#組み込み

では本題に入りたいと思います。 「組み込み」という言葉について順を追って説明していきます。 1980年代にはマイクロプロセッサの進化によって、組み込みシステムが様々な用途で電化製品などに搭載されるようになり、組み込み機器が電化製品や産業用機械、自動車などにも搭載されるようになりました。 現代ではどこの家庭にも当たり前のように存在している電子レンジ、エアコン、テレビなどの電子機器には、機械を制御するために必ず組み込み系プログラムが存在しており、これが無ければ動くことはありません。具体的な例でいうと、洗濯機などの家電製品においては、水が一定の量に達したときの動作を指示するためのプログラムが組み込まれているなどがあります。
 そして様々なプログラムが集まって、一つのソフトウェアを作ります。 組み込みソフトウェアとは、"組み込み機器に搭載されて動作するソフトウェア"のことで、組み込み機器というのは、"特定用途向けに特化、限定した機能を果たす事を目的とした機器"です。 先ほど挙げた、電子レンジやエアコンなどが当てはまります。電化製品などがどんどん多機能、高機能になってきているのは、組み込み開発のおかげというわけです。 余談ですが、組込機器と相対する存在として例を挙げるのであれば、"多種多様な目的を果たす事ができる機能を持つ機器"であるWindowsやMacOSなどが動くパソコンやPCがあります。
つまり「組み込み」とは、今となっては私たちの生活からなくすことのできない部分に組み込まれたシステムであるということです。

組み込み系プログラマーの需要

近年ではIoTの発展により、色々な物がインターネットと繋がり、操作できるようにになってきました。この動きは年々加速しており、自動車や電化製品、通信機器、医療機器、産業用機械など幅広い分野の機械に組み込みシステムが利用されています。
また、組み込み開発におけるソフトウェア開発も複雑化してきました。スマートフォンの普及により、タッチパネルや認証システム、グラフィックス性能も求められるようになっています。そしてこれからも発展していくのは間違いありません。 しかし、組み込み系プログラマーはさまざまな業界において需要が高い職種であるにも関わらず、人出不足の状態が続いています。
その理由の一つとして考えられるのは、組み込み系システムプログラマーは、主に家電製品や電子機器などを制御するためのプログラムの開発を行い、生活の必需品から最先端デバイスまであらゆる機器の組み込み型システムを開発することが仕事であるということかもしれません。プログラマーにかっこいい理想を抱いている方は避ける道なのかもしれませんね。

最後に

WEBプログラマーや、スマホアプリのプログラマーと比べると、地味な印象はあるかと思いますが、これからはIoTの時代になり組み込み系のプログラマーの需要は増えていきます。なので、組み込み系プログラマー視野に入れつつ今回紹介したC#を学んでおくことによって、アプリ開発はもちろんのこと様々なところで活躍できるのではないでしょうか。 文法はC++やJavaに近く、オブジェクト指向が主なスタイルとなっていますので、学習の幅を広げたいとお考えの方にはオススメの言語です。