質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • Python

    11741questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

プログラミングに最適なMac

解決済

回答 5

投稿

  • 評価
  • クリップ 1
  • VIEW 21K+

toza_program

score 5

連日お世話になっています。
プログラミングを本格的に趣味としてはじめようとしているのですが(今までの総時間は6時間程度)
現在使っているPCはWindows7のデスクトップ(一体型) 記憶が正しければ2012年に購入した富士通製の物です。
今までのプログラミングの練習は、そのPCを使ってやっていたのですが、インターネット検索用とプログラミング用を別けたい事、もう6年も使用していること、デスクトップであり持ち運びができないこと、Windowsの為、iOS向けのアプリ開発ができない事(今のところ予定はありません。)等から
MacBook MacBook air MacBook pro のいずれかからひとつ買おうと思うのですが、プログラミングではどの程度の性能のPCが必要とされるのでしょうか? 現時点で自分は、入門書に載っているコードをそのまま練習する程度の事しかしていないので本格的にやろうと思うとどの程度の性能が必要なのか、最適な画面のサイズがわかりません。

プログラミング言語
Python
将来的に挑戦したい事、興味のある事
Webサイト製作
アプリ開発
ディープラーニング
AI

特に予算に制限はありませんが、Touch Barは良さがイマイチわかりませんのでMac Book proの場合は非搭載モデルが良い。
持ち運ぶ可能性はゼロではないが、頻度はあまり高くないので軽さはあまり重視していないです。

インチとストレージの大きさを選ぶとプロセッサとメモリの変更が可能なのでオススメがあれば教えて下さい。
宜しくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

checkベストアンサー

+18

多くの人が勘違いをしていますが、「プログラミング」自体はエディタさえ動けば良いですので、性能は求められません。しかし、作る物を実際に動かしたりするときや、また、動かしてデバックするときに性能が求められます。

やりたいことの中で一番性能のネックになるのはディープラーニングです。ある程度のディープラーニングを行う場合はそこそこの性能のGPUが必要になります。より本格的なディープラーニングになるとGPUを搭載したサーバーが大量に必要になります。ですので、開発段階では三択になります。

  1. そこそこの性能のGPUを開発機に搭載する。
  2. 本格的なGPUを搭載したサーバーを別途購入し、実行はそのサーバーで行う。(初期費用が高い)
  3. 手元で行うことは諦めて、動作はすべてクラウドのサーバーを借りて行う。(ランニングコストが高い)

本来、機械学習なんて物はかなりの金食い虫です。企業とかでなければ、現実的なのは1.と3.です。1.はゲーム用マシン程度スペックでそこそこいけますが、企業レベルの本格的な物を動作させるのは無理と割り切る必要があります。3.はお試しの無料サービスがいくつかあり、無料版は本格サービスとして提供できるようなレベルではありませんが、開発だけであれば十分となります。

ということで、上の1.と3.について書きます。

最初の1.の場合、そこそこのGPUが必要になります。ディープラーニングに使うにはどんなGPUでも良いというわけではありません。CUDAという機能が搭載されていなければなりません。そして、使うライブラリがそのGPUをサポートしているかです。ディープラーニングの機械学習でよく使われるTensorFlowはNVIDIA製GPUしかサポートしていません。しかし、現在のMacBook, MacBook Air, MacBook ProにはIntel製かAMD製のGPUしか搭載されていません。つまり、内蔵のGPUではTensorFlowを使うのは難しいということです。TensorFlow自体はCPUだけでも動くバージョンもありますが、遅すぎて使い物にならない可能性があります。あれ、MacのノートPCでは無理なのでしょうか…いいえ、まだ諦めるのは早いです。

最新の機能にeGPUというのがあります。eGPUというのは端的に言うと外付けGPUです。ノートPCのようなグラフィック性能が低いマシンに外付けでGPUを追加することで、グラフィック性能を上げると言うことです。eGPUはThunderbolt3を使用しますので、その点だけが必須になります。MacBookとMacBook Airにはありませんが、MacBook ProであればThunderbolt3はどの機種も搭載されています。ということで、この場合は少なくともMacBook Proでなければならないとなります。

実際に動作させた参考記事: macにeGPUを繋いでTensorflow(GPU版)を動かす - Qiita

ただし、macOSでのeGPUは(Appleはサポートしていくと言っていますが)まだ実験的機能であり、安定して動作するという保証は全くありません。現状は人柱です。プログラミングと言うよりMac自身やPC周りの高度な知識が必要になる場合がありますので、ご注意ください。(現状はコメント欄参照)

さて、手元で動かすことは諦めてクラウドで実行するとなると、手元のマシンの性能はどうでも良くなります。それこそ、ネットに繋いでエディタが動けば十分になるからです。画面の大きさ、持ち運びしやすさなどから選べばいいかと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/18 12:01 編集

    MacでもHighSierraだとeGPUがうまく動作しない可能性があるので、新しく買う場合は注意が必要です。
    今後対応するようになるかもしれませんが、メーカー次第です。
    AppleとNvidiaの機嫌次第ですね。
    2ヶ月前は動かないことを確認していました。

    そういえば、
    中古の場合、MacBookPro late2013のGPU版はeGPUと競合してクラッシュするので使えません。
    内蔵NvidiaGPUのないモデルを選択してください。

    キャンセル

  • 2018/03/18 12:12

    一応AppleはeGPUを今後サポートしていく宣言としていますが、製品同士の相性もあるのでeGPUを買うときはmacOSにどこまで対応しているかは気にした方が良いかも知れませんね。まぁ、Windowsであっても同様なんですけど(メーカー側がeGPUの公式サポート表明しているノートPCなんてRazer Blade Stealth(それもRazer Coreとの組合せで)ぐらいしか無いと思う)。

    第一GPUはマザーボードとの相性問題で動かないなんてことはよくあることなので、GPUの動作に不安があるなら、動作確認済みのゲーミングマシンを買うのが一番かも知れません。

    キャンセル

  • 2018/03/18 12:27

    個人的にはコンソールとしてのMacbookPro+GPU積んだ自作のLinuxがよいと思いますが、予算次第でしょうね。

    AppleはeGPUをサポートするといいつつ1年以上経っても部分的な利用しか未だにできないので、あまり期待できないかもしれません。
    情報も英語の自己責任のものがほとんどなので、MacbookPro+eGPUは少しハードルが高いです。
    XcodeとCUDAのバージョンのケンカを見ている気分です…

    eGPUの場合Windowsの方がずっと進んでいます。
    おまけにHyper-Vの仮想化でGPUパススルーができるので、Windows内の仮想化したUbuntu内でGPUが使えるはずです。(未検証)

    キャンセル

  • 2018/03/18 12:42

    私もMacでeGPUはかなり前から注目しているんですが、完全対応を謳ったeGPU製品が見当たらなくて、Macを買うのをとりあえず中断している最中だったりします。

    前にHyper-VのGPUパススルーをしらべたら、Windows Serverのみという制限があるみたいです。仮想化で行くと初めからESXiなど使うか、Linux + VirtualBox(同じVirtualBoxでもWindowsは未対応なので注意)が良いかもしれません。

    って、どんどん、Macから離れていくような気がしますが、Macにこだわるなら、GPUの件はクラウドでと割り切った方が良いかもしれません。

    キャンセル

  • 2018/03/18 12:52

    おっと、Macからの選択でした。

    ディープラーニング目的のGPU利用はMacと相性が悪いので、初心者と自負するのならとりあえず忘れてしまってよいのかもしれません。

    キャンセル

  • 2018/03/25 08:48

    ご丁寧にありがとうございました。
    なるほど、焦らずゆっくり考えます。

    キャンセル

  • 2018/03/25 12:57

    追加情報

    試していないのですが、
    https://gist.github.com/geekcui/d0800d62e377e0103b1cc2b889ed1128
    最新のMacBookProでもTensorflow-gpuを使えるようになっているかもしれません。

    キャンセル

+7

現在2014年製のMacbookProを使っているものです。

単に手元のPCでちょっとしたプログラムを書くのであれば、どれを選んでも問題は無いでしょう。好みの問題になってしまいます。

しかし、以下のようなことがやりたいとなった場合は、若干選択肢が絞られてくるのではないでしょうか。

・手元のPCでVagrant、Docker等を使って仮想環境を立ち上げたい。
⇒この場合、メモリが少ないと仮想環境を立ち上げることでPCが重くなったり、そもそも仮想環境が立ち上がらない場合があるので、メモリが多いものがオススメ。(最低8GB、できれば16GB以上)

・スマホアプリを開発したい。
⇒コンパイルするのにCPUを使うため、CPUが弱いものだとコンパイルに時間がかかり、結構ストレスになったりしますので、CPUが強いものがオススメ。(MacbookProが優位)

・手元のPCでディープラーニングを試したい。
⇒内蔵あるいは外付けGPUが欲しい。CPUでも最悪試せるが計算時間に雲泥の差があるようです。(MacbookPro一択)

というわけで、やりたいことにより選択肢が変わりますが、個人的には総じてMacbookProがおすすめです。
Macbook全般に言えるのは、拡張性が悪く後からメモリを追加したりすることがかなり難しいので、最初からある程度ハイスペックのものを買っておくのがおすすめです。(かく言う私も昨年MacbookAirからMacbookProに乗り換えましたが、もっと早く乗り換えておけばよかったと後悔・・・)

予算が許すのであれば最新のMacbookProを買ったほうがいいですが、予算がもしあるのであれば数年型落ちの中古を探してもいいと思います。(数年前のものでも今でも全然使えます。ただしバッテリだけは注意)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

GPUに関連してがメイン。

ディープラーニングにGPU添えておけばよい風潮があるので少し気になりました。
GPUで加速できるところは「畳み込み」という操作です。
この操作に対して今の一番良いGPUとCPUで比較すると20倍ほどの速度の差が出ます。
2日の計算が1ヶ月以上の差なので無視し難いです。
この「畳み込み」、画像を処理する場合多用します。

一方でGPUはシンプルなMLPや自然言語処理ではあまり使用せず、GPUがなくてもそれほど速度に差が出ません。

それに対して、GPUの弱点もあります。
それはメモリの大きさです。
せいぜい12GBで後付も不可能なので、メモリを多用する計算を行う場合メインメモリを大量に積んでCPUを使うべきです。


細かい話がいろいろありますが、不都合が生じた時に目的にあうものを買い換える・買い足すことも考えられます。
汎用性から考えるとMacbookProは悪くない選択肢です。
メモリは予算の許し限り増やすべきです。
コアの数が多いほうが使いやすいです。
コードを書くとき画面が大きいほうが見晴らしがよいです。外部モニタで代用できます。

Macbookはコア数が足りなくて仮想マシンが少し重いです。
その分物理的に軽いですが…

MacbookAirは今年中に新しいモデルが出るか消える雰囲気です。
やすい以外のメリットはないように思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

買うなら間違いなくMacBook Proですね。
理由としてはCPU性能がAirに比べて優秀で、サクサク動くからです。

上記の方が言っているようにエディタさえ動けばどんなコンピュータでもいいのですが1つのエディタを開いたり実行する際に性能の低いコンピュータだと時間がかかりますが、性能がいいとすぐにひらけます。

また、質問者さんはプログラミング初心者だということですぐには大きなプログラムやアプリを作らないかもしれませんが将来的にアプリ開発やAI等の大きなプログラムを書くようになる場合に備えてやはりMacBook Proを買うべきだと思います。(自分ならTouch Barの方)(さらにメモリなどもオプションで増やします)

最近のニュースでアップルがAirを刷新するかもということなので値段に余裕がないのなら少し待ってアップルの発表の後に再検討でもいいのではないでしょうか?AirもProには劣るもののいいコンピュータです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

僕はMacbook Proのlate2013を使ってます
iOsアプリを開発したいならMacでも良いと思いますが
Pythonをやりたいという目的ならMacを選ぶ必要性はまったくないと言っていいと思います
MacにインストールされているPythonは2系ですのでPython3をやるには入れ替えが必要になります。
bashのコマンドやvimなどの操作感もLinux系とは微妙に違います
最近のMacは起動も遅いですし、僕は画面に余計なスペースを取るDockがキライなのでMacOSは万が一のファームウェアのアップデート用にインストールしてるだけで
Arch系のManjaroというLinuxを入れてプログラミングをしています。
開発環境はvisual studio code

個人でPythonプログラミングをするのに、よっぽど古いPCや重い統合開発環境でも使わない限りPCの性能なんてほぼ関係ないと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Python

    11741questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。