M1/M2 Macをプログラマが購入して実際に使った感想
新型MacBook Airを購入しました
Appleが作ったM1のMac。リリース当時からすごい話題でしたね。今ではM2Proまで発売されています。 発売当時は圧倒的なパフォーマンスの一方で、IntelCPUと比べてガラッと内容が変わったため特に互換性の面で不安が多く有りました。 この記事は2021年にM1 Mac Book Air(16GB)を購入したしがないプログラマが、実際にM1Macで仕事ができるかどうかを感じたままに書いている記事です。 ちょこちょこ内容を修正して、この記事を書いている時点では2023年3月になりました。購入直後に比べて今はだいぶM1のMacでもほとんど問題がなく仕事ができる様になっています。 なお、ヨドバシカメラでもカスタムモデルのMacが購入でき、なおかつポイントも5%付きますので、購入を検討されている方はヨドバシのMacおすすめですよ。
購入当時にM1 Macがうまく動作しなかった話(ほぼ過去の話です)
実際にM1のMacを買った当時ではいくつかのアプリケーションがうまく動作しなかった時代がありました。 特に私の仕事ではNode JSをよく使いますが、NodeJS Version12がまともに動きませんでした。 ロゼッタという互換モードを使うことで動くと思っていましたが、NodeJSとロゼッタの相性が極端に悪かったのか、たとえば npm installというコマンドを完了するのに30分近くかかりました。 ただしこの問題は過去の問題になりつつあります。今のNodeJSの主流はNodeJS Version16に移り変わりました。NodeJS16ではM1のマックに最適さされており、ロゼッタを使うことなくスムーズに動作してくれています。 原因はわかりませんがNodeJS14でもスムーズにうごきました。NodeJS12だけが極端に相性が悪いのかもしれません。はたまた設定が悪かったのか・・・ なんにせよもうNodeJS12に戻ることは無いので、いまでは気にすることも有りません。完全に過去の問題となりました。
というコマンドを叩く必要がたまにありますが、このpod installも購入直後手はうまく動きませんでした。 この問題についても2023年現在では解決しております。
静的サイトジェネレータの「Gatsby」がそのままでは動作しませんでした。解決策はみんなの味方Qiitaに記載があります。 同様に、静的サイトジェネレータの「GridSome」もM1マックでは動きません。 どうも画像圧縮処理系のプログラムがM1マックではうまくインストールできないようで、失敗するようです。 よって、Nuxt-jsの「Nuxt-img」も対策しないとうまく動きませんでした。 解決策はGitHubのissueに上がっています。 Quasarが提供しているicon Genieもインストールに失敗しましたが今では問題なくインストールや実行ができるようになりました。
このように細かい点でうまく動作しないものも一部ではありますがあります。 一方で先人たちのありがたい情報もたくさんWeb上には出回っており、彼らのありがたい教えによりある程度メジャーなアプリは問題を解決することが出来るようになっています。
homebrewなどもm1に対応してくれています。 私はWebアプリ(特にフロントエンド)のプログラマですが、私の使用するアプリの多くは現在のM1 Macで問題なく動作することが出来ていると言えます。
互換性の問題も徐々に解決しつつある
CPUが変わったことで互換性の問題がありますが、メジャーどころなソフトは思った以上に早くM1に対応してくれています。 様々なWebサイトではM1でインストールできない場合の対応法などを紹介してくれている記事が沢山でてきました。 発売直後と違い、このあたりの問題がだいぶこなれてきた感じがあり、2023年現在、ほぼ気にならないレベルにまで移行が完了したと感じています。 たまにエラーはでますが、頻度としてはだいぶ少なくなりました。 Intel版Macはもう出番がないと思い売却しました。今はM1Mac1本で仕事をこなしています。
M1/M2 Macに乗り換えるメリット
Appleは今後の製品をIntelからM1/M2に移行することを宣言しており、Macで開発をするには将来的にIntelと手を切ってM1/M2を使う必要があります。 M1Macを使ってみて率直に思ったのは「めちゃくちゃええやん」ということでした。 わたしの15インチマック(16GB 512GB)は、購入当時35万円ほどしました。 今回のM1マックは、メモリ16GB ストレージ512GBに拡張させましたが16万円ほどです。 15インチを購入したときに比べて半額以下で買えて、なおかつ性能が大幅に向上(メモリとストレージは同じ)しました。 追記:悲しいことに、歴史的円安の影響で今はApple製品すべてが+2万くらい値上げしています。
とにかく早い
アプリをDevモードで起動するまでに、Macbook Proでは30秒、M1マックでは15秒でした。 起動時だけではなく、例えばブラウザのリロード速度や、VSCodeのコードインテリセンス(文字の補完機能みたいなやつ)の対応速度が1段階早くなっています。 一挙手一投足がとにかく洗練された速度になっており、操作全てが快適に感じました。
ファンレス。静か。でも熱くならない
私の購入したモデルは Mac Book Airで、ファンレスモデルです。 最初は心配でしたが、全くの杞憂でした。多少の負荷であればCPUはほとんど熱を出しません。 Intel版のMacはちょっと動かすと暖かくなり、(冬場は地味にありがたいのですが)酷使するとファンが高速で回転し始めます。
M1のメモリは8GBか?16GBを選ぶべきか?(プログラマ的に)
メモリは多ければ多いほどよいです。ただし購入代金が高くなるので悩ましい問題でもあります。 Mac OSはリソースを最大限に使おうとする傾向があるため、メモリが潤沢でもそれだけ食いつぶすらしいです。だからアクティビティモニタでメモリの余裕が少ないのは別に異常ではないようです。
それでも、メモリは8GBだと足りないと思います。
この記事を書いているとき、私はhugoのサーバをMac上で立ち上げています。 hugoとは静的サイトジェネレータのことで、今ご覧頂いているこのページもhugoで作られています。 記事を執筆するエディタにはVSCodeを使っています。VSCODEも地味にメモリ大食いです。 記事に使用する画像を圧縮するといった目的でphotoshopも同時に起動しています。ついでにアプリ開発のために nodeJSのプロセスが2つほど立ち上がっていますが、さて、実はこのくらいでメモリの状況はこれで黄色になります。
16GBのメモリでも結構かんたんに黄色になりますので、これが8GBだったらどうなるんだろう?と気になるところですね。 お世話になっている他会社の方とZoomする機会があり、彼が画面を共有するとGoogle Chomeがいつも20個くらいタブが開いており、いつも「重い」とぼやいています (タブ開きすぎでしょ?減らせば!とは言えません)
彼もM1マックですがメモリは8GBとのことです。彼はちなみにプログラマではないのであまり参考にはなりませんが、画面をみるにPhotoShopとイラレあたりがメモリを食っていそうだなぁとは思いました。
つまり8GBってちょっと重めのアプリを使おうとするとトタンにきつくなるんじゃないかな?って思うんです。 特にPhotoShopなどのアドビー製品はメモリ大食いなので、それらを主として使う方は絶対16GB以上が必要です。 プログラマ的にも、メモリ16GB積んでいたとしてもnodeJSなんかを数本稼働させるだけで結構すぐに黄色になります。だから個人的には8GBは選択してはいけないと思います。
ただし、バーが黄色だからといって動作が重いわけでも有りません。以外にも動作はサクサクのままです(これもすごいことですね) メモリのバーが赤に至ったことはこれまで確認したことは有りません。おそらく赤にまで行くと動作がもたついてくるのでしょう。
そんなわけで、最低でも16GB。金銭似余裕があれば32GBあると安心です。
一方でCPUについては以外にも静かです。メモリが黄色でもCPUは水平線のように穏やかだったりするんです。
この画像はアプリのビルドコマンドを叩いて20秒ほど経過した画面です。ブワッと一気にCPUのグラフが増え、その後すぐに落ち着きます。 瞬間的に燃え上がり、瞬間的に沈静化します。長時間の動画書き出しのように長い時間稼働する処理だとCPUの発熱もひどいかもしれませんが、少なくともアプリビルドのように1分以内で終わるような処理であれば、メモリほど細かいことを気にせずサクサク動作できることでしょう。
結論・M1/M2Macは書い
グダグダ書いていて来ましたが、結局何が言いたいのかというと、M1/M2 Macは買って損はないから買いなさい。というアップル信者からの布教活動なのでした。 特に開発メインの場合はWindowsよりMacのほうが環境構築の面でも圧倒的に楽ですから、おすすめです。