こんにちは、KiYOです。
システムエンジニア歴20年オーバー。製造現場に特化したシステム開発を主にやってます。
新しい物好きで色々なIT技術を勉強しては、仕事に使って行ってます。

今回はC#について紹介します。
C#は、仕事でバリバリ使っている言語です。 C#の特徴や歴史、利用シーンを解説していきます。
- C#の特徴
- C#の歴史
- C#の利用シーン
今回はこの本を参考に、私の独断と偏見で記事を書いています。
言語を5点中評価
容易性 | 容易に言語習得できるか? | 4 |
将来性 | 将来性があるか? | 4 |
普及度 | 普及しているか? | 4 |
保守性 | 保守性が高いか? | 4 |
中毒性 | ハマるか? | 3 |
19 |

C#の特徴

Windowsの定番言語 UnityやXamarinで人気がさらに加速
Microsoftが「.NET Framework」のために開発した生産性の高い言語です。
- C#はMicrosoftが最も力を入れている言語
- 名前の由来はC++に++を下に追加した形からC#と付けられ、C++の次世代言語という思いで付けられた
- Windowsだけでなく、macOS,Linux,Android,iPhoneなどでも動く
- 共通中間言語(CIL)にコンパイルされて実行される点や文法的な類似点からJavaと比較される

C#の歴史

開発者 | Microsoft,Anders Heilsberg(アンダース・ヘルスバーグ) |
誕生 | 2002年4月 C#1.0リリース |
公式サイト | https://docs.microsoft.com/ja-jp/dotnet/csharp/ |
分類 | 動的型付け、オブジェクト指向 |
影響を受けた言語 | C C++ Delphi Eiffel Java |
影響を与えた言語 | D F# Java TypeScript Dart Kotlin Swift |
言語の歴史
2004年 | MicrosoftからC#1.0がリリース |
2004年以降 | ジェネリクス、コルーチン、型推論、ラムダ式、クエリ式LINQなどをサポート |
2016年 | Mamarinを買収。クロスプラットフォームの.NET Coreを公開。これによりmacOS,AndoroidなどでC#を動かせる |
- Windows向けのアプリ実行環境とライブラリ
- C#は共通中間言語(CIL)にコンパイルされ、.Net FrameworkではCILをネイティブコードに変換して実行
- JavaのJVMに近い考え
- 2016年に.NET CoreはMicrosoftとコミュニティによるオープンソースの.NET実装
- Windows,macOS,Linuxをサポート
- .NET Core3以降ではWindowsのWPFやデスクトップアプリ作成もサポート
- Microsoftが公式にクロスプラットフォーム対応の実行環境を提供
- Monoは、2001年にリリースされたオープンソース、クロスプラットフォームの.NET実装
- XamarinはMonoの技術と関連が深い
- XamarinとMonoはモバイルOS向けの.NET実装に位置づけ
C#は名前の通りC/C++の影響を受けています。ただし、Turbo PascalやObject Pascal/Delphi、Javaなどの言語の影響も強く感じられます。
.NET Frameworkは標準の充実したライブラリを持ち、様々な処理を手軽に記述できます。
C#の利用シーン

Windowsサーバ向けを中心に、Javaと似たような使い方が多い。C#によるWeb開発ではASP.NETが人気です。WebのUIを開発できるBlazorも注目されてます。
Windowsアプリの開発ではC#が最も手厚くサポートされている言語の一つです。
ゲーム開発環境UnityではC#を公式な開発言語としてサポートしており、C#で開発されたゲームが世界中で遊ばれています。クロスプラットフォームツールのXamarinでスマフォアプリ作成もできます。
C#の仕様は、ECMA-334、IOS/IEC23270:2003、JIS X 3015などで標準化されています。オープンソースのMonoが誕生し、Windowsだけでなく他のOSでもC#が動作可能になりました。
- IDEのVisualStudioを使うことで生産性は飛躍的に向上
- C#の設計時に、コードの補完機能の動作を考慮に入れて総合的に言語仕様が決められた背景がある
- VisualStudioを使うと、サクサクとC#のプログラムを書くことができる
- Xamarin(ザマリン)とは、Microsoftが提供するクロスプラットフォームなアプリ開発環境の名称
- Windows,macOS,LinuxといったデスクトップOSはもちろんのとこ、スマホOSのiOS,Android上でも動作するプログラムを作成できる
- C#は言語機能を意欲的に進化させてきたため、ファンが多い
- リアクティブプログラミングなど多言語に影響を与えた機能を多くある
- C#発祥のプログラミングテクニックのうち、特にLINQは使いやすい機能としてファンが多い
- ゲームは高速な動作が求められることからC++などが人気
- ゲームエンジンUnityがC#を公式サポートしている
- UnityはVRコンテンツ制作などにも使えるため、C#の適用領域を広げることに大きく貢献
まとめ:業務アプリからゲームまでカバーするC#

今回はC#について解説しました。
仕事で業務アプリを作るときにC#を採用していましたが、ゲーム業界でも使われているとは驚きでした。過去の歴史から見ていくと、Microsoftの主要言語として位置づけられているのがよくわかります。
- 業務アプリやゲーム開発で使われている実績が多い。(処理速度が高い)
- .NET CoreによるクロスプラットフォームでOSの垣根なくC#が組める
- MamarinによりモバイルOSの開発も可能
これからも引き続き勉強していきたいと思います。
やりたいことを実現するために、C#の使い方をマスタしましょう。
何事も覚えることに遅いことはありません。今日が一番若い日です。行動していきましょう!
以上です。KiYOでした!
今回参考にさせていただいた本はこちらです。今回紹介した言語やその他言語も紹介されているので大変勉強になりました。
Udemyというオンライン講座でもプログラミング学習はできます。 再生速度を早めてみたり、何度も見返すことができるのでおすすめです! 私も色々なプログラムをここで学習しています。
[affi id=2]
まとめページで、他のプログラミングも紹介していますので、ご覧ください。

コメント