EY-Office ブログ

EY-Officeの吉田裕美が、まだ Ruby on RailsやiPhone開発を行ってない技術者や技術系マネージャー向けに、技術や教育に付いて書いています。

2012-05-23 Ruby on Rails開発に最適なプラットフォーム(OS)は?

下のグラフは2009年に行われた、Ruby on Railsの開発者が使っているプラットフォームのアンケート結果です。
3年前に行われたアンケートですが、Ruby/Railsのコミュニティーやカンファレンス等に参加した感じでは、現在でも順位は変わらないのではないかと私は思います。

rails-hosting-survey-2009より

なぜ、Macがこんなに使われているのでしょうか?

  1. Ruby, Apache/Nginx, MySQL/PostgreSQL などWebアプリによく使われるUnix系のオープンソースのソフトが動く
  2. デザインや使い勝手が良い
  3. Macbook Airなど魅力的な製品がある
  4. MS Officeを始め仕事で必要な大抵のソフトが使える
  5. Ruby on Railsの開発者が皆つかっているから :-)

このような理由が考えられます、以降もう少し詳しく書いてみたいと思います。

Unix系のオープンソースのソフトが動く

現在よく使われているApache, GCCのようなオープンソースのソフトの多くはUnix(Linuxなど)の上で開発されてきました、そして大部分のWebサービスはUnix(Linuxなど)のサーバー上で動作しています。RubyやRuby on Railsもそうです。
MacのOS Mac OS X は独自OSですがベースにはBSDというUnixを使っていて、大部分のUnix用のソフトを簡単に動かす事が出来ます。

インターネット上で公開されているたくさんのRuby用のライブラリーの中にはWindowsなど非Unixでは動かないものも ままあります、動かない理由は

  • Unixに依存したアーキテクチャーである
  • 開発者がWindowsに興味がない、開発環境持ってない

などがあると思います。またUnix用のライブラリーは色々なUnix(Linux, BSD, Solaris, AIX, HP/UX …)様々なバージョンで動かせるように、ソースコードを配布しインストール時にコンパイルする形式を取っていますが、Windowsには通常コンパイラーは入っていないのでライブラリーの配布には別の方法をとらないといけません。
Rubyで使われているGemライブラリーではWindows用のDLLをインストール出来る仕掛けがありますが、ライブラリーの作者がWindows開発環境持を持ってないとDLLは作れないのでWindowsへのインストールが出来なくなります。

このような理由から、一般的には圧倒的なシェアを誇るWindowsですが、RubyやRuby on Rails開発ではあまり使われていません。

デザインや使い勝手が良い、Macbook Airなど魅力的な製品がある

iPhone,iPadの大成功でAppleという会社がクローズアップされていますが、MacもiPhone,iPad同様にデザインや使い勝手が良く、使うのが楽しく感じられます。また、コモディティ化してしまったWindows PCにはない魅力や満足感を感じます。

私も6年ほどMacを使っていますが、ハード・ソフトを一社で作っている為かスタンバイ等が非常に安定していて、移動中やちょっとした時間の作業が直ぐ開始・終了できるのも魅力です。また、Macの値段はWindows PCに比べ高いように思えますが、実はCPUやSSD等の性能が同じPCと比べるとそれほど高くはありません。

大抵の仕事で必要なソフトが使える

Macでは MS Officeを始め、業務で必要になるようなソフトも大部分は使えます。もちろんWindowsでしか使えないソフトもありますが標準で入っているBoot Campを使いWindowsをインストールしブート時にWindows/Macを切り替える。または、VMWareやParallelsのような仮想化ソフトを購入すれば Mac上のアプリとしてWindowsを動かす事が出来ます。仮想化ソフトを使うとWindows以外にLinuxなども動かせサーバーと同じ環境で開発したりもできますし、複数のバージョンのWindowsやIEを使う事が出来るのでアプリの確認などでも効果絶大です。

その他のプラットフォームは

最近はUbuntuやMintのようにデスクトップ、ノートPCでも使いやすいLinuxが現れ、開発者の間ではLinuxをPCに入れて使っている人も増えています。しかしMS Officeのようなソフトが動かない事や、サポートがあまり無いことから、まだまだ敷居は高いようです。

Mac以外での私のお勧めは、WindowsにVMWare等の仮想化ソフトをインストールしUbuntuなどのLinuxを動かす事です。

企業コンプライアンスからWindows PCしか使えない職場でも導入できるます、VMWareは有料ソフトですが仮想イメージを実行するだけのVMPlayerは無料で使えます、またVirtualBoxのように無料のソフトもあります。

さらに仮想化ソフトを使うメリットとして、仮想イメージを作る人が開発環境を含めた仮想イメージを作成すれば、その仮想イメージを開発メンバー全員が使える事です。これで開発者がインストールの煩雑差やバージョンの違いなどからのトラブルを回避できるのも大きいと思います。