WindowsでWeb開発するのもうやめようよ
WSLのメモリ折半、Docker不安定、GitKraken非対応――WindowsでのWeb開発に1年耐えたエンジニアが、Ubuntuに入れ替えて全て解決したので共有します
Linux
kkm
Backend Engineer / AWS / Django
Mac、Windows、Ubuntu。1日3つのOSを行き来する生活
私は1日のうちに3つのOSを使い分けています。
持ち歩くのはMac。自宅にはWindowsデスクトップ。現場では貸与されたDELLのノートと、持ち込んだミニPC(Ubuntu入り)。正社員としてWindowsで仕事をしてきた歴は7、8年になります。Windowsが嫌いなわけではありません。
ただ、開発機としてのWindowsには、ずっとストレスを抱えていました。特にDjangoでのWeb開発では。
今回、現場の端末もWindowsをさよならしてUbuntuに入れ替えることをお許しいただきました。結論から言うと、全部解決しました。やっぱりいい。この記事では、なぜWindowsでのWeb開発をやめるべきなのか、実体験をもとに書いていきます。
WindowsでWeb開発すると何が辛いのか
「WSLがあるから大丈夫でしょ」という声が聞こえてきそうです。私もそう思っていました。しかし現実は違います。コンテナを5個6個当たり前に立ち上げ、システムとツールを合わせてリポジトリを10以上管理し、常に切り替えながら開発する環境では、WSLでは足りないのです。
ライブラリの互換性問題
Django開発でPostgreSQLを使う場合、psycopg2のようなライブラリでWindowsと本番Linux環境の互換性問題が頻繁に発生します。psycopg2-binaryでごまかすこともできますが、公式PyPIでも本番環境ではソースビルド版の使用が推奨されています。Windowsでビルドしようとすると、MSVC++のバージョン問題やPythonバージョンとの組み合わせでハマることが少なくありません。
本番がLinuxなのに、開発だけWindowsでやるのはナンセンスです。「本番で動くかどうか」を常に気にしながら開発するのは、生産性を落とすだけです。
WSLのメモリ折半問題
WSL2はMicrosoft公式ドキュメントによると、デフォルトでホストメモリの50%が上限です。つまり32GBのマシンでも、WSLが使えるのは16GB。しかもこれはWindowsと折半しているだけで、Windows側のプロセスが重ければWSLはさらに圧迫されます。
.wslconfigで上限を変更できますが、上げすぎるとWindows側が死にます。Linuxカーネルはファイルシステムキャッシュを積極的に確保するため、WSLが一度掴んだメモリはWindowsに返されない問題も報告されています。
コンテナを5個6個立ち上げて、その上でエディタやブラウザも動かす。メモリがいくらあっても足りません。
Dockerの安定性とストレージ
Docker Desktop on WSL2は動きます。動きますが、ネイティブLinuxと比べると安定性に差があります。学術論文によるパフォーマンス評価でもWSL2経由のDockerはネイティブLinuxの約94%のパフォーマンスとされていますが、問題はパフォーマンスだけではありません。コンテナイメージやテストデータが大量にあると、WSLのVHDXファイルが肥大化してストレージを圧迫します。デュアルブートにしても同じ問題が起きます。
GitKrakenのWSL非対応
GitKraken公式によると、Windows版GitKrakenでWSL上のリポジトリを開くことは対応していません。WSLg上にLinux版GitKrakenをインストールする方法もありますが、HiDPIスケーリングやウィンドウスナップの問題があり、安定しません。結局、Windows側とWSL側で別々にインストールする必要があり、手間が増えるだけです。
シェルの分裂
普段Macを持ち歩いているのは、bash(zsh)が使えるからです。WindowsでGit Bashを使うのはだるい。PowerShellは、私の生き様だと流石に覚えてられません。使ったそばから忘れます。
chocoはいいツールですが、brewやaptには叶いません。パッケージの豊富さ、更新の速さ、ドキュメントの充実度。すべてにおいて差があります。
| 観点 | Windows + WSL2 | Ubuntu(ネイティブ) |
|---|---|---|
| メモリ | ホストの50%が上限。Windows側と奪い合い | 全メモリを開発に使える |
| Docker | WSL2経由で約94%性能。VHDXの肥大化問題あり | ネイティブ動作。安定・高速 |
| GitKraken | WSLリポジトリ非対応。WSLgでも不安定 | .debで普通にインストール。サクサク動作 |
| シェル | PowerShell / Git Bash / WSL bash の3つが混在 | bashで統一。Macとも同じ |
| パッケージ管理 | choco + WSL内apt(二重管理) | aptのみ。brew併用も可 |
| 本番との差異 | Windows固有の互換性問題が頻発 | 本番と同じLinux。差異ゼロ |
| ストレージ | WSLのVHDXがディスク容量を圧迫 | 直接ファイルシステム。無駄なし |
Ubuntuに入れ替えたら、全部「普通」になった
入れ替えてまず感じたのは、「普通に動く」ということの幸せです。Windowsで開発していたときは、何かを動かすたびに「これWindowsだと動くかな」と考えていました。それがなくなるだけで、開発体験がまったく変わります。
メモリがめちゃめちゃ余裕
まずメモリ。WSLの50%上限がなくなるので、当然ですが全メモリを開発に使えます。コンテナを5個6個立ち上げても、エディタを複数開いても、ブラウザのタブを大量に開いても余裕があります。WSLで常にメモリの心配をしていた頃が嘘のようです。
Dockerが当たり前に安定
Dockerがネイティブで動くので、安定性が段違いです。Docker Desktop経由ではなくDocker Engineを直接インストールするだけ。sudo usermod -aG docker $USERでsudo不要にして、もう終わりです。VHDXの肥大化もない。コンテナが普通に動く。それだけのことが本当にありがたい。
GitKrakenがサックサク
.debパッケージをインストールするだけで、10以上のリポジトリをサクサク切り替えられます。WSLのときはリポジトリを開くのに数秒待たされたり、突然フリーズしたりしていましたが、そういうストレスが一切なくなりました。
bashで統一できる幸せ
Macでもbash(zsh)、Ubuntuでもbash。シェルスクリプトがどこでも同じように動きます。aptでパッケージをインストールして、.bashrcに設定を書いて、終わり。PowerShellの構文を調べて、忘れて、また調べて、という無限ループから解放されます。
ビジネスツールもちゃんとある
「Linuxにしたらビジネスツール使えないでしょ」と思うかもしれませんが、2026年の今、主要なツールはほぼ揃っています。
- ✓Slack — 公式Linux版あり(.deb / Snap)
- ✓1Password — 公式Linux版あり
- ✓Asana — Snapストアからインストール可能
- ✓VS Code — 公式.debパッケージ
- ✓Google Chrome — 公式.debパッケージ
- ✓DBeaver — 公式.debパッケージ
「Office製品がないと困る」という声もあるかもしれませんが、今どきMicrosoft 365(Web版)やGoogleスプレッドシート・Googleドキュメントで十分です。ブラウザさえあれば同じように使えます。古の企業ボリュームライセンスでデスクトップ版Officeが必須、という人には残念ですが、そうでなければ何も困りません。
「でもLinuxって困ることあるでしょ?」
あります。正直に書きます。ただ、Windowsで開発するストレスに比べたらどうでもいいレベルです。
Tableau Desktop / Tableau Prep がLinux非対応
これが1年間Windowsを我慢していた最大の理由です。Tableau DesktopとTableau Prep FlowのアプリがLinuxに対応していません。Flowのローカル実行をする場面があったので、Windowsを手放せませんでした。
ただ、冷静に考えるとTableauの作業頻度は高くありません。必要なときだけ自宅のWindowsデスクトップや別端末を使えば済む話でした。その不便さと、毎日のWeb開発のストレスを天秤にかけたら、答えは明白です。
LINEがない
Linux版LINEは存在しません。Windows版LINEをWineやProton経由で動かそうとしましたが、WebView2依存で認証後にクラッシュして断念しました。
最終的にWaydroid(Androidコンテナ)でAndroid版LINEを動かすことで解決しました。ARM変換ライブラリ(libndk)のインストールやネットワーク設定など手間はかかりましたが、通話・スタンプ・グループトークのフル機能が使えています。一度セットアップすれば快適です。
日本語入力
MozcとIBusの組み合わせで問題なく使えています。USキーボードでAlt+`に切り替えを割り当てれば、Macと同じ感覚で入力できます。
あなたはLinuxにすべきか? 診断チャート
Q1. あなたの主な開発対象は?
実際に入れ替えるには
現場でのOS入れ替え交渉
「OSを入れ替えたい」と言ったとき、技術に詳しくない人には伝わりにくいです。「WSLのメモリが折半で〜」と言っても「へぇ」で終わります。
伝え方のコツは、具体的な数字とビジネスインパクトで話すことです。
- 1.「メモリの50%しか開発に使えない」→ 同じスペックのマシンで2倍のリソースが使える
- 2.「本番と同じ環境で開発できる」→ 環境差異によるバグが減る=テスト工数が減る
- 3.「Dockerが安定する」→ 環境構築のトラブルシュート時間が減る
- 4.「OSのライセンス費用がかからない」→ コスト削減にもなる
ポイント: 「Windowsが悪い」ではなく「Linuxの方が開発効率が上がる」という伝え方をすることが大事です。Stack Overflow Developer Survey 2025によると、業務でUbuntuを使う開発者は27.7%、WSLは16.8%。Linuxでの開発は決して特殊なことではありません。
セットアップの流れ
Ubuntu 24.04 LTSのインストール自体は30分もかかりません。開発環境のセットアップも、aptとdebパッケージで大半が完了します。私の場合、Dell Inspiron 14にインストールして、以下のツールをセットアップしました。
セットアップしたツール一覧(クリックで展開)
| カテゴリ | ツール | インストール方法 |
|---|---|---|
| ブラウザ | Google Chrome | 公式.deb |
| エディタ | VS Code + 拡張機能一式 | 公式リポジトリ |
| Git GUI | GitKraken | 公式.deb |
| コンテナ | Docker Engine + Compose | 公式リポジトリ |
| バージョン管理 | Git + GitHub CLI | 公式リポジトリ |
| Python | python3 + pip + venv + uv | apt + curl |
| Node.js | nvm + Node.js 22 LTS | 公式スクリプト |
| IaC | tfenv + Terraform | git clone |
| クラウド | AWS CLI v2 | 公式インストーラ |
| DB管理 | DBeaver | 公式.deb |
| コミュニケーション | Slack / LINE(Waydroid) | Snap / Waydroid |
| パスワード管理 | 1Password | アプリセンター |
| タスク管理 | Asana | アプリセンター |
| AI | Claude Code | 公式スクリプト |
| 日本語入力 | Mozc + IBus | gsettings設定 |
ほとんどのツールが公式パッケージやリポジトリから1コマンドでインストールできます。Ubuntu公式サイトでも開発者向けデスクトップとしてのサポートが充実しており、エコシステムは年々良くなっています。
悩んでるなら、入れ替えろ
WindowsでのWeb開発に問題を感じているなら、Ubuntuへの入れ替えは検討を加速している場合ではないです。実行すべきです。
メモリの折半問題、Dockerの不安定さ、GitKrakenの非対応、シェルの分裂、ライブラリの互換性問題。これらは「工夫で乗り越える」類のものではありません。根本的にOSの問題であり、OSを変えれば全部なくなります。
私は1年間我慢しました。Tableauが使えなくなるのが心配で。でも振り返ると、あの1年間のストレスは完全に無駄でした。もっと早く入れ替えればよかった。
Mac以外の端末で開発するなら、LinuxにOS入れ替えちゃうのがいい。
やっぱりそう思います。
Stack Overflow Developer Survey 2025によると、開発者のOS利用率はWindows 49.5%、macOS 32.9%、Ubuntu 27.7%です。Ubuntuは3番目に使われている開発OSです。Linuxでの開発は特別なことでも、マニアックなことでもありません。「普通」です。
余談: じゃあMacはどうなのか
普段持ち歩いているのはMacだと書きました。じゃあMacが最高なのかというと、私の使い方はたぶんMacユーザーの皆さんに怒られるレベルです。
開いたら速攻zshの窓を画面4分割で開いて、VS CodeかGitKrakenかGitHubかbashの窓を行き来するだけ。1年くらい使っていますが、ショートカットもまともに覚えていないし、Macユーザーの間で有名なソフトも何ひとつ入れていません。要するにzshを開くためだけにMacを使っています。
それでも、軽くて安定している。動作の話です。そこはmacOSが一番だと素直に思います。持ち歩く端末としてはMac、据え置きの開発機はUbuntu。今回の記事で書いた通り、現場で貸与されたDELLのノートもWindowsからUbuntuに入れ替えたので、持ち歩きはMac、現場も自宅ミニPCもUbuntu。この組み合わせが、今の私にとってのベストです。
自宅のWindowsデスクトップはどうしているかというと、ゲーム用です。ゲームは流石にWindows。ただ、30代になってゲームすることもほぼなくなったので、正直やや眠り気味です。いっそZorin OSあたりにしちゃおうかとも思いますが、流石に役割がかぶりすぎるので、Windows端末は1台くらい自宅に残しておきたい。Tableau使うときもありますし、お客さんによってはMicrosoft Accessのファイルを開かないといけない場面もあります。古のツール系はLinuxではどうにもならないので、Windowsが完全にないのも困る。