Windowsが一番環境構築に気を使うという話(泣)

目 次

プログラムのチーム開発入門では、C言語のプログラムのCUI環境が必要ですが・・

MacやLinuxは、Unix準拠の環境なのでたーみなるはほぼANSIエスケープシーケンスに対応しています。他にVT-100にも対応していて当たり前なのです。
MacやLinuxを端末あるいはターミナルを起動すれば簡単に開発が可能になっています。

Windowsは最も普及しているんだし大丈夫じゃないの?

話はそう簡単ではないんですよね。かつてマイクロソフトがウインドウズを出す前にはMS-DOSというUNIXライクにしようというOSがコマンドプロンプト環境でANSIに対応していました。正確に言えばcommand.comというコマンドシェルがそのターミナルの代替えだったのです。

で、16ビットの環境まではそのままでよかったのです・・・が・・・

32ビット時代で大きく変更路線に突き進んだWindows

つまり、WindowsーNTからWindowsXP時代から大きく変わっていったのです。32ビットCPU時代になりそれまでの16ビットアプリは互換性モードで起動するように変更されました。それ故、command.comもそのまま提供されていました。正確に言えば、WindowsディレクトリのSystem32フォルダーの中に、ひっそりと残され続けたのです。でもこれが大きな問題の基になっていくのです。(プログラミングをしない方は気にしなくても大丈夫なのですが^^;)

Windows7までは、いわゆるDOS窓は起動できました

Windowsのsystem32フォルダーにある、 command.comをコマンドプロンプト(cmd.exe)の代わりに起動してやるのですが、そのとき、config.NT というDOS時代で言えばconfig.sysにANSI.SYS を読み込むように記述しておくと、DOS窓(COMMAND.COM)が起動するときに、読み込むようになり、エスケープシーケンスもVT-100モードで使えるようになる設計でした。

ところが・・・

マイクロソフトの方針で、一気に変わる。DOS窓はどうなった?

Windows8が出た時に、それまでサポートされていたansi.sysやcommand.comのサポートは打ち切られることになっていきました。

つまり、Windowsユーザーの多くがビジュアル環境で作業し、DOS環境での作業は好まれなくなったので、CUIをオペレーションレベルでサポートすることをやめる事になったわけです。

しかしながら、プログラミングを楽しむユーザーの方からUNIX互換のVT-100モードや、ANSIエスケープシーケンスの復活を望む声が大きくなり、Windows10のスレッシュホールド2のアップデートでモードとして復活することに成るのです。しかし・・・

16ビットアプリでの互換がサポート打ち切りで無くなったので

マイクロソフトは、ターミナルモードではできず、プログラミングレベルでサポートすることを苦肉の策として用意しました。

つまり、コマンドプロンプトでは画面モードをプログラミングで変更しない限りansiエスケープシーケンスが再現できないというある意味おマヌケな状況になっています。せめて、モード変換用のコマンドでも用意してくれていたら良かったのに。(笑)

このモード変換はプログラミングできるのですが、Windowsユーザーの多くは、Windowsプログラミングできないので、事実上Widows7以降はできないといっても過言ではないのです。

じゃあ、プログラミングの勉強をしたい場合はどうすんの?

しかも2019年現在ではWindows10のシェアがこれだけ大きいですから、Windows10でできないかが問題なんですね。これだけシェアがあるのにもかかわらずです。怒

大丈夫、これに抗うには2つの方法があります。でもお早めに。

つまりansiに対応したターミナルをコマンドプロンプトの代わりにインストールして使用すればいいのです。

・ansicon (最新版は問題あり、一つ前のバージョンをダウンロードしたほうが良いです。GitHUBからv1.85)
https://github.com/adoxa/ansicon/releases/tag/v1.85

・ConEmu  (設定はすこし面倒だけど、とてもいいターミナル)
https://conemu.github.io/

というターミナルが存在しています。詳しくはチーム開発のコースで解説しますけれど。

ただ、Windowsの問題として、自作派の方がどんなハードウエアをつかっていて、どんなドライバーが読み込まれているかはわからないので、そういう問題がおきて干渉してインストールできない場合もあります。予想ですけれど

したがって、これらが安定的に動作するのは、Windows10のインストールで標準的に行えたマシンでインテルCPUのPCやノートPCであれば問題は起きづらいとおもいます。

ゲーミングPCなどは、CPUはからグラフィックボードなど、マイクロソフトテストで問題が起きてもスピード重視な可能性があるので、インストールでツマヅキやすいと認識しておきましょう。もちろん大丈夫かもしれません。のでやってみないとわかりませんけれど。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA