Rubyはインタプリタによって解釈されるスクリプト言語で、Javaはコンパイラによってコンパイルされるプログラミング言語です。Rubyは、オブジェクト指向言語であり厳密な型指定を行うという点ではJavaに似ていますが、その文法や仕様は大きく異なっています。本稿では、RubyとJavaの主要機能を比較します。
はじめに
Rubyはインタプリタによって解釈されるスクリプト言語で、Javaはコンパイラによってコンパイルされるプログラミング言語です。Rubyは、オブジェクト指向言語であり厳密な型指定を行うという点ではJavaに似ています。しかし、Rubyの型指定は動的であるのに対し、Javaの型指定は静的です。Rubyでは型宣言は使用されず、Javaでは型宣言は必須です。JavaとRubyのどちらにも継承があり、"パブリック"、"プライベート"、"プロテクト"のメソッドがあります。RubyはJavaより単純でJavaより高速です。Rubyはさまざまな点でJavaと異なっています。本稿では、RubyとJavaの主要機能を比較します。
インタプリタ方式とコンパイラ方式
Rubyはインタプリタ方式のスクリプト言語なので、コンパイルしてバイトコードを生成することなく、直接実行できます。たとえば、Rubyファイル「helloruby.rb」は、次のコマンドで実行できます。
>ruby helloruby.rb
これに対し、Javaアプリケーションは実行前にコンパイルする必要があります。たとえば、Javaクラス「hellojava.java」は、次のコマンドでjavacコンパイラを使ってコンパイルする必要があります。
>javac hellojava.java
javacコンパイラは、Javaクラスのバイトコードを生成します。その結果、コンパイルしたクラスはjava.exeアプリケーションを使用して実行できるようになります。
>java hellojava
パッケージのインポート
Rubyでは、requireステートメントを使用してパッケージやモジュールをインポートします。たとえば、extensionsパッケージ/モジュールをインポートするには次のようにします。
require 'extensions'
外部ファイルをRubyアプリケーションに含めるには、loadまたはrequireを使用します。たとえば、外部ファイル「catalog.rb」を含めるには、次のrequireステートメントを追加します。
require "catalog.rb"
loadとrequireの違いは、loadがメソッド実行のたびに指定のRubyファイルを含めるのに対し、requireはそのRubyファイルを一度だけ含める点です。
Javaでは、importステートメントを使用してパッケージをロードします。たとえば、Javaパッケージ「java.sql」をロードするには次のようにします。
import java.sql.*;
型付き変数
RubyでもJavaでも厳密な型指定を行いますが、Rubyの変数の型指定は動的です。これはつまり、変数の型を明示的に関連付けられないということです。たとえば、文字列値を持つ変数は次のように宣言します。
str="Hello Ruby"
このstr変数には特定の型が関連付けられていないので、整数型その他の型の値を代入できます。
str=1
Javaの変数の型指定は静的であり、変数に型を関連付けることができます。たとえば、文字列変数は次のように宣言します。
String str="Hello Java";
このstr変数に整数値を代入することはできません。
null値
Rubyでは、null値はnilで宣言します。たとえば、変数strにnil値を代入するには次のようにします。
str=nil
Javaでは、null値はnullで宣言します。たとえば、変数strにnull値を代入するには次のようにします。
str=null;
この記事は参考になりましたか?
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Deepak Vohra(Deepak Vohra)
O'Reillyの技術レビュー担当者として『WebLogic: The Definitive Guide』を担当。NuBeanコンサルタント、Web開発者でもある。Sun認定資格(Java 1.4プログラマおよびWebコンポーネントディベロッパJ2EEバージョン)を取得。メールの宛先はdvohra0...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
