PHPからRubyへ

PHPはWebアプリケーションを作る道具として普及しています。 けれど、もしあなたがRuby on Railsに興味をもったのなら、 あるいは一般的な作業をさせるのに適した言語を求めているなら、Rubyは一見の価値があります。

PHPとの類似

PHPと同様に、Rubyは…

  • 動的に型付けされます。変数の宣言について心配することはありません。
  • クラスがあります。PHP5のように publicprotectedprivateによるアクセス制御が可能です。
  • いくつかの変数は$から始まります(すべてではありませんが)。
  • evalもあります。
  • 式展開を使えます。"$foo is a $bar"とする代わりに"#{foo} is a #{bar}"と書きます。 シングルクォーテーションで括った時には、これは有効になりません。
  • ヒアドキュメントがあります。
  • PHP5と同様に、例外機構があります。
  • かなり膨大な標準ライブラリがあります。
  • array(){}に変えれば、配列とハッシュは期待するように動きます。 array('a' => 'b'){'a' => 'b'}とします。
  • truefalseはPHPと同じように振る舞います。ただし、nullnilになります。

PHPとの違い

PHPと違って、Rubyは…

  • 強い型付けがあります。文字列や数値などを互いに変換するためには、言語に任せるのではなく to_sto_iなどのメソッドを明示的に呼ぶ必要があります。
  • 文字列、数、配列、ハッシュなどはオブジェクトです。abs(-1)を呼び出す代わりに-1.absとします。
  • パラメータを渡していることを明確にする場合を除いて、メソッド呼び出しの括弧は基本的にオプションです。
  • 標準ライブラリや拡張は、モジュールやクラスを使って構造化されています。アンダースコアなどによる名前付けを使った構造化は行いません。
  • リフレクション機能はオブジェクトごとに備わっています。PHP5のようにReflectionクラスを使う必要はありません。
  • 変数は参照です。
  • 抽象クラス(abstract)やinterfaceはありません。
  • ハッシュと配列には互換性はありません。
  • falsenilのみが偽になります。0array()””はすべて真と評価されます。
  • ほとんどすべてのことは、メソッド呼び出しです。raise(PHPにおけるthrow)ですら、メソッド呼び出しです。