ソースコードのあちこちにunsafe, delegateを駆使した。
構造体や&の付いた参照型も紛れ込んでいる。
C#プログラマにこれらの使用を禁止するようガイドラインを定めたが
これらの使用に慣れてしまった彼らはこっそりこれらを使ってしまった。
それだけでなはなく、C#以外の言語にも依存するような
コーディングをしてしまった。
さらにメンテナンスが悪くなった。
いよいよ256ビットマシンが登場した。
遅れを取ったWindowsは256ビットマシンに素早く対応できなかった。
数多くのプログラムが過去の資産に依存しすぎていたのだ。
C#も.Netもライブラリの大半がWindowsに依存しすぎたため
なかなか移行できなかった。

人々には古いWindowsを使わせるしかなかった。
しかし人々のニーズは高性能マシンに向けられた。
さらに事態は悪化し、Windowsのシェアは徐々に縮小していった。

どのOSでも動くという構想で掲げられた.Netは理想に反して
その多くの部分がWindowsに移植しすぎた。
ハードウェアでの対応にも遅れを取ったWindows上で動作する
.NetのシェアはWindowsとともに縮小していった。

かつてC#で記述したコードを新しいコンピュータ用に
書き換えなければならなくなってしまった。
100年経っても動くソフトはJavaだけだった。