はじめに
最近 Linux Mint と Ubuntu を試してみました。数年前にもいくつかの Linux ディストリビューションを試したことがあります。当時はプログラミングには興味がなく、ただいじくり回すのが好きで、いつも Puppy Linux の USB を持ち歩いていました。本当に頑張ってみているんです。今はプログラミングの能力も上がってきたので、もう一度挑戦してみましたが、結局いつも Mac か Windows に戻ってきてしまいます。
2025年5月6日更新:
前半はプログラミング初心者向けです。プログラミングに慣れている方は、このセクションに飛んで、現役プログラマーの意見を読んでください。
プログラミング学習の第一歩
結論
Mac を使いましょう。その理由を私の経験から説明します。
Linux を選ばない理由
- 難しさ
Mac はコンシューマー向けのオペレーティングシステムであり、その機能やユーザーインターフェースの多くは非常に使いやすく作られています。ほとんどのアプリケーションにはインストーラーがあり、ダウンロードしてクリックしてインストールすればすぐに使えます。
一方、Linux は PC で何かをしようとすると、ほとんどがテキストベースです。Linux Mint は Windows にそっくりだと言う人の言葉を信じてはいけません。ある程度まではそうですが、組み込みでないものやソフトウェアマネージャーにないものをインストールしようとすると(必ずそうなります)、macOS や Windows ならワンクリックで手に入る単純なプログラムをインストールするためだけに、あれこれ調べ、誰かが「これで動いた」と言ったコマンドを試しても自分には動かない、ということを全部自分で解決しなければなりません。
- 時間がかかる
前の点の続きですが、何かをインストールしようとすると、いじくり回すのに多くの時間を費やすことになります。特に、Windows や Mac で慣れ親しんだものが Linux にはない場合、その代替を探す必要があります。ターミナルを使ってコードを書くことが多いのだからそれでいいじゃないか、と思うかもしれませんが、その時間を JavaScript、React、SQL、Python などを使って何かを作ることに使えます。仕事で使うコードや、ウェブサイトやアプリケーションを作るためのコードです。bash を使わないと言っているのではなく、必要ではないということです。
- OS の不具合
Linux が最初から入っているデバイスを買ったのなら、それは素晴らしいことです。もともと Windows や Mac が動いていたデバイスに Linux ディストリビューションをインストールすると、OS の動作でいくつか不具合に直面する可能性が高いです。うまく動くこともありますが、あちこちに修正が必要な箇所が必ずあります。いくつか挙げると、Zoom が時々フリーズする、ラップトップのキーボードバックライトが動かない、Wi-Fi が遅い、などです。Linux のカーネルやドライバーは主にコミュニティによって提供されており、それは素晴らしいことですが、同時にあなたのラップトップに対して責任を負う者がいないということでもあり、なぜそうなるのか、どうすればいいのかを自分でコードを使って解決しなければなりません。多くの場合、こうした問題は Linux ディストリビューションとハードウェアの非互換性によって引き起こされます。
- コミュニティ
Ubuntu や Linux Mint のような主要な Linux ディストリビューションは、最大規模のユーザーベースを持っています。Linux を使い始めたばかりなら、この2つのどちらかを選ぶことを強くお勧めします。ユーザーが多いほど、問題の解決策も多いからです。しかし、Mac は Linux よりもはるかに多くのサポートがあります。Apple のウェブサイトだけでも、あるいは自分の MacBook のモデルに合った正確な解決策をはるかに簡単に見つけられます。
- プログラミングの学習
プログラミングのチュートリアルの多くは Mac と Windows 向けに作られています。ほとんどの場合 VSCode で作業するとしても、いくつかの調整のために OS のターミナルとやり取りする必要があり、Linux は少し動作が異なります。問題の解決策や代替手段はいつでも見つけられますが、例えばフロントエンド開発者になりたいだけなら、こうしたことは知る必要はありません。
- パーソナル PC
私にとって、Mac はパーソナル PC であり、Linux はそうではありません。Mac の組み込み機能の多くはとても使いやすく高く評価されています。特に iPhone を持っていれば、Apple デバイス間でコピー&ペーストしたり、AirDrop を使ったりできます。
- 万能性
Linux でできることは Mac でもすべてできますが、その逆はできません。例えば、iOS 向けのモバイルアプリを作りたいなら Xcode があります。VSCode を使いたいなら、もちろん両方とも提供しています。コマンドラインが好きなら、Mac にもターミナルがあります。
初心者向けの結論
Mac は間違いなくより堅牢で、万能で、いじくり回さなくても信頼でき、プログラミングのニーズにも個人のニーズにも素直に応えてくれます。Apple が単純に嫌い、あるいは高価なデバイスが嫌いという場合にのみ、Linux を使うことをお勧めします。とはいえ、中古の MacBook はいつでも手に入ります。Linux を使わないためだけに MacBook を買う価値はあります。はは、自分が偏っているのは分かっています。
それでも、あなたの成功を願っています。
コードを書き続けましょう。
経験豊富なプログラマー向けの補足
上に書いたことは、プログラミングの経験がまったくないかほとんどない人向けです。そして私の主な主張は、macOS はプログラミングを学ぶ人にとってより素直にスタートでき、同時に Mac は個人のニーズも満たしてくれるということです。障害が多すぎると学習者のやる気を削ぎ、辞めてしまうことにつながりかねません。
しかし、プログラミングに慣れているなら、話は変わってきます。
以下はより技術的な内容になります…
では、プログラミングに慣れていて Linux に親しんでいるあなたは、本当はどちらを選ぶべきか?
個人的には、やはり他のマシンよりも M シリーズの MacBook を好みます。この M2 MacBook Air でこの数年、本当に多くのことをこなしてきました。
ハードウェア面では、高速で安定したデバイスで、バッテリー持ちは抜群、トラックパッドは素晴らしく、キーボードは静か、画面も十分、静かなデバイスで、スピーカーも内蔵されています。
ソフトウェア面では、トラブルなくスムーズに動作し、どんなソフトウェアもダウンロードするだけでも brew を使っても、とても簡単に手に入ります。
正直に言うと、私は古い MacBook Air 2015 でプログラミングの学習を始め、それ以来ずっと MacBook を使い続けています。しかしそれは主に iOS アプリを作るためです。Apple のネイティブアプリを作るつもりがないなら、Mac を買う必要はありません。それが次の最初のポイントにつながります。
どんな種類のプログラミングをするのか?
モバイルアプリ、Apple アプリ
Apple デバイス向けのネイティブアプリを作りたいですか? それなら Mac を買いましょう。「ネイティブ」という言葉がここでは重要です。というのも、技術的には React Native と Expo を使って Apple デバイス向けのアプリを書くことができ、Xcode のコンパイルを代行してくれるクラウドコンパイラがあるからです。つまり、Linux や Windows マシンでプログラミングして、Expo のクラウドに送ってコンパイルしてもらえます。しかし現実には、古いものでも Mac を買ったほうがはるかに良いです。ローカルでビルドすればコードを把握でき、変更もずっと簡単で素直になります。
主にウェブサイトやバックエンドサーバーを作るなら、Windows でもどんなコンピューターでも構いません。そうしたプログラミング作業にグラフィックの要件はないので、古い Lenovo ThinkPad でも十分にこなせます。
Android アプリの心配は不要です。どのプラットフォームでもプログラミングできます。
ゲーム
しかし、ゲームプログラミングをする場合や、言語モデル・機械学習モデルを実行・構築する必要がある場合は、Mac よりも Windows/Linux を搭載した強力な PC を買うことをお勧めします。コストパフォーマンスが良くなります。私が最後に確認したとき、Unreal Engine 5 のパフォーマンスは Windows のコンピューターと比べて見劣りしましたが、それはまだ Apple Silicon 向けに最適化されていないからです。
Godot や Unity でプログラミングするのでなければ。これらの軽量なゲームエンジンなら MacBook でも十分です。
ソフトウェア
Docker
Docker の使用は簡単です。macOS 用の Docker Desktop は .dmg で提供されています。ダブルクリックしてインストールすればすぐに使えます。
ローカル Postgres
Postgres.app も同じで、とても簡単です。
シミュレーター
MacBook では、どのプログラミングフレームワークを使っていても iPhone や iPad のシミュレーターが使えます。Flutter、React Native、SwiftUI など、何であれ MacBook で動きます。UTM に Linux をインストールして Mac 上で Ubuntu を動かすこともできますが、その逆はできません。
コードエディター
まあ、今ではどの IDE もあらゆるプラットフォームにあります。
最終結論
つまり、自分自身に問いかけるべき重要な質問はこれです。Apple デバイス向けのモバイルアプリを作りたいか、そうでないか?
クロスプラットフォームのフレームワークを使っていても、Apple アプリ開発の完全な体験を得るには MacBook を買う必要があります。それだけでずっと楽になります。
私は Apple の囲い込まれた庭園や、追加ストレージに対する不要な上乗せ価格は好きではありませんが、彼らは素晴らしい製品を作っています。
私がお勧めするのは、今 Windows PC しか持っていないなら、Ubuntu や Linux Mint をインストールして気に入るか試してみることです。気に入ったら、本当に Mac が必要になるまで使い続けましょう。
私はまた、本当に欲しいコンピューターを手に入れることの擁護者でもあります。デバイス自体が使っていて楽しいというだけで、作業したくなるものです。
補足
Apple アプリについてさらに
決断する前に覚えておくべきことがいくつかあります:
- 最新の OS を実行する MacBook でしか、最新の Apple API を使って開発できません
- 例えば AI のようなものは、Apple Silicon の Mac でしか開発できません。
- Vision OS は Apple Silicon の Mac でしか開発できません。
- 機械学習はシミュレーターではなく、実機でしか実行できません。 - オンデバイスの機械学習モデルを実装した場合、アプリをテストするには iPhone/iPad が必要です。iPhone シミュレーターで実行しようとするとクラッシュするだけです。