Windows Terminal プレビュー版登場
第5回で、WindowsからLinux環境を使う際に便利なターミナルアプリケーションとしてConEmuを取り上げた。ConEmuは現在Windowsで利用できるターミナルアプリケーションの中でも多機能かつ高性能だ。
Windowsではデフォルトで用意されているWindows Consoleは改善が進められているとはいえ、依然としてConEmuのほうに分があるように見える。しかし、この状況も変わりつつある。
Microsoftは6月21日、開発を進めているターミナルアプリケーション「Windows Terminal」のプレビュー版をMicrosoft Storeに登録したからだ。まだプレビュー版ではあるが、Microsoft Storeに登録され、手軽にインストールできるようになったことには大きな意義がある。
Windows Terminalの存在は今後WindowsでLinuxなどを使う上でかなり重要になってくる。そこで、今回はWindows Terminalを巡るこれまでの動きを確認し、今後の方向性をまとめてみたい。
Windows Consoleとは?
「Windows Console」という言葉は、Windows Terminalが登場するようになった辺りから使われるようになってきたように思う。これは、WindowsでWindows APIを使って開発されたコンソールアプリケーションを指し、具体的にはコマンドプロンプトやWindows PowerShellのウィンドウなどが該当する。
Windows ConsoleはWindows APIで開発されていることからもわかるように、基本的にWindowsのコマンドやCUIベースのアプリケーションによる利用が想定されている。つまり、LinuxなどのUNIX系コマンドが利用することは想定されていない。
しかし、WSL (Windows Subsystem for Linux)が登場したことで状況が変わった。LinuxのコマンドをWindows 10で実行することが可能になったことで、Windows 10でLinuxのターミナルアプリケーションと互換性のあるターミナルアプリケーションが必要になったためだ。
当初Microsoftのエンジニアは、Windows Consoleを機能拡張することでこれを実現しようとした。これまでの互換性やWindowsとの通信機能はそのままに、Linuxコマンドが求めるターミナル機能にも対応していった。
このままWindows Consoleの機能拡張が進められるのかと思ったが、Microsoftはここで「Windows Terminal」という個別のアプリケーション開発を発表する。Linuxコマンドなどが必要とする機能を実装したアプリケーションを従来のWindows Consoleとは別に開発するというのだ。現状を見る限り、実質的にWSLの実行などはこちらが将来のデファクトスタンダードになるのではないかと考えられる。
Windows Terminalの方向性は?
今回Microsoft Storeに登録されたWindows Terminalはまだプレビュー版という位置づけだ。Microsoftはこの状況を通じてユーザーから意見を募集し、Windows Terminalの開発の方向性を模索している。ユーザーが求める要望の高い機能を洗い出し、順次実装していく構えのようだ。
現在のところ、Windows TerminalとWindows Consoleの最大の違いはタブの有無だろう。Windows Terminalにはタブウィンドウ機能が用意されており、同時に複数のターミナルを開きながら単一のウィンドウをキープすることができる。この機能はConEmuでも実装されている。一方、Windows Consoleにはこうした機能は用意されていない。
Windows Consoleにタブが実装されるのではないかと考えられた時期もあるが、Windows 10の機能との兼ね合いもあってか、今のところ実現されていない。Windows 10では、開発版でウィンドウをタブ化するSetsと呼ばれる機能の開発が進められいる。
この機能が導入されたら、Windows Console側が個別にタブ機能を提供するよりも、Windows 10が提供するであろうタブ化機能を使って複数のWindows Consoleウィンドウを単一のウィンドウにまとめたほうがスマートというか、Microsoftとしてはそのような方針を取ることが予想される。
しかし、ユーザーは「今」こうした機能を必要としており、将来ではない。そこで、Windows Terminalの出番というわけだ。こちらにはタブが実装されており、すぐに利用することができる。
LinuxやmacOSで利用できるターミナルアプリケーションとWindows Terminalを比較した場合、現段階ではWindows Terminalにはこれといった特徴がない。モダンなターミナルアプリケーションが実装している機能を最低限は提供している、というのが現段階でのWindows Terminalという評価になるだろう。
しかし、いくつか興味深い点もある。例えば、設定がJSONファイルになっており、設定を変更するという操作がJSONファイルを編集するという作業になっていることだ。将来的にはGUIから操作できるようにするのかもしれないが、基本的にJSONファイルを編集すればよいという仕組みになっているのは興味深い。モダンなオープンソースアプリケーションの多くが似たような仕組みを採用しており、そういった流れに従ったのではないかと見られる。
そして、なにより重要なのは、このアプリケーションがMicrosoftによって開発されているということだ。Windowsにおけるターミナルアプリケーションとして今後参照される機会が増えると考えられる。これまでのWindowsにおけるターミナルアプリケーション事情を考えると、大きく前進したといえるだろう。
混ざり始めるWindowsとLinuxの技術
PowerShell Coreや開発段階にあるPowerShell 7、またはこうしたアプリケーションの基盤として利用されることになる.NET Coreなどは、オープンソース・ソフトウェアとして公開され、Linuxでも利用が進んでいる。WindowsでもLinuxでも同一のソフトウェアが利用できるという状況が、少しずつだが広がっている。
Windows Terminalもそうした取り組みの1つと考えられるように思える。LinuxやmacOSで利用されているのと同等レベルのターミナルアプリケーションがMicrosoftから提供されるようになることは、それだけMicrosoftがこうした使い方の重要性を理解していることを意味するだ。
環境が整えば、こうしたターミナルを利用する技術の相互利用がさらに進むことも考えられる。Windows Terminalは今後そう遠くない時期に正式版になると見られており、しばらく目が話せない状況になりそうだ。