【レビュー】

BOOK REVIEW - Java上で複数のスクリプト言語が融合する世界を体験

 

網羅的、そして丁寧に書かれている本である。少ないページ数で多数のスクリプティング言語をカバーしようとしているので概要的な内容になってはいるが、Java言語と連携して動かすスクリプト言語をこれから学ぼうという読者には十分であろう。

本誌の表紙にはRino(JavaScript)使いのDukeが描かれているが、ルビーを手玉にとるDukeや、grailの中身を飲み干すDukeも思い浮かんでくる。また、ソースコードとインタープリタ方式による実行例がきっちりと掲載されているので、途中で分からなくなって投げ出すことは少ないはずだ。Javaプログラマがより理解しやすくなるための配慮も随所にみられる。

本書はJavaプログラマに向けて、JavaVM上でスクリプティングを試してみよう、まずはスクリプティングの世界が今どうなっているかを見てみようというメッセージを送っている。

表紙に描かれたRino(JavaScript)使いのDuke - このイラストは、コラム「コーチングで変わる人材管理」でもおなじみのナバタメ・カズタカ氏によるもの

複数の言語を使った"いいとこどり"のプログラミング

それでは、どのスクリプト言語を試してみようかという段階で、本書は皮肉にも、動かしてみようとする勢いを止めてしまうかもしれないくらい多数のスクリプト言語を取り上げている。Java SE 6で導入されたRino(JavaScript)を始め、この分野で脚光をあびているJRubyとGroovy、かなり以前から開発が続けられてきたBeanShellにPnuts、ごく最近登場したJavaFXやPythonのJavaによる実装Jythonまで解説されている。

Java言語出身のemigrant的な言語あり、Java言語の世界にやってきたimmigrant的な言語ありと、それぞれに違った魅力があり、どの言語から始めてみようかと迷ってしまう。JavaVM上で動くスクリプト言語について多少の知識はあると思っていた筆者だが、この本を手にして、こんなにたくさんの言語が動くのかという新鮮な驚きを感じた。

スクリプト言語を選んでサンプルプログラムを試してみると、そこにはJava言語とスクリプト言語が融合した不思議な世界が広がっている。あたかも、京急が都営浅草線と相互乗り入れをしていて、さらに京成線にも乗り入れをしていて、羽田空港から成田空港まで行けてしまう――そんな感覚に似ている。

Java言語の多数のAPI、良いところ、便利なところを使いながら、スクリプト言語の良さも手に入れられる。また、ひとつの線路上を複数の鉄道会社の車両が行き交うように、Javaかと思ったら、Rubyになっていて、Rubyで記述しているはずなのにJavaのクラスを使っている。慣れないと、どっちがどうだったか混乱してくるのだが、試しているうちにこの不思議な世界がおもしろくなってくる。

JavaとRubyが融合した世界

それではJavaとRubyが融合した世界がどういうものなのか、本書から例を引用してみよう。

require 'java'

include_class 'java.io.BufferedReader'
include_class 'java.io.InputStreamReader'
include_class 'java.io.FileWriter'
include_class 'java.io.PrintWriter'
include_class 'java.net.URL'

url = URL.new 'http://www.pheedo.jp/f/gihyo_rss2'
reader = BufferedReader.new(InputStreamReader.new(url.openStream(), 'UTF-8'))
out = PrintWriter.new FileWriter.new 'gihyo.xml'

while rss = reader.readLine do
 out.println rss
end

reader.close
out.close

このように、Rubyのシンタックスでありながら、Javaのオブジェクトが使われている。もっと複雑な操作を行おうとしたら、よりRubyよりの実装や、よりJavaよりの実装があるだろう。どのような実装にするかはコーダ(coder)のアイディア次第だ。

そして、読者がいちばん知りたいであろうと思われる(J)Ruby on RailsとGroovy on Grailsといったフレームワークについての解説も本書にはある。特に、ちまたの情報が不足していると思われる後者のフレームワークにはかなりのページをさいて丁寧に解説している。本書の著者が作成したGSP(Groovy Server Pages)タグライブラリ一覧表もある。Ruby on Railsに押され気味のGroovy on Grailsではあるが、GroovyはJava出身のスクリプト言語で、また、GrailsはSpringやHibernateと連携しているなど、Javaプログラマが取り掛かりやすい言語、あるいはフレームワークではないだろうか。

あえて本書の難点を挙げるとしたら、巻頭企画のChapter1で開発手法をもとにJavaとスクリプト言語を分類してしまっているところだろう。最近のJava言語によるフレームワークやIDEの機能を考慮すると、複雑なコードを書かなければならないJava言語、シンプルに書けるスクリプト言語という分類は時代後れの感があるし、アジャイルか、ウォーターフォールかといった分類も言語には依存しない感がある。また、本書は概要的な内容なので、もっとスクリプト言語の世界を知りたいと思う読者のために参考になる書籍の紹介やWebサイトの一覧が欲しかった。

世間の評判を気にする前に、本書を片手にスクリプティングを試してみるといい。おそらく、こんなことができるという発見をしては、こういうことはできるのかという探求心をかきたてられる世界に足を踏み入れることになるだろう。

『スクリプティング with Java』

沖林正紀著
技術評論社発行
2007年10月12日発売
B5判 / 216ページ
ISBN978-4-7741-3202-0
定価1,869円(本体1,780円)



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

覚悟はよろしいですね、『ドラゴンボールZ』フリーザ様のポッドがプラモ化
[21:48 8/27] ホビー
ステージでライブ!「アイドリッシュセブン」新グッズがTSUTAYAに、Re:valeも
[21:39 8/27] ホビー
「クライムエッジ」の緋鍵龍彦新刊は、塾の先生と女子中高生によるコメディ
[21:33 8/27] ホビー
実家がエロ本屋の女子描く新連載などキューンで4本開始、1周年フェアも
[21:02 8/27] ホビー
金子ノブアキ「サイコーの気分!」NBAバスケイメージソングにRIZE新曲
[21:00 8/27] エンタメ

求人情報