C#大統一理論とは
CySharpのneueccさんが提唱している理論で、ザックリ言えば
サーバーサイドもクライアントサイドもC#で完結できるとよくね?
という理論です。
そして現状サーバーサイドとクライアントサイドの両方で使える言語はC#を除くとJavaScriptくらいだと思います(なんかあったら教えてください)
C#でクライアントサイドを作るにはXamarinやゲームエンジンのUnityが筆頭になります。
C#のよさ
いろいろありますが、個人的に上げるなら
- 比較的言語が若く(C++と比較して)、LINQなどモダンな文法仕様が遂次追加されている(というかLINQは単独で良い)。
- 単純に.NET Coreがクラスプラットフォームで安定して動作する。マイクロソフトが本気を出してるからサーバーサイド、クライアントサイドから機械学習まで使える範囲がめちゃくちゃ広い。
- decimalみたいな型までサポートしていて、業務利用での実用性を重視している。
静的型付けは義務であり利点ではありません。
C#に統一することのメリット
-
単純に言語を統一したほうが楽
一時期はやったMEAN(すべてJavaScriptに統一する奴)みたいなやつです。MEANと違って.NET Coreで環境を統一できればクライアントサイドエンジニアがサーバーサイドエンジニアのプログラムに携わることも比較的容易です(学習コストが0というわけではありません) -
サーバーサイドとクライアントサイドでデータを受け渡す方法に悩まない
これは完全にMagicOnionの受け売りです。jsonで渡す?postに載せる?REST?gRPCってめっちゃだるくね?みたいな問題をある程度マシにしてくれます。
なぜ広まらないのか
- .NET Core以前の.NET環境がWindows依存
LAMP環境が流行ったころにMicrosoftはWISP(Windows, Internet Information Services, SQL Server, なんかの言語)を提唱していたり、完全にWindows依存な環境の時代が長かったのが原因の一つとして挙げられると思います。
C#に入門するなら
プログラミング経験者は「実戦で役立つ C#プログラミングのイディオム/定石&パターン」https://gihyo.jp/book/2017/978-4-7741-8758-7 を買いましょう。とても良き