84
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PlaygroundAdvent Calendar 2019

Day 3

C#大統一理論

Last updated at Posted at 2019-12-02

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 を買いましょう。とても良き

84
53
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
84
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?