ブログ/記事一覧/WindowsでWeb開発するのもうやめようよ
stop-web-dev-on-windows-cover

WindowsでWeb開発するのもうやめようよ

WSLのメモリ折半、Docker不安定、GitKraken非対応――WindowsでのWeb開発に1年耐えたエンジニアが、Ubuntuに入れ替えて全て解決したので共有します

Linux
kkm-horikawa

kkm

Backend Engineer / AWS / Django

2026.03.135 min1 views

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はいいツールですが、brewaptには叶いません。パッケージの豊富さ、更新の速さ、ドキュメントの充実度。すべてにおいて差があります。

観点Windows + WSL2Ubuntu(ネイティブ)
メモリホストの50%が上限。Windows側と奪い合い全メモリを開発に使える
DockerWSL2経由で約94%性能。VHDXの肥大化問題ありネイティブ動作。安定・高速
GitKrakenWSLリポジトリ非対応。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 GUIGitKraken公式.deb
コンテナDocker Engine + Compose公式リポジトリ
バージョン管理Git + GitHub CLI公式リポジトリ
Pythonpython3 + pip + venv + uvapt + curl
Node.jsnvm + Node.js 22 LTS公式スクリプト
IaCtfenv + Terraformgit clone
クラウドAWS CLI v2公式インストーラ
DB管理DBeaver公式.deb
コミュニケーションSlack / LINE(Waydroid)Snap / Waydroid
パスワード管理1Passwordアプリセンター
タスク管理Asanaアプリセンター
AIClaude Code公式スクリプト
日本語入力Mozc + IBusgsettings設定

ほとんどのツールが公式パッケージやリポジトリから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が完全にないのも困る。