MSとそれなりに和解できたと思っていた

プログラミング宗教

目次

過去のnoteからの転載というか文体調整記事。


Editor, OS, Office suite, 多くのソフトウェアがあるが、一部では熱狂的な偏愛を持たれるソフトウェアもある。

編集者がペンにこだわるように、プログラマもエディタやらパソコンやらにはこだわりが生まれる。しかしその愛が強すぎれば宗教戦争を起こしかねない。1

Editor

ソフトウェア宗教戦争として最も有名であろう、エディタ戦争。VimとEmacsの対立である。

超雑に比較すれば

と言ったところ。実際の戦況や結果等々に関してはネットを探せばコーヒーを淹れる間もなく呆れるほどのログを見つけることができるだろうから、ここではこれ以上の説明はしない。ただ大体の特徴は上記で合っていると思う。

私はvim派

私はここ1,2年ほどVimを使っている(正確にはnvimというvim派生)。きっかけは憧れだけれど普通にハマった。

導入当初からエディタ戦争という対立は知っていて、Emacsに手を出したこともあったが、結局馴染めずにvimにもどるという事をしていた。そして当初は(3割くらい冗談とは言え)Emacsに対してかなり強い反感を持っていた。

Emacsは環境らしい

Emacsは環境

someone who uses Emacs

多くのEmacsユーザーは、Emacsは環境でありOSであると言う。この発言は実際に即していて、Emacsにはメールクライアントであるとか、RSSフィード、テトリス、カレンダー等々が実装として存在していて、もはやエディタではなくOSであるというのは誰もが抱く感想だと思う。

先の当初の強い反感はこれに対するもの。当時はUnix哲学あたりにそれなりに入れ込んでいて、ちゃんとEmacsの事が嫌いだった。なんでもかんでもEmacs上で行えるようにして、機能の責任分離をサボった怠惰なプログラマとすら見ていた。2

KernelをつけてEmacs Linuxとしては配布 くらいはしてもいいのではくらいは今でも思っているけれど、当時はもっと過激な思想だった。

和解

現在は割と和解というか、理解はしているつもり。そもそもvim, nvimもpluginで相当に拡張されているし機能分離も場合によっては割と無視されている。

そもそもvimとかnvimなどのscreen editorもといTUI系のツールはshellとかとの協働にはあまり向いていないなぁとは思っている。普通にtext streamを扱うツール群には慣れないし、レイヤーが異なる。そうなればエディタ内で完結しようとするのは当然の流れとも。

ひとまずエディターに関しては私は和解できている。というかプログラムが適切に書けるならvimでもemacsでもvscodeでもedでもなんでもいいだろうとは思っている。

OS

これはもはや対立しているのはごく少数というか、普通にWindowsにのまれているよなとは思っていますが、一応。

人によってはあまり聞き馴染みはないかもだが、OSにも宗教戦争がある。雑に言えばWindows vs Unix (like) OSである。Unixと言っても今多いのはLinuxだと思うのでこれ以降はLinuxと言う。3

エディタ戦争と同様に喧嘩のログはネットにいくらでもあると思うので細かい話は省略するけれど、こちらは戦争というよりはUnix派のWindows体制へのレジスタンス運動というかに近いものがある。(戦争するほどの体力も暇も無いので)

一応こちらの概要も

大体の構図はLinuxユーザーがWindowsを批判している

  1. Unix like系との互換がない
    • ディレクトリ構成がキモい(これはあまりにLinux擁護すぎるとは思うけど(macOSだって違うし))
    • なんでファイルパス区切りに\を使うのか
  2. WindowsはGUIとの密結合によりCLIが弱い(というよりはGUIでしか操作できなことがあったりする)
  3. 古い依存をずっと引きずっているので謎挙動が多い
    • 設定アプリが2つあるとか
  4. 謎の公式ランサムみたいなことやめろ(onedriveの挙動)
  5. 実験中にupdateするな 参考
  6. etc…

ちょっと書きすぎたかもしれない。

和解… は出来ていない

現在の私としては「私は絶対に使いたくないけど、世界から排斥するほどではない」くらいに落ち着いた。嫌いものランキングの中にも 本当に嫌いで世界から消したいもの目に入らないなら別にいいもの があるけれど、Windowsは後者。

まず互換性等々に関してはWSL2等により割とよくなったとは思う。あとはブラウザというかweb appの発達もいい影響。

次のGUI密結合や古い依存はどうしようもないのではと思っている。古い物が動くのが数少ないWindowsの利点であるし、それがないならいよいよ使う理由がなくなってきてしまう。GUI密結合も今からどうこうできるものでもないので難しい。

ゲームマシンとして

割と真面目に現代のパソコンの用途として多くを占める要素だと思う。多くの事が手元の電子板でできるようになった現代でパソコン買ってすることといえばゲームか動画編集かプログラミングではないか。(個人では特にその割合が多いと思う)

その点ではWindowsの圧勝であると思う。Windowsが多くを占めている中でゲームもWindowsサポートが増えて、そのあとは相互的に影響してWindows-ゲームの関係が強化されていったのだと思う。(人によっては負の連鎖ですが)

macOSもM1以降でそれなりにゲームにも力を入れてはいますが、まだWindowsに迫るような感じではない。またnot-windowsなOSは基本的にアンチチートシステムが無いので、オンラインゲームとかはなかなかサポートが難しそう。4

要は非Windowsにおける全面的なゲームサポートの未来はそこまで明るくないという…

一般的な用途(プログラミングとかターミナルとかじゃない作業)には対応アプリの多さとか、OSのプリインストールであるとか、そういう点でそれなりのアドがありますし、GUIによるパソコンの普及への貢献は大きいものがあるとは思っています。ちょっとトラブルが多くてMSの宣伝が色濃く出てくるOSとしては寛容になった気がする。

あと普通にLinuxを入れられてお前サポートするのか? と言われると厳しいというのもある。この辺普通にdesktop linuxをサポートする企業とかあってもいいと思うんですけどね。(RedhatはあまりにtoBなので, toCよりのlinuxサポートというか) ていうかMSだってサポートしてもらったことないんですけど。逆に足引っ張ることの方が多いでしょ。

悲劇: VBA

ここまではちょっと過激だった若き日の私の恥ずかしい話でしたが、ここからはちゃんと嫌な話です。

今年の4月からとある事情で半年ほどVBAとC#(windows form)を書かされるという悲劇が私を襲いました。大学の必須みたいな授業のせいで…5まさか2026年にVBAを書くとは思わなかったし、人権侵害かと思いました。

普通にVBAの受け入れられない構文やエディタ、コードのくせにテキストファイルで外から編集できないという地獄を見ながらやっとのことで始まった授業。そこで配れれた.xlsxを開くと、文字化けする日本語。

どうやら教員が気を使って日本語で関数名等々を書いていたようで、これは推測ですが教員の環境で記述したものはJISでエンコードされていて、わたしのWindows(確か英語)がUTFあたりで開こうとして化けちゃったようです。(変な設定にしてた私も悪いですが、VBAとか言う古い環境で日本語を使った教員もどうかと思う6)

ちなみに後日KVMで仮想化した日本語windowsでことなきを得ました。ていうか仮想化した方が安定するのでは

まとめ?

最近のWindowsのWSL2や心境の変化によってそれなりに和解してきた私とWindows(MS)は彼の古い歴史によってまた冷やされてしまったようです。

Footnotes

  1. ここでいう宗教戦争とはプログラマ界隈での慣例的な表現であり、実際のものとは実態も意味も異なることを注釈する

  2. 冗談です。振り上げたマサカリを静かに下ろして欲しい。

  3. この記事で大事なのはLinuxはUnixではないと事ではなくnot Windowsという意味の方が大事なのでツッコミは受け付けていない

  4. 詳しくないので雑理解ですが、プログラム的な互換は今のマシンパワーと互換レイヤーでそれなりに解決できそうですが、コストやアンチチート的な部分で面倒が大きそう

  5. 報復として? ちゃんと単位は取ったしSでした。屈辱

  6. 現代のutf-8対応な言語(Rustとか)で非ASCIIをsymbolに使うのとは訳が違うと思う