Javaエンジニアにこそ、Rubyの良さが分かる:JavaエンジニアのためのRuby入門(1)(2/2 ページ)
実は共通点の多いRubyとJava。Javaエンジニアであり、JavaとRubyの両方のインストラクターでもある筆者が贈る、JavaエンジニアのためのRuby入門。
Rubyの誕生と発展
この連載の主役である、Rubyの歴史と特徴についても見てみましょう。
日本国内でRubyが急速に注目されるようになったのは、2004年ごろからといわれています(その火付け役となったのが、RubyベースのWebアプリケーションフレームワーク「Ruby on Rails」です)。そのため、Ruby自体もごく最近登場したと思っている方が多いと思います。
実際には、Rubyの誕生は1993年にさかのぼります。正式にバージョン1.0がリリースされたのは1996年12月のことです。その後、Ruby 1.6.8が2002年12月に、Ruby 1.8.0が2003年8月に登場し、現在の安定バージョンといわれているRuby 1.8.6が2007年3月にリリースされました。最新のバージョンはRuby 1.9.0で、2007年の12月にリリースされています。
Rubyの年表
Rubyに関する年表は、@nifty TimeLine β に
「Rubyの歴史」というタイトルで公開されています。
興味のある方はご覧ください。
※@nifty TimeLine β自体も、Railsで構築されているサービスです(参考記事:タイムラインで管理する情報共有サービス、ニフティがRubyで開発)
Rubyの特徴
Rubyの特徴としては、以下のようなものが挙げられるでしょう。
- スクリプト言語である
昨今はRubyの利用局面としてWeb系のサービスに注目が集まっていますが、Rubyはスクリプト言語であるため、PerlのCGIの代わりや、UNIXのシェルスクリプトの代わりに使われることも多くあります。
- インタプリタ言語である
Rubyはインタプリタ言語であるため、コンパイルという手順を踏まずに、ソースコードをそのまま解釈させて実行させることができます。その際、Rubyインタプリタを介してコードを実行しますので、手順はJavaエンジニアの皆さんにも想像しやすいでしょう。
- オブジェクト指向言語である
スクリプト言語としての側面も有するRubyですが、オブジェクト指向言語として設計されていることが大きな特徴です。
PHPのように、バージョンアップを経てオブジェクト指向を導入した言語もありますが、Rubyの場合は誕生当初からオブジェクト指向に基づいて設計されているため、オブジェクト指向の考え方がより自然に各種文法に反映されています。
- 動的言語である
Rubyの大きな特徴の1つであり、Javaエンジニアの皆さんにとっては難しく思えるかもしれないのが、「動的言語」という側面です。コードに明示しなくとも、実行時に変数の型を動的に決定できたり、実行中にクラスにメソッドを追加したりできます。
- プラットフォーム非依存である
Rubyもプラットフォームごとにインタプリタを用意することによって、プラットフォームへの依存性を排除しています。
Javaエンジニアこそ、Rubyの習得に向いている
JavaとRubyについて簡単に紹介したところで、記事の冒頭で述べた「Rubyの習得が最もスムーズにできるのは、Javaエンジニア」という点について考えてみたいと思います。ここでは3つのポイントを挙げます。
1.Javaエンジニアはオブジェクト指向を知っている
JavaとRubyの大きな共通点の1つが、「オブジェクト指向言語である」という点です。そのため、非オブジェクト指向言語のエンジニアと比べると、Javaエンジニアにとって言語習得のためのハードルはずいぶん低いといえるでしょう。
非オブジェクト指向言語のエンジニアがRubyを習得するためには、まずオブジェクト指向そのものについて学習する必要があります。オブジェクト指向を知らない人がその概念を理解するのはなかなか容易なことではなく、習得にはそれなりの時間が必要となるでしょう。
2.ターゲットとされるアプリケーションの種類が近い
現在のJavaエンジニアの多くは、Webアプリケーション開発者でもあります。ですから言語の知識だけではなく、HTMLやTCP/IPといったWebテクノロジ全般についての知識も持っている方が多いのではないでしょうか。上記に特徴として挙げたように、RubyもWeb関連のサービスに多く利用されています。
また、Webアプリケーションに特有のブラウザとサーバ間のパラメータ送受信やセッション管理、MVCアーキテクチャに基づいた設計の知識などは、Railsでの開発にも生かすことができます。
3.JavaエンジニアはWebアプリケーションフレームワークに慣れている
Railsを習得する際のハードルとしてよく挙げられるのが、「MVCアーキテクチャやO/Rマッピングの考え方が難しい」というものです。
Javaエンジニアの中には、StrutsのようなデファクトスタンダードのWebアプリケーションフレームワークについて学習している方が多いのではないでしょうか。StrutsもRailsもMVCに基づいたアーキテクチャですから、Strutsを知っている人であればRailsのMVCについてもそれほど抵抗なく理解できるはずです。
O/Rマッピングについても、Javaではさまざまなフレームワークやライブラリがすでに存在しており、そのいずれかを利用したり学習したりしたことのある方が多いと思います。
以上のような点から、筆者は、現在のRubyおよびRailsを習得するのに最も向いているのはJavaエンジニアだと考えています。
しかもRubyやRailsには、Javaエンジニアの観点から見たときにこそ、その良さや優れた点が際立つ特徴が多くあります。ですから、JavaエンジニアがRubyを学習するときには、他言語のエンジニアよりも驚きや喜びが大きいといえるでしょう。
次回以降、具体的な例を挙げながら、JavaエンジニアがRubyの文法を学ぶためのポイント、Strutsを知っているエンジニアから見たRailsの習得のコツを紹介します。どうぞお楽しみに。
筆者紹介
中越智哉
北海道出身。北海道大学大学院電子情報工学専攻修士課程修了。在学中はJavaとLinuxに熱中。1999年にテンアートニ(現・サイオステクノロジー)に入社し、Javaの受託開発案件や教育事業などを幅広く担当。2006年3月にナレッジエックスを設立。同社では主にJava/Rubyを中心としたIT開発技術の教育・研修に従事。2007年にはRuby/Rails講師養成講座で講師を務めるなど、Ruby研修講師の実績も豊富。趣味は自転車と草野球、そして毎日欠かさない耳かき。
Copyright © ITmedia, Inc. All Rights Reserved.