Windowsに対する意見に関する世界観です。
Microsoftは、金があることもあって、さまざまな堅実なソフトウェア製品を開発している。
Windows, Office, Visual Studio, .NET Framework, IIS, ASP.NET, SQL Serverなど、OS、ビジネスソフト、コンパイラ、サーバー、データベースなど、ソフトウェアの代表格はほとんど開発できている。どれも一流で巨大で高度な製品ばかりだ。
だから、僕はMSにはオープンソース企業になってもらっても良いと思う。MSがLinuxディストリビュータになっても、あるいはOfficeやVisual StudioをWindowsごとオープンソースにしても、僕は成功するのではないかと思っている。
MSがLinux事業をやれば、Linuxは一転世界の標準OSとなって、爆発的な発展を生み出すだろう。いつまでもWindowsという「世界一の発明と成功」に囚われていてはいけない。
特に、Windowsは10以降は新しいバージョンを立たず、アップデートだけで製品を改良するらしい。その方が開発・維持コストがかからないし、OSはもう儲かる事業ではない。それなら、僕はWindowsをオープンソースにするとか、むしろ、まったく新しいSmalltalk/Squeakのような、新しい概念のOSを作って、それをオープンソースにしてほしいと思う。MSならきっと、最も美しいGUI言語であるC#を作ったように、まともな使えるデスクトップに代わる環境を創り出せると思う。
Windowsでテキストエディタを作るためには、普通、Windowsコントロールの継承をするか、あるいはドキュメント・ビューなどの仕組みを使って行うが、これは「このようにやれば簡単ですよ。ですから、このようにやりなさい。」と先生に言われているかのような、新しい支配者だと僕は思う。
自分で作っているわけではなく、全部Windowsの決めたやり方で作らないといけない。Windowsの用意したやり方でやらなければならないのだ。
僕は、Linux/オープンソースにそんなに期待しているわけではない。だが、Windowsの問題点は、Windowsのやり方が公開されておらず、Microsoftだけがそれを作り、変え、決められる「独占的な権限」を持っていることではないかと思う。
だから、僕はWindowsに対して、「もっとオープンにAPIを決められるようにしてほしい」と思う。たとえば、Windows APIで作られたコントロール以外に、GTK+/Qt互換のコントロールがあっても良いだろう。そして、それをGPLで公開し、「Windows Open API」という名前を付けても良いだろう。
本当は、なぜそういうことを思うのかと言うと、Windows APIで作らなければならないせいで、世界が滅びたからだ。全て、Windowsに決められたやり方でしかプログラミングが出来なくなった。これは、僕は大いなる可能性の損失ではないかと思う。
まあ、本当はそうでもない。僕は薄っぺらいことを言っている。LinuxのAPIはきちんと考えられていないし、コードなんか誰も書いていない。Microsoftが会社で作った方が、品質の良いものは出来るだろう。たとえば、MicrosoftはOSだけではなく、Office, Visual Studio, DirectX, IE, ASP.NET, SQL Serverなど、何でも作っている。それが全て統一され、Windowsのやり方に従うのは、むしろカッコいいし、分かりやすい。Linuxのコンポーネントは、それぞれのプロジェクトが作ってそれぞれのディストリビューションが配布しているせいで、品質にはピンからキリまであるし、そもそもRed Hat以外が動くわけがない。そういうものだから、本当はMicrosoftとLinuxの競争というのは、とても良いことをやっている。そして、そろそろLinuxもシェアを拡大するだろう。見ていれば明らかだ。WindowsとLinuxは長い間共存していくだろう。
Windowsがきちんと動かないのは、MS-DOSがシングルタスク用のOSだったからだ。
それを無理やりマルチタスクにしたせいで、きちんと動かない。
ある意味、C#/.NETで書けば良いものになるだろう。Androidのように、仮想VMの上で動かせばきちんと動くようになる。
だが、MicrosoftはWindowsをUNIXとして書き直すべきだろう。
Windowsのカーネルはあまりに機械のように動いている。もっと数学的に美しいものにならないのがおかしい。
僕が思うに、タスクをオブジェクトのように実行できないかと思う。こんな風にならないのか?
loop { nextTask = tasks.getTask(); nextTask.run(); }
上のやつをC++で書いて、適当にアセンブラを吐き出すようにすれば、このOSも大したものだ。
最近のWindows、特に7~10は、確かに処理速度は速くなった。起動や処理も速い。だが、安定化はしていないし、メモリも食う。
これは、全部「大量にあるメモリを贅沢にいくらでも使うこと」で速くなっているからではないかと、僕は思う。
.NETにもみられるように、最近のWindows技術というのは、先進的なパソコンを贅沢な仕様で使う。たくさんのメモリキャッシュを行ない、アプリケーションは巨大で、その上で.NETで動かすことで、落ちたり壊れたりすることは少なくなった。
だが、Windowsは重くて不安定だ。Firefoxでさまざまなサイトをたくさん見ただけで、サクラエディタがきちんと反応しなくなる。超遅いエディタを使わざるを得なくなって、仕方なく再起動をかける。
WindowsはそんなOSである。2000~XPは軽かったのに、どんどん重たくなっている。
これは、Linuxにも言えることである。Linuxでは、カーネルのバグでハードウェアを繋いだ時に落ちることもあるし、アプリケーションが無反応になって落ちることはWindowsよりも多い。KDEなどは、最初から起動すらしない。
だから、僕は最初から、メモリにロードする内容を小さくしてほしい。そうすると、軽くなって動きが良くなると思う。
WindowsはMS-DOSとFATファイルシステムから脱却できているように見えない。きちんと.NET化して、NTカーネルとNTFSになって、安定化はしている。サーバー用途にも、IISとASP.NETでなんとかなる範囲は多いだろう。だが、Windowsは今でも安定していない。安定しているように見えるのは、さまざまなアプリケーションを使わず、Webサイトも見ないライトユーザーだけであって、さまざまなアプリケーションを使うヘビーユーザーには使い物にならない。だが、それはWindowsだけではない。OS業界全員の課題である。「多くなったメモリを使って処理速度は速くなったとしても、全体の環境は重く不安定になるばかりで、何も良いことがない」。ソフトウェアだけではなく、Intelのようなハードウェア企業も、真剣に考えないといけないだろう。
WindowsとMicrosoftの可哀想な点は、「Windows 95で既に完成だった」ということです。
たしかに、.NET Frameworkのような機能も増え、また、インターネットなどの対応やOfficeのインターフェースなども変わりました。
それでも、Windowsは、最初のWindows 95で既に完成だったのです。
言ってしまえば、安定化を進めてNTカーネルを作り直した、Windows 2000の時点で、Windowsはもう、開発する必要が無かったのです。
これは、良い点に見えて、可哀想な点です。Microsoftは、新しい「GUIのウィンドウ」という概念を一般的にしました。そして、「MS-Office」や「Visual Studio」などの、「基本的なGUIアプリケーション」をそこに開発しました。その上で、Internet Explorerのような使える公共インフラサービス的な誰もが使うアプリケーションを開発し、Windowsに搭載しました。
Microsoftのすべき仕事は、そこまでだったのです。最初のWindowsの「ウィンドウがぐにゅぐにゅ動く」時点で、Windowsは神のような最高のOSでした。そこで、終わってしまったのです。
Microsoftはまだ頑張っています。.NET Coreをオープンソース化したことで、Windows FormsやWPFを除く、仮想マシンのCLRと.NET Frameworkのクラスライブラリの一部をオープンソースとして公開し、Linuxでも動くものとしました。これは、明らかに2つの意味があります。一つは、「.NETを標準的地位にすること」、もう一つは、「Windows開発者が関数やクラスの中身をオープンに調べ、研究し、開発可能にすること」です。これはとても良い目標ですが、おそらく実現しないでしょう。.NETは、Javaやオープン系の言語に比べて、支持されていません。姉の会社ではVBと.NET Frameworkを良く使うようですが、オープン系の言語としてMicrosoftを使うことは、カーネルがオープンソースでない時点で現実的ではなく、オープンで無料にしたからといって、標準的地位を確立することはないでしょう。
Microsoftの今後が気になりますが、僕はあまり期待していません。それは、本当に「Windows 95の時点で完成」だからです。Microsoftは、これ以上Windowsを開発する必要はないでしょう。
僕は、Windowsの馬鹿な点は、「標準で開発ツールがない」ことだと思います。
たしかに、ExcelのVBAを使うとか、IEでJavaScriptを実行するなどの方法はあります。ですが、Visual Studioのような「標準のネイティブアプリケーション開発手段」が、有料で、それもとても高価に提供されているのです。
Macであれば、Xcodeが無償で提供されていますし、Linuxならgccのようなコマンドが標準で存在します。
僕は、Windowsにも標準で(無償あるいは付属のような形で)開発ツールを提供してほしいと思います。Eclipseを入れれば良いとか、PythonはWindowsでも動くとか、たしかにさまざまな意見はあるでしょうが、基本的に、Windowsだけではプログラミングの入門をすることが難しいのです。
僕は、MicrosoftはWindowsのOS開発とサポートの分業を図るべきだと思います。
ここでは、MicrosoftだけがWindowsの開発を行い、新バージョンを開発します。同時に、MicrosoftはWindowsのソースコードをライセンスして他社に条件付きで提供します。その提供を受けた会社が、それぞれ、Windowsのサポートを有料ですればいいのです。
そうすることで、Windows XPを使い続けたい人は、いつまでもサポートを得た状態でXPを使えます。その代り、Windowsの代金だけではなく、サポートの代金をサポート会社に支払います。いわば、アンチウイルスソフトの会社と同じです。
僕は、Windows 2000をオープンソースにすれば、Microsoftは最大のオープンソース企業になれると思います。
そもそも、Windows 2000はWindows NTに基づくOSで、MSはNTカーネルを一から設計・実装しなおしました。Windows 2000はとても安定したGUI OSで、GUIではLinux以上に安定し、そしてWindows 95のインターフェースを継承して、とてもGUIで使いやすいOSでした。
MSには、Windows 2000をオープンソースにしてほしいです。それだけでLinuxは、完全に敗北するでしょう。Windows 10にLinuxカーネルを仮想化で搭載するようなことをするくらいなら、Windows 2000をオープンソースで公開すべきです。
Windows 2000がオープンソースになることで、Windowsユーザーは未来永久Windows 2000を使い続けることができます。もちろん、Office 2000やVisual Studio 6.0もオープンソースにします。「永遠の標準OS」として、Windows 2000のオープンソース版が君臨します。
「それではMicrosoftが儲からない」と批判するかもしれませんが、Microsoftはこれ以上儲ける必要はありません。Windows 2000やOffice 2000は既に完成しており、これ以上改変を加える必要がないからです。MicrosoftがWindowsを開発しているのは、多くが無意味で、逆に「昔のWindowsをもっと長い間使いたい」という人がたくさんいます。ですから、Microsoftは「企業としての金儲けの視点」ではなく「IT技術全体の科学的な視点」からWindows 2000をオープンソースで公開すべきです。そして、セキュリティパッチやバグの修正はコミュニティによって行います。
僕個人の意見として、Windowsが使えなくなると困ります。
なぜなら、僕はホームページの制作のために、Windowsを使うからです。
趣味でインターネットを見たり、仕事でOfficeソフトウェアだけを使うのであれば、Windows 11がもしリリースされたとして、それで今までのWindowsが使えなくなったり(さまざまな理由で、重くなったりするなど)しても困らないでしょう。
しかしながら、僕は一生涯をかけて執筆した僕のホームページを、なんとかして書き続けるために、「使え続ける安定したパソコン」が必要です。
そのため、これからずっと、長くWindowsを使っていくとして、いつ使えなくなるのかが不安です。Windowsだけは使えなくなっては困ります。
僕は趣味でDebianマシンを使っていますが、Linuxをメインで使うのはまだ難しいかもしれません。使えないわけではないのですが、色んな点で不備や不具合があります。Windowsだけには、使えなくなってもらっては困ります。Microsoftは、「絶対に使えるWindowsのバージョン」を、UbuntuのLTS版のように提供してほしいです。このバージョンでは、新機能の追加は行わず、長い間安定して稼働する状態で、バグやセキュリティホールだけを修正してほしいです。ユーザーは、そのようなWindowsこそを求めているのです。
僕は、Windows 2000などの過去のWindowsを、信頼できる仮想環境で動かすことのできる、「Windows 2000 In Trust」を作ってはどうかと思う。
これは、たとえば2ちゃんねる専用ブラウザにおける、かちゅ~しゃとkageの関係に近い。
かつてのWindows 2000が、今のマシンで安全に動くようにする。さまざまな問題は、「In Trust VM」と呼ばれる仮想マシンですべて解決する。
そして、Windows 2000 In Trustが今のパソコン店で、かつてと同じように販売されるようになれば、最高だと思う。
Microsoftにより、クラウドのAzureプラットフォーム向けのLinuxディストリビューションであるAzure Linuxが提供された。
カーネルはLinuxカーネルのLTS版から派生したMicrosoft Linux Kernelを使用する。
そう、Microsoftよ、そうだ、それでいいんだ。そのまま、Linux界の一翼を担うオープンソース企業になれ。
2023.06.05