(1/2)実は共通点の多いRubyとJava。Javaエンジニアであり、JavaとRubyの両方のインストラクターでもある筆者が贈る、JavaエンジニアのためのRuby入門。});「Rubyはハードルが高い」。本当にそうですか?昨今、急速にITエンジニアの注目を集めているRuby。Rails(以下、Rails)は、「Javaの典型的なフレームワークの10倍の生産性」と宣伝されたこともあり、とりわけJavaエンジニアの皆さんにとって気になる存在なのではないでしょうか。いうものの、「Rubyは触ったことがないし、ソースコードを少し読んではみたものの、さっぱり意味が分からない。勉強するにはハードルが高い」と感じている方も多いと思います。確かに、表面的にはJavaとRubyはかなり異なる言語のように思えます。見てみると、共通点も多いのです。筆者はもともとJavaのエンジニアで、JavaとRubyの研修インストラクターも経験しています。それらの経験から感じるのは、「Rubyの習得が最もスムーズにできるのは、実はJavaエンジニアなのではないか」ということです。いったポイントを押さえれば、Javaエンジニアの皆さんがスムーズにRubyおよびRailsを習得できるのかを解説する予定です。Javaの誕生と発展タイトルにもあるとおり、この連載はJavaエンジニアの皆さんをターゲットにしています。Javaの歴史や現在の使われ方についてはよくご存じかと思いますが、ここで簡単に紹介しておきます。Javaはもともと、1990年12月に始まったサン・マイクロシステムズ(以下、サン)の内部プロジェクトにおいて、Oakという名称で開発が始められました。その後、OakはJavaと名称を変更し、1995年5月にサンのカンファレンスで正式に発表されました。Appletの実行をサポートしたことも手伝って、Javaはその誕生当初から「Webテクノロジのための言語」という非常に先進的なイメージを与えることに成功しました。Appletは、「起動に時間がかかる」「Webブラウザがフリーズしやすい」などのマイナスイメージが先行してしまったため、商業的な成功を見ることはありませんでした。その後、Webアプリケーションの実行レイヤがクライアントサイドからサーバサイドに移ると、Servlet/JSPといったサーバサイドWebアプリケーション用のAPIを備え、Webアプリケーションサーバというインフラを手にしたJavaは、業務システム構築のプラットフォームとして一躍脚光を浴びることになりました。初期のJavaについては「起動・実行速度が遅い」「堅牢性に不安がある」などの声が根強くありました。サーバサイド環境では通常、連続稼働が前提であるため、起動の速度はさほど問題にならないこと、実行速度もサーバサイド環境ではインフラ自体の増強でまかなえること、Java自体のバージョンアップに伴い大幅な性能向上があったこと、堅牢性については大手ベンダが高性能なアプリケーションサーバを提供してきたことなどで、解決されてきました。現在では、Javaは業務システム開発、特にWebベースの業務システム開発言語のデファクトスタンダードといってもよい存在です。新入社員教育で、C言語などに替わってJavaを学習させる会社も増えています。6Javaの特徴Javaの特徴として、主に以下のようなものが挙げられるでしょう。オブジェクト指向言語であるJavaはオブジェクト指向言語の中で、商業的に最も成功した言語の1つであるといわれています。強力な標準API群を有するサードパーティや他ベンダ製のライブラリを使わなくても、標準APIだけでアプリケーション開発に必要十分な機能をそろえています。Machine)という実行環境を提供しています。JavaVMは名前の示すとおり、Javaの中間コードを解釈できる仮想的な機械といえるものです。このJavaVMが各プラットフォーム用に提供されることで、同一の実行コードを変更することなく、異なるプラットフォームで実行可能です。CやC++の流れをくむ構文体系を持つそれまでのシステム開発言語のデファクトスタンダードであったC/C++の構文体系をある程度踏襲することによって、開発者の移行に対するコストを減らし、支持を集めることに成功しました。C/C++の構文体系にはオブジェクト指向的でない部分もあり、Javaにもその傾向が見られます。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。