LinuxのソフトウエアをWindowsから開発する
Net Applicationsの報告によると、2019年9月のデスクトップ向けOSのシェアはWindowsが85.97%で1位の立場にある。バージョン別に見るとWindows 10のシェアが52.38%で1位、これにWindows 7が28.17%で2位と続いている。日本はWindows 10のシェアが最も多く、開発者の多くはWindows 10を使っているという状況にある。
しかし、サーバの分野ではLinuxのシェアが多数を占めている。このため、開発環境としてのネイティブ環境はWindows 10で、そこからLinuxサーバで動作するサービスやアプリケーションを開発する、というのが1つのスタイルになっている。実際のLinuxサーバにログインして開発していることもあれば、手元の仮想環境でLinuxを動作させ、そこで開発するということもある。
仮想環境を使えば手元の環境、たとえばWindows 10のノートPCだけでLinuxサーバ向けのソフトウエアを開発することができる。しかし、その場合には次のような問題が発生しやすい。
- 開発環境では動作するものの、実際に利用するLinuxサーバにデプロイするとうまく動作しない
サーバアプリケーションの開発者にとってデプロイはなかなか頭の痛い問題だ。開発環境では動いているだけにたちが悪い。この部分に頭を痛める開発者は少なくないだろう。
しかし、WSLの登場でこの状況が変わりつつある。WSLの最大の特徴はWindowsとLinuxとのシームレスな統合にある。この機能を利用すると、Windowsでありながら、そしてWindowsのアプリケーションを使いながら、Linuxサーバ向けのソフトウエアを開発することができる。2019年第2四半期くらいから、そうした開発方法が注目を集めはじめている。
Visual Studio CodeとWSL
現在世界中のプログラマに人気のあるエディタ、または統合開発環境に「Visual Studio Code」がある。Visual Studio Codeはいわゆるモダンなエディタ/軽量開発環境で、最新の開発環境やエディタが提供している機能がたっぷり導入されている。エクステンションが豊富というのも特徴だ。エクステンションをインストールすることで異なるプログラミング言語やデータに対して適切な機能を導入することができる。もはやVisual Studio Codeなしには開発はできないという方も多いだろう。
「Windows 10のWSLを使ってLinuxをネイティブっぽく利用できるようになったということは、Visual Studio CodeからこのWSLを使ってLinuxサーバ向けのソフトウエアを開発できるんじゃないか」と考えるのは当然の流れだろう。Microsoftはこれを裏付けるように「Remote - WSL」というエクステンションをVisual Studio Code向けに公開した。
「Remote - WSL」エクステンションは名前のとおり、Visual Studio CodeからWSLで動作しているLinuxに接続して処理を行うためのエクステンションだ。ソースコードのビルドからデバッグ、実行までをWSLで動作しているLinux上で実行することができる。
仮想環境で動作しているLinuxを使っても同じことはできるが、Windows 10がデフォルトで提供しているWSLという機能を使って実現している点が最大の特徴となる。利用するLinuxディストリビューションは選択することができ、対象となる環境を切り替えることも容易だ。また、同じディストリビューションの違うバージョンを利用することもできる。Ubuntu 16.04 LTS向けのソフトウエアとUbuntu 18.04 LTS向けのソフトウエアを、Visual Studio Codeのウィンドウを2つ起動してそれぞれから接続して利用するといったことも可能だ。さらに、その都度接続先を切り替えて開発することだってできる。
複数のLinuxディストリビューション向けの開発を単一の環境で実施できるというのは大きなアドバンテージだ。
Ubuntu Desktopといったデスクトップ環境を使うというのは悪くない。しかし、ノートPCなどの利用を考えると、公式にドライバが提供されてプレインストールされているOS、要するにWindows 10を使っておくほうが簡単だ。WSLを使えば、ベースとなるWindows 10はそのままに、簡単にLinuxの開発環境を作ることができる。
これからもっと増える可能性
2020年5月または6月に提供が開始されると見られるWindows 10フィーチャーアップデートにはWSL2が搭載されることになるものと見られる。このバージョンの最大の特徴はI/Oパフォーマンスの大幅な向上だ。I/Oパフォーマンスはソフトウェアのビルドなどに大きな影響を与える。WSL2が機能するようになってからは、Visual Studio Code + WSLという組み合わせは、もっと快適になるだろうと考えられる。
Visual Studio CodeはLinuxでも動作するので、Linuxのデスクトップ環境を用意すれば同じことはできる。Windows 10の上に仮想環境を用意してUbuntu Desktopを動作させ同じことをする、という手もある。そうした環境と比べるとWSLを使う方法は「ディスクの消費量が少なくて済む」「その他のコンピュータリソース消費が少なくて済む」といった利点がある。
開発の様子がどのように変わっていくのかを確実に予測することはできない。しかし、Visual Studio Code + WSLというスタイルに可能性があることは確かだ。今度の動向が楽しみなところである。