新しいPowerToys v0.100.0のリリースノートをみると、.NET 10に切り替えたことでパフォーマンスが向上し、インストーラーが15%小さくなってダウンロード時間が短縮した、とある。.NET 10とは、Microsoftの.NET Ver.10のこと。
■.NET および .NET Core の公式サポート ポリシー
https://dotnet.microsoft.com/ja-jp/platform/support/policy/dotnet-core#cadence
これによれば、ある時点では、アクティブな.NETバージョンが1つあり、2つのメンテナンスバージョンが存在する。そのうち1つは、3年の寿命を持つLTS版で、これは、バージョン番号が偶数になる(表01)。また、.NETの仕様は、事前に公開され、ユーザーからフィードバックを受ける。
.NETの配布バージョンは、メジャー、マイナー、パッチの3レベルで管理される。このうちメジャーバージョンを使って「.NET 10」などと表現する。基本的にメジャーバージョン間には、破壊的な非互換性が存在する。とはいっても、多くのプログラムに影響するようなものではなく、ごく狭い特定分野における非互換性であり、通常は、互換性が保たれている。
たとえば、.NET 11の破壊的変更に挙げられているものの1つとして、日本語のカレンダーによる明治元年の日付(JapaneseCalendar.MinSupportedDateTimeプロパティ)がある。.NET 10までは、日本語カレンダーの最も古い日付となる「明治元年」の西暦表現として1868年9月8日が返されていた。
アプリケーションがJapaneseCalendar.MinSupportedDateTimeを参照しているなら、影響が生じるが、逆に言うと、この日付を参照していなければ、なんの問題もない。.NETのメジャーバージョンの違いとなる破壊的変更とは、この程度のものである。
.NETは、アプリケーション開発のためのAPI フレームワークであり、最近では、多くのアプリケーションが.NETベースになってきている。Windowsには、Win32というAPIセットがあるのだが、.NETは、その上に作られている、いわば第2のAPIといえる。単なるAPIセットの提供だけではなく、CLR(Common Language Runtime)という仕組みを使い、.NET対応言語は、CLRの仮想コードでアプリケーションを構成する。これをJITで実行中にネイティブコードに変換して実行する、あるいは、インストール時にネイティブコードにコンパイルするようになっているため、仮想コードを利用しながら、ネイティブコードに近い速度での実行が可能になる。最終的に実行されるバイナリコードとしては、x64やARM64といったプロセッサの機械語コードなのだが、コンパイラ系言語と比較すると、「最適化」に大きな時間を掛けることが難しい。コンパイルしたものを実行ファイルとして配布するC言語などでは、コンパイル段階で、最適化に必要なだけ時間をかけられる。これに比べると、.NETのJITや事前コンパイルの最適化は、限定的だ。
さて、.NETは、毎年メジャーバージョンが更新されるが、それに合わせて、C#やPowerShellといった.NETをベースにした言語や.NET SDKもバージョンアップする。
PowerShellは、.NETの機能をほとんど利用できるように作られていて、C#のコードをPowerShell側で記述してオブジェクトとしてアクセスすることなどが可能、このため、毎年最新の.NETでビルドされたPowerShellがリリースされる。
前述のように、JITやプリコンパイルでは、最適化に限界があり、また、言語仕様による最適化の度合いもある。このため、C#などでは、バージョンアップごとに、簡易な最適化で大きな速度改善ができるような仕組み(たとえば固定配列をスタック上に配置するなど)の導入を段階的にすすめている。
今回のタイトルネタは、ブルース・スターリングの「ネットの中の島々」(原題Islands in the Net, 1988)である。執筆時インターネットはすでに存在していたが、商用化前なので、今、多くの人が思い浮かべる「ネット」というイメージがない時代に書かれた。多国籍企業とか、海賊とか、ロッジとか、ヘミングウェイっぽいタイトルとか、なんだか、アメリカの断片の寄せ集め的な感じがある。











![[USBで録画や再生可能]Tinguポータブルテレビ テレビ小型 14.1インチ 高齢者向け 病院使用可能 大画面 大音量 簡単操作 車中泊 車載用バッグ付き 良い画質 HDMI端子搭載 録画機能 YouTube視聴可能 モバイルバッテリーに対応 AC電源・車載電源に対応 スタンド/吊り下げ/車載の3種類設置 リモコン付き 遠距離操作可能 タイムシフト機能付き 底部ボタン 軽量 (14.1インチ)](https://m.media-amazon.com/images/I/51-Yonm5vZL._SL500_.jpg)