20年前の2002年、マイクロソフトは次世代のソフトウェアとサービスのビジョンとロードマップを発表し、2月13日にVisual Studio .NETがリリースされました。.NET開発プラットフォームの最初のバージョンが正式に世界に公開されました。
それから現在まで、.NETは20年を迎え、成熟した安定したプラットフォームに成長しました。
しかし、多くの開発者が依然として.NETに対して偏見や誤解を持っていることに気づきました。それらの誤解を解消しましょう!
もしあなたの周りにもそういった友人がいるなら、この記事をぜひ転送してください。
誤解1:.NETはWindowsでしか動作しない?
実際、この説は初期の.NET時代から存在しており、実際に.NET Frameworkは当初Windows向けに構築されていました。多くのWin32 APIへの参照が含まれていたため、クロスプラットフォーム化が困難でした。
マイクロソフトが2016年に.NET Coreに真剣に取り組み始めるまで、Monoの問題やWin32 APIへの根強い依存に対処し始めることはありませんでした。しかし初期の段階では、.NET Core、.NET Framework、.NET Standardといった用語が開発者を混乱させました。幸いなことに、.NET 5と現在の.NET 6では、こうした混乱は過去のものとなりました。
現在、.NET 6(最新の.NET)は、Windows、Linux、macOSで動作し、x86、x64、Arm32、Arm64をサポートしています。

マイクロソフトは複数のプラットフォーム向けにSDKとランタイムを提供しています。
つまり、最新のM1 MacBook上で.NETアプリケーションをビルドできるのです:

誤解2:.NETはNode/Python/Go/Rustより遅い?
実際、.NET 6は非常に高いスループットを誇り、WebベンチマークではNodeやPythonで動作するあらゆるフレームワークの数倍のスループットを提供します。
近年、.NETチームはランタイムのほぼすべての側面におけるコアパフォーマンスに重点を置いてきました。明らかにRustやC++の生のパフォーマンスには及びませんが、Webアプリケーションの実行においては遅れをとっていません。
また、Task Parallel LibraryやSpanは、スループットとパフォーマンスを構築するための高い上限を提供します。
TechEmpower BenchmarksによるWebフレームワークテストレポート(2018年2月14日のラウンド15)では、ASP.NETが実際にNode.jsに劣っていることがわかります:

2018年:Node.js 8位、ASP.NET Core 13位、Express 28位、Flask 57位、Django 61位。
2021年2月8日のラウンド20では、わずか3年後、.NETはNodeとPythonを完全に圧倒し、Rustベースのサービスに次ぐ位置にあります。

2021年:.NET Core 8位、Node.js 56位、Express 94位、Flask 111位、Django 118位。
gRPCベンチマークでも、.NETは非常に優れたパフォーマンスを示しています。

gRPCを使用するなら、NodeやPythonは考えないほうがいいでしょう。
誤解3:.NETは時代遅れ?
RustやGoと比較して、.NETは時代遅れのプラットフォームだと感じる人も多いでしょう。しかし実際には、.NETは常に更新されており、文法や機能は非常に先進的です。ジェネリック、async/await、匿名型、タプル、パターンマッチング、式など、多彩です。
強力なLINQによって、C#はJavaScriptに非常によく似ています:

GitHubの2021年Octoverse状態レポートによると、C#はここ数年でやや復活しています:

誤解4:開発ツールは高価?
実際、初期のVisual Studio開発ツールは確かに高価でした!
しかし現在、マイクロソフトは無料でフル機能のVisual Studio Community Editionを提供しているだけでなく、他にも選択肢があります:
- JetBrains Rider
- macOS向けVisual Studio
- もちろんVS Code
最近、私はMacBook Pro M1上でVS Codeを使ってC#/.NET開発の大部分を行っています:

誤解5:.NETはオープンソースに不親切?
初期の.NETは確かにそうでした。しかし、Satya Nadellaが舵を取って以来、マイクロソフトのオープンソースにおける軌跡は大きく変化しました。とはいえ、マイクロソフトがこの分野でさらに成長し変革するには、まだ長い道のりがあります。
.NET自体は.NET Foundationによって管理されており、.NETコンパイラ(Roslyn)やその他多くの内部コンポーネントはGitHub上にあり、2015年以来Red Hat Enterprise Linuxの認定も受けています。
誤解6:.NETは企業管理システムしか開発できない?
実際、.NETは現在統一プラットフォームへと進化しており、デスクトップソフトウェア、Webサービス、3Dゲームなど、さまざまなアプリケーションを開発できます。
.NETにはクロスプラットフォームアプリケーションを構築するためのフレームワークも多数あります。例えば:
- Multi-platform App UI
- Uno Platform
- Avalonia
以上です...
原文著者:Charles Chen
原文タイトル:6 .NET Myths Dispelled — Celebrating 21 Years of .NET
原文リンク:https://blog.devgenius.io/6-net-myths-dispelled-celebrating-21-years-of-net-652795c2ea27