2013-11-18

技術屋にMac使いが多い理由ってなに?

技術屋にMac使いが多い理由ってなに? : IT速報

答え:お手軽なUNIX互換環境だから。

今、個人が使うデスクトップやラップトップ用のOSとして、実用的なものに、GNU/Linux, Windows, Mac OS Xがある。読者の中には、FreeBSDも十分に実用的だと主張する者もいるかもしれないが、少数派だろう。

もちろん、サーバーや組込み用途には、その用途に合わせて別のOSが使われている。しかし、プログラマー個人が使うコンピューター用のOSは、圧倒的にMac OS Xである。これはとても残念なことだ。なぜならば、Macは不自由なソフトウェアで、しかもその動作するコンピューターまで、技術的な理由がなく制限されているからだ。

UNIX互換環境を必要とする理由としては、既存のPOSIX互換環境向けに書かれた有用なツールがとても多く、プログラマーはなんとしてもそのツールを使いたいのだ。

GNU/Linux向けに書かれたソフトウェアを、Macに移植するのは、Windowsに移植するよりはるかに簡単である。これは、Macが、やや独自な方向もありながらも、基本的にはネイティブでPOSIX互換であるからだ。WindowsはネイティブでPOSIX互換ではないので、ソフトウェア移植は、Windows用のAPIを使って書きなおすか、あるいはWindows上にPOSIX互換環境を構築しなければならない。たとえばCygwinだ。ユーザースペースで実装されたこの手の互換レイヤーは、あまり効率が良くない。

では、なぜ自由なGNU/Linuxではなく、不自由なMacなのか。それは、Macは簡単に使えるからだ。

GNU/Linuxは、どのディストロも何かしらの問題を抱えている。世の中に出回っているコンピューター(もちろんハードウェアにも不具合がある)を全て完璧にサポートするのは難しい。Macは動作するコンピューターが限定されているので、サポートしやすい。

たとえば、以下は筆者が、現在Ubuntu 13.10で悩まされている問題である。

  • USBマウスが勝手に省電力状態になり復帰しなくなる。

    USBの抜き差しで解決。(何かのデーモンを再起動してソフトウェア的に解決する方法がないものか)

  • サスペンドからの復帰時に、GUIのネットワーク接続が機能しなくなる。

    Upstartを使ってnetwork-managerデーモンを再起動することにより解決できる

    sudo restart network-manager
    
  • GUIからのシャットダウンやリブートができなくなる

    古き良きshutdownコマンドは動く

    sudo shutdown -h now
    
  • iBusが動かなくなる

    iBusデーモンを再起動する

    ibus-daemon -drx
    

他にも今は修正されたが、CLIツールの利用を余儀なくされたり、手動での設定ファイルの変更が必要な、ちょっとした問題がたくさんあった。

私のこれまでにUbuntuで出くわした問題と解決方法は、いずれも簡単なコマンドや手動での設定ファイル書き換えで対処可能なものであり、ちょっと調べれば、既に問題に出くわした人により、解決方法がそのまま書かれている場合も多いので、さほど苦労していない。もちろん技術者なら皆できる。しかし、できるからといってやりたいわけではない。我々はコンピューターを使いたいのであって、管理したいのではないのだ。

xkcd: Cautionary

Linux: 実際にあった話:第一週

もしもし、あたしあたし、いとこだけど。新しいパソコン手に入れたんだけどさ、Windowsとか入れたくないのよ。Linuxとかいうやつのインストール手伝ってくれない?

いいよ

第二週

XORGが壊れたって。XORGって何? どうすればいいの
「manページ教えるよ」

第六週

autoconfigがうまくいかないんでUbuntuからDebianに変えることにする
「えっ」
Gentooにするかも
「やばい」

第十二週

「最近電話に出ないけど」

寝らんない。カーネル、コンパイル、しなきゃ。

「手遅れか」

親に告ぐ:誰か他人に教わる前に、子供にLinuxを教えるべきである。

これが、初心者にも使いやすいと言われているUbuntuの現状である。あるいは、私のような初心者が使うUbuntuがクソで、他のディストロはまともなのかもしれない。しかし、上級者様の使うArchやGentooといったディストロは、ローリングリリースを採用しており、単なるアップデートで、ブート不可能なほど深刻に壊れやすい。しかし、ローリングリリースは壊れやすいとからかうと、Arch上級者様は皆、まるで申し合わせたかのように言う。

「何? 壊れる? まさか? ちゃんと公式から発行される変更情報や注意点を確認していれば、壊れるなどということはない。よしんばブート不可能なほど壊れたにせよだ。復旧用のArchを入れたUSBドライブからブートしてchrootとしてpackman -Syuすればたいてい直る。問題ない。設定ファイルもプレインテキストで書かれていて、とても簡単だ。恐れることなど何もない。むしろUbuntuのようなどうやって直していいのかわからない複雑なシステムの方が怖いわ」と。

結局、ArchやGentooをインストールして、GUIのデスクトップ環境が利用可能なほどに設定できる上級者様なのだから、システムが壊れるということは問題ではないのだ。問題は、壊れた時に簡単に直せないことなのだ。

その点、Macにはそのような問題はない。もちろん、問題は発生するにせよ、GNU/Linuxほど頻繁ではないし、GNU/Linuxほどのつまらない問題に悩まされることはない。

Macが使われているのは、手軽なUNIX互換環境だからだ。GNU/Linuxのディストロで、つまらない問題に時間を潰したくないのでMacを選ぶのだ。それ以上の理由はない。もし、GNU/Linuxのディストロが十分に安定して、つまらない問題に悩まされることがなければ、彼らは別にGNU/Linuxでも問題ない種類の人間なのだ。

できるからといってやりたいわけではない。

追記:私はMacを使っていないし、今後も使うつもりはない。私がMacを使うとしたら、それは私が所有せず、また支配下にもないコンピューターを、一時的に借りて使う時だけだ。私はGNU/Linuxで満足している。私は特にGUIのソフトウェアに自由であること以外のこだわりはない。GUIのソフトウェアは、煩わしい設定をせずに簡単に使えるのならばそれでいいのだ。だから私は、今はUbuntuのUnityを使っている。単にデフォルトで設定されていて、極端に使いづらいというわけでもないので、これでいい。GNU/Linuxは、前述の通り、つまらない問題にも悩まされるが、いずれも簡単に解決、あるいはworkaround可能な問題であり、私はそのために不自由なソフトウェアを使うつもりはない。

32 comments:

Anonymous said...

>Macが使われているのは、手軽なUNIX互換環境だからだ。

その通り!

Anonymous said...

うちの大学院もMacですねー
研究だとコンパイラやSSHを使うので,UNIX互換でないと作業にならないですし
学生の取っ付きやすさや学校側のメンテのを考えると,Mac一択でしょうねー

Anonymous said...

そのArchからMacにスイッチしましたが、
まともなパッケージマネージャがないのがつらいです。

Anonymous said...

つ https://twitter.com/nalsh/status/402302146491588608
つ http://www.opengroup.org/openbrand/bpl/apple.htm
つ http://blog.opengroup.org/2012/07/25/apple-registers-mac-os-x-10-8-mountain-lion-to-the-unix-03-standard/

Anonymous said...

ドヤ顔で嘘書かないでよ…

江添亮 said...

ほほう。ということは、Mac OS XはUNIX風とかUNIX互換ではなく、UNIXと呼んでいいことになるのか。

Anonymous said...

> まともなパッケージマネージャがないのがつらいです。

パッケージマネージャとしては Homebrew, Fink, MacPorts, pkgsrc その他、フリーなのがいくつかあるので、試してみて自分に合うのを使うのがいいのでは?(というか、少なくともこういうののうち、どれを使わないとやっとれんと思う)
すでに全部試したあとならごめんよ。

Anonymous said...

でもMacの人も結局MacPortsとか入れてるよね
CygwinでSSH使えればいいやってならんの

Anonymous said...

> でもMacの人も結局MacPortsとか入れてるよね

入れますね。

> CygwinでSSH使えればいいやってならんの

なりませんね。
CygwinとWindowsって、ドライブ名その他、セマンティックス違うところが多くて、使いづらいです。
OS X + サードパーティ製・パッケージマネージャーだと、そういう食い違いがないので。
あと、Cygwin遅いですし。(forkとかエミューレションするのが大変なので遅くなるのは仕方ない)
あと、パッケージマネージャとしても Cygwin はイマイチです。

江添亮 said...

Cygwinはその仕組み上、遅いんですよね。
そもそもMSはforkとかを効率よく実装するための機能をユーザースペースに提供していませんし。

MacならPOSIXがネイティブでサポートされているので、挙動に多少の違いはあるとしても、十分に吸収できる範囲でしょうし。

Anonymous said...

> ほほう。ということは、Mac OS XはUNIX風とかUNIX互換ではなく、UNIXと呼んでいいことになるのか。

何を指してUNIXと呼ぶかはあるけれど、
10.5以降、Single UNIX Specificationを取ってるバージョンに関してはUNIXと呼んで良いのでは?

Anonymous said...

> CygwinでSSH使えればいいやってならんの

他の人も書いてますがならないですね。
文法的、速度的な問題もありますが、
たとえばWindowsでrailsで開発しようとすると
gemのインストールで悲惨な目に遭います。
たとえばこんな感じ↓
http://www.ownway.info/Ruby/index.php?rmagick%2Fhowtoinstall%2Fwindows

Anonymous said...

Not Mac OS X, But OS X.

Anonymous said...

まっこすまっこす

Anonymous said...

今はArchよりも安定しててセキュリティが良くて使いやすい完全上位互換のManjaroがあるから素のArchを使ってる人はほとんどいないんじゃないかな。
http://www.mylinuxrig.com/post/60359268974/manjaro-past-present-and-future-a-virtual-roundtable

Anonymous said...

> まともなパッケージマネージャがないのがつらいです。
pacmanはOSXへの移植があったはず

Anonymous said...

gentooはarchと違って更新によって壊れるということはありません。
gentooはosxなんかよりよっぽど安定しています。
使ったこともないのに不当に貶めるような言動はやめていただきたい。

Anonymous said...

>Manjaro
おお、何か良さげな感じですね。
デフォルトでXfceやらOpenboxとはしぶい。
興味が湧いてきた。
XfceじゃなくE17ならもっと素敵だったのに :P

>gentoo
かつてはかなりブイブイいわせてた印象だったのになんか失速しちゃってそのまま低空飛行なのかな?
今のPC環境ならソールからのコンパイルはそれほど苦行とならないだろうし、もっとグイグイいってほしい :)




江添亮 said...

ああ、ここでもArch派とGentoo原理主義者の聖戦が。

Anonymous said...

WindowsやMacは安定していてサポートもあるけどGUIシェルのデザインとかsmbサーバーの実装とか利用者にとって変えてほしくないかも知れない部分をmsやappleの意向やマーケティングの都合やらでいつ「改悪」されるか分からないところが嫌いです。もちろん回避は可能だろうけど、最初からarchやgentoo使ってれば全てが自分の選択によることになります。究極カーネルだってBSDに変えられる(要出展)。ubuntoは最近さわってないけどその程度の完成度ということならば中途半端なんでしょうね。

Anonymous said...

archやgentooに対する憧れはあるけど使えるように努力する根性 がないのをgnu/linuxが不安定なせいにしてるmacユーザーってけっこういそう。ローリングリリースは二度とクリーンインストールしなくていい安心感がイイです。gnu/linuxも時々糞なディストリがあるだけでそれ自体は十分に安定してます。

Anonymous said...

デスクトップがクソだって話でなんでgentooとかarchがドヤ顔してるんだ。どっちもデスクトップはクソだろうに

OSのコアな部分の安定感は否定しないが総じてLinuxディストリビューションはデスクトップ環境が貧弱すぎるんだよ、って話じゃん

Anonymous said...

>Macが使われているのは、手軽なUNIX互換環境だからだ。

手軽という面では、IntelCPUになったのが大きい。

Anonymous said...

Gentoo + X11 + awesome 3か月くらい運用してるけど osx 使ってたときより快適です。そもそもデフォルトのデスクトップ環境が決まってないディストリのデスクトップ環境をひとまとめにクソって断定できるものなんかな。guiが必要ないところはある程度CUI使わないといけないから全部GUIでできないことも含めてクソと言っているのならわからんでもない。

Anonymous said...

>OSのコアな部分の安定感は否定しないが総じてLinuxディストリビューションはデスクトップ環境が貧弱すぎるんだよ、って話じゃん
モバイル端末向けのUnityを使っていてLinuxのデスクトップが糞って言われてもねぇ…

Anonymous said...

一応Microsoftも昔からPOSIX互換システムはWindows向けにリリースしてるけど…
最近非推奨なオプションになる程度には微妙

Anonymous said...

>追記:私はMacを使っていないし、今後も使うつもりはない。

最初からそう書けばいいのに!
意外と頭が不自由なんだね。

Anonymous said...

最近、めっきり使う機会が減ったとはいえ、Excelが動くUnix互換機は貴重。

Linuxで動いたら、Mac要らない。

shiro said...
This comment has been removed by the author.
Anonymous said...

認めたくないのかも知れませんが、UNIXと同時に MS-Office が使えるってのもありますね。
MS-Office がないとやってられない、LibreOfficeとか模倣品では回らないところってのは沢山ありますから、彼らとうまく協調するのに MS-Office は欠かせません。

まあ、Linux なんてVMwareとか仮想環境の上で正しく動けばそれでいいんですよ。実機に入れる必要ないし。

Anonymous said...

みんなそれぞれ好きな環境で使ってるので「お前の使ってるOSは糞だ」とディスる必要がどこにあるの・・・
他人の環境を貶めると自分が偉くなった気でもするのだろうか?

kokkiemouse said...

GNU/Linuxが一番
●自由
●無料(RHELなどを除く)
●Windowsどデュアルブートできる
●Windows上でアプリがそのまま使える(バイナリ互換)(WSL)
●自社のPC以外でのインストールを許可している(これ当たり前だと思う...)