###注意###
これは掲載者の主観であります。
場面によってはメリットとなる場合もあります
#C#についてメリット、デメリット#
私はC#をおすすめしています
理由としては以下のメリットがあります
###メリット###
- Microsoftが開発しているためWindowsとの相性がいい
- オブジェクト指向プログラミングができる
- 最新の技術が早く取り入られる
- GUIアプリケーションの開発が簡単にできる
- 人気が高いため情報が多い
- Unityに対応しているためゲーム開発が可能
- VisualStudioといった強力なIDEがある
- マルチプラットフォームに対応している
- これから開発が進められていく
- 実行速度が早い
- .NET Frameworkがある環境であればどこでもコンパイルできる
###デメリット###
- 開発環境の容量が多く低スペックPCにはきつい
- AIには弱い
- 基本的にはハードウェアに干渉できない
- OS開発には使えない
- Linuxでは開発環境を整えにくい
- 構文が長くなってしまう
このようにC#はWindowsで開発実行する際はかなり良い言語です
#C#のプラットフォームについて#
C#のプラットフォームについては.NET Framework、.NET Core Mono
Xamarinが動く環境ではすべての環境で動きます
そのため以下の環境で動きます
- Windows7以降(.NET Framework)
- Linux (.NET Core、Mono)
- Mac (.NET Core、Mono)
- Android (Xamarin)
- ios (Xamarin (Macが必要))
このようにC#はほぼすべてのプラットフォームに対応しております
しかしながら注意点があります。
.NET Frameworkが.NET系で今一番開発がすすんでいます。それに比べ.NET Coreはまだ実装されていない機能などがあります。
しかしながら、Microsoftが.NET Core ベースの**.NET5を発表し2020年の11月にリリース予定です。これはマルチプラットフォーム**に対応する予定なので今後期待できます。
#他言語との比較#
ここからは他言語との比較をしていきます。
##Java##
JavaはC#の兄弟言語といっても過言ではないほど構文が似ています。
###C#より優位な点###
- マルチプラットフォームを重視しておりすべてといってもいいくらい多くのプラットフォームに対応しています
- MinecraftのModが作れる
- 求人が多い
###C#より不利な点###
- GUIが遅い
- 機能の追加が遅い
- あまりゲーム開発には向かない
- C#に比べ開発環境を構築しにくい(勝手に思ってるだけ)
C#とJavaは似た言語なのでほとんど同じようになっています
##C/C++##
C#のもとになった一つの言語でもある言語
###C#より優位な点###
- ハードウェアを触ることができる
###C#より不利な点###
- 多くの機能が実装されているので無法地帯と化している(メリットとなることもある)
- 実行ファイルをそのまま別のプラットフォームで実行できない
- 構文が多くなってしまう
##Python##
最近はやりのスクリプト言語
###C#より優位な点###
- サードパーティー製のライブラリが豊富
- 構文が少なく実装できる
- ;が不要
###C#より不利な点###
- 実行速度が遅い
- インデントが強制される
#総評#
C#は今後成長していく言語です
初心者の方はC#を始めていれば基本的にすべてのことができます。
また、サードパーティ製のDLLも多く配布されておりTwitterBotやDiscordBotの開発等も行います。
またC#では、AIのDLLもPythonほどの数のライブラリではないですが、AIを開発することができます。
これから、リリースされる予定の.NET5に期待していきたいと思います