業務で Linux 向けの Go プログラムを多数開発しています。
しかしながら、開発している機材の OS は好きこのんで Windows です。
在宅から勤務するときに、Windows のリモートデスクトップが最強すぎるので手放せないのが大きな理由です。
そんなわけで、Windows の Hyper-V という機能で Ubuntu を仮想マシンとして動作させ、Emacs で長年開発していました。
しかし近年、モニタも 4K 32 インチと大きくなりましたしメモリも 32 GB 搭載されていますし、なにより Visual Studio Code のような高機能 IDE が手軽に利用できる状況でありながら、ろくにカスタマイズをしない Emacs で開発を続けるのも怠慢かなと考え、「WSL で快適な Go 開発環境を作る」という記事に書いたように Windows + WSL + Visual Studio Code という開発環境を整えました。
開発しているコードは Linux 向けですので、いくら Go がクロスコンパイルが得意といっても本当は Ubuntu 上で開発できるのにこしたことはありません。Windows にせざるを得なかったのは、Ubuntu 上で動作させる Visual Studio Code を 4K の解像度で X プロトコルで表示させるとラグが大きすぎて実用に耐えなかったためでした。
しかし先日、Visual Studio Code から Electron を取り除き、WebSocket でブラウザに画面を表示させるようにする code-server が OSS でリリースされたことにより状況は一変しました。X プロトコルよりもずっと効率的に画面操作ができるので、Chrome on Windows + Ubuntu on Hyper-V + code-server を使うことで以下が実現するのです。
- Visual Studio Code で手軽に高度な IDE を使って開発
- Windows のリモートデスクトップ機能で自宅からも快適に開発
- Ubuntu 上の Go でコンパイルするので高速&クロスコンパイル不要
- ラグなし!
環境構築手順を以下にメモしておきます。
続きを読む