本当にWSL2でファイナルアンサーなのか

利用時の問題から、対処法、WSL2環境で動くアプリケーションについていろいろ紹介しました。WSL2はとても良いものです。少なくとも以前と比べたら、Linuxベースの開発にかなり近づきます(当然ですが)。他の環境と比べてどうでしょうか?

Linuxとの比較

macでないパソコンの場合、電源管理含めたOSのデバイスドライバはWindowsファーストで開発されているはずで、Windowsで動かせば最良の状態で利用できます。Linuxを直接インストールしたパソコンを使ったときは(8th Gen時代に2台ほど)、バッテリーコントロールがうまくなく、Windowsであつかった方がバッテリーの持ちが良かったです。

あとは、僕の使ったノートがHiDPIな環境だったのですが、その時のIMEの変換ウインドウの位置とかもろもろのデスクトップの対応とかもうちょっと・・・という感じはありました。また、安いノートだとトラックパッドがいまいちだったり・・・まあ、最初からスケーリングしないノートPCを買えば良かっただけなので、Linuxを使う意思が最初からあるなら機種選定から意識すれば問題なさそうです。

プリインストール機が増えて、情シスでも気軽に扱ってくれるようになって、選択肢に入ってくると良いな、という気持ちはすごくあります。

macとの比較

macネイティブと比べるとこんな感じでしょうかね

  • 起動してしまえばWSLは快適
  • 環境構築までのステップがやや長い
  • macはDockerのマウントのパフォーマンスの問題がある。WSLは使い方を気をつけないと同様なことが起きるし、Docker以外でも起きる
  • ネイティブ版のJetbrains製のIDEが使えず、Linux版を使うことになる。IMEは別途設定が必要

フォントも初期のWindows 10と比べるとなんかよくなった感じがしましたし、ASUSとHPはトラックパッドもそこまで差を感じないレベルなので、Windows側もだいぶよくなってきて、開発環境としての差は縮まった気がするので、あとはどこを重視するかで評価は変わってくると思います。

Linuxじゃないと!という人にはWSLが良いと思いますし、Jetbrains製のIDE使ってない人も最後は別に気にならないと思います。逆にまだまだmacが良い、という人もいるでしょう。僕はmacOSとLinuxの違いで問題が起きたりするようなことを経験したことがないので、タダでMacBookもらえるなら喜んでもらって使います、という感じですね。

おまけ: Chromebook

すでにQiitaには書いていましたが、Chromebookでも開発者用のLinuxの仮想環境があり、Debianが動作します。WSLやmacのようなパフォーマンスの問題はありません。

Linux GUIアプリも起動できるので、JetBrains製のIDEも動作はしますが、これもIMEは非対応なので、WSLと同じ状況といえば同じ状況。WSLの方がネイティブ動作のVisual Studio Codeとの併用とかで脱出ハッチはあるところが、CodeServerなどのブラウザベースのものを使わないとダメ、という点はChromebookの方が劣るところです。

Chromebookの欠点はいくつかありますが、最大の欠点は、高機能な開発で常用できるスペックのものがリリースされていない点にあります。HPとASUSがそれぞれCore i5機を出していますし、こいつらはメモリも8GBありますが、16GB以上のモデルはなく、ストレージサイズも少ないので趣味のコーディングには良いと思いますが、何個ものプロジェクトをローカルに持ってnpm installしたり、Dockerをドカドカ使うような使い方では手に余ります。Goなどは自分でバイナリを落としてきてパスを通すと良いでしょう。

フォントレンダリングもきれいで、バッテリーの持ちも良い吊るしのLinux機で、なおかつAndroidアプリまで利用できたり、いつの間にかターミナルもタブができたり、ポテンシャルはすごく感じるのでもったいない感じです。

2020/10/16(更新): 初出ではDebian 9なので古いと書いていましたが、80からはLinuxコンテナを削除して作り直すと最新のBuster(10)になるとのことです。また、86ではGUIでアップグレードできるようになるとのことです。 https://chromeunboxed.com/chrome-os-86-adds-update-button-for-debian-linux-container/