大学1年くらいからずっと使い続けてきたVirtualBoxでの開発をやめてMacのネイティブ環境での開発に切り替えました。
開発環境歴
- 大学1年生: Windows + VirtualBox + Vagrant + CentOS
- 大学2~4年生: Windows + VirtualBox + Vagrant + Ubuntu
- 社会人1~2年目: Mac + VirtualBox + Vagrant + Archlinux
- 現在: Macネイティブ環境
VirtualBoxで開発してきた理由
最初プログラミングを始めた時はWindowsでRubyをやっていて、そのときの一番簡単そうな選択肢がVirtualBox + Vagrantでした。
その後3年ほどはずっとその環境で生きてきて大学卒業までしました。
Cypressや、OpenCVによる画像処理などのGUI環境が必要な時はX11を使っていました。
社会人になり、職業プログラマーになったときに初めてMacを使い、MacのRubyユーザーは基本的にVirtualBoxではなくネイティブの環境で開発をすると知っていたので自分もそれでいこうと試しましたが、次の点が不満でVirtualBoxに戻りました。
- Docker for Macが遅い
- 環境が汚れるのが嫌い
- なんか全体的に遅い感じがする(気のせいかも)
特に当時ほとんどの開発環境をDockerで構築していた自分にとってDocker for Macが遅いことは致命的でした。
ただ、VirtualBoxにも不満はあって
- VimでLSを動かしたりするようになってメモリが足りない
- バッテリーの消費が激しい
のような不満はあったものの、Mac側の不満よりはまし、ということでいままでVirtualBoxを使い続けてきました。
Macネイティブ環境で開発するようになった理由
Mac側の不満が気にするものではない状況になったからです。
Docker for Macが遅い件に関しては、自分の開発のスタイルとして、Dockerを極力避けるようになりました。
理由としてはCLIが貧弱で確実に開発効率が落ちているなーと感じたからです。なので自分のスタイルとしては、
RailsやGoなどのメインの環境や、PostgresなどのメジャーなDBはネイティブ環境、NginxやMinioなどのローカルに入れたくないなと思うものに関しては、Dockerという使い分けになっていました。
そのスタイルだとDocker for Macが遅かろうが特に問題にはなりませんでした。
次に環境が汚れるのが嫌いな件はasdfを使い始めたことにより解消されました。
~env系を使用していた頃は、言語毎に入れないといけなく、設定ファイルやインストール場所もバラバラだったのですが、asdfはいろんな言語をこれ一つで揃えられますし、 ~/.asdf
にほぼ全てが集約されています。なのでこれを使用すれば環境が汚れるという感じもなかったです。
まとめ
環境を変えてまだ1週間程度ですが、なんの不満もなく開発できています。
特にVirtualBoxの使用で問題になっていたメモリとバッテリーの問題が解決したのは大きかったです。
VirtualBoxに戻る可能性がないとは言い切れないですが、しばらくはこの環境でやっていきたいと思います。