1 2 3 4 5 6 →

 本稿は『月刊DBマガジン 2009/09月号』の記事「Javaの限界を超えて実用化を目指す、新開発言語「Scala」のメリットとは」を転載し、一部修正したものです。

はじめに

 前回に引き続き、Javaの後継候補として注目されているプログラム開発言語「Scala」について説明していきます。今回は、ScalaがJavaの代替として使える点(「ベターJava」として使える点)に注目します。

 シリーズ前編として、前回はScalaのメリットや、基礎的な文法について説明しました。シリーズ後編となる今回は、プログラムのコンパイルや、データベース接続について扱っていきます。

これまでの連載

コンパイルとデータベース接続

 ここからはプログラムのコンパイルとデータベース接続を扱います。なお、以降すべてのプログラムを実行するためにはエディタの文字コードを、UTF-8に設定する必要があります(UTF-8以外の文字コードでは、日本語などの取り扱いに失敗します)。

 Scalaでのソースコードの記述方法には次の特徴があります。

  • ファイル名とそのファイル中に定義してあるクラス名を一致させる必要はない(見やすさを考えると一致させておくほうが好ましい)
  • 1ファイル中に複数のclassとobjectを定義できる
  • 文字コードはUTF-8を推奨(日本語を含む場合は必須)
  • main関数が含まれるクラスはobjectとして定義

 では、MainApplication.scalaというファイルを作成し、LIST21に示すコードを記述したら、コンパイルして実行してみましょう。ビルドコマンドは次のとおりです。

scalac ビルドしたいファイル名
LIST21:コンパイルして実行
object MainApplication { 
	def main(args:Array[String]){
		println(">>>start application")
		
		val second = new SecondClass
		second.printArray(args)

		println("end application>>>")
	}
}

class SecondClass {
	
	def printArray(array:Array[String]) = {
		array.foreach(item => println(item))
	}
}

 コマンドラインから上記ファイルを保存したフォルダに移動し、下記コマンドを入力すると、.classファイルが作成されます。

(scalaコードが置かれたフォルダ)> scalac MainApplication.scala

 なお、.classファイルは、Javaのclassファイルと互換しています。例えばjavapコマンドなどを実行できます。実行コマンドは、次のとおりです。

scala 実行したいクラス名

 続けて、LIST22のコマンドを入力して実行してみましょう(Scalaコマンドのオプション)。すると、main関数が呼び出され、SecondClassのprintArray関数が呼び出されていることが確認できます。

LIST22
C:¥scala> scala MainApplication
>>>start application
end application>>>

●続けて、以下を入力してみましょう
C:¥scala> scala MainApplication 1 2 3
>>>start application
1
2
3
end application>>>

Javaのビルド環境Maven2の使用

 コマンドラインからのビルドを紹介しましたが、ある程度以上の規模のアプリケーション開発では、Javaのビルド環境であるApache Ant/IvyやMaven2(あるいは、scala独自のビルド環境であるsbt)の使用を推奨します。ここでは、後述のWebフレームワークLiftwebで用いられるMaven2の使用について解説します。

 Mavenは、必要な情報を設定ファイルに記述すると、必要なファイルを自動でダウンロードし、適切なコンパイルオプションを設定してビルドしてくれる便利なツールです(Mavenダウンロードページ)。

Mavenのインストール

 Mavenはダウンロードページより圧縮ファイルをダウンロードし、任意の場所に解凍するとインストールできます(ここでは、C:¥Program Files¥Apache Group¥apache-maven-2.1.0に解凍したとします)。次に、環境変数を設定します(表3は設定例です)。環境によっては、設定後にログオフや再起動が必要になることがあります。

 コマンドプロンプトまたはターミナルから、LIST23のコマンドを入力して、同じように表示されればインストールの完了です。

表3:Mavenの環境変数一覧
Windowsでの環境変数の設定
JAVA_HOMEC:¥Program Files¥Java¥jdk1.6.0_14
M2_HOMEC:¥Program Files¥Apache Group¥apache-maven-2.1.0
M2%M2_HOME%¥bin
PATH%JAVA_HOME%¥bin;%M2%
Linux(Unix)での環境変数の設定
JAVA_HOME/usr/java/default
M2_HOME/usr/local/src/apache-maven-2.1.0
M2$M2_HOME/bin
PATH$PATH:$HOME/bin:$JAVA_HOME/bin:$M2
LIST23:Mavenのインストール
C:¥>mvn --version
Apache Maven 2.1.0 (r755702; 2009-03-19 04:10:27+0900)
Java version: 1.6.0_14
Java home: C:¥Program Files¥Java¥jdk1.6.0_14¥jre
Default locale: ja_JP, platform encoding: MS932
OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"

1 2 3 4 5 6
→
INDEX
Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~後編
Page1
はじめに
コンパイルとデータベース接続
まとめ
プロフィール

株式会社パテントビューロ所属。マネージャー業務と平行して、Webアプリケーション開発、自然言語系の研究開発を行なう。以前はC言語による組込開発。違和感なくScalaへ移行できたことや、ロジック部分に注力できる生産性の高さに驚いている。


プロフィール

政府系研究機関での研究開発を経て、現在、株式会社パテントビューロにて、プログラミング(知財関連文書(SGML/XML)の変換バッチ処理のScalaでの記述など)を担当している。
複雑でイレギュラーな記述も多々見られる大量の文書を相手にする際に、Scalaの書きやすさと高速性とに大いに助けられている。かつてスクリプト言語であるRubyに抱いていた興味を忘れつつある今日この頃である。


注目の求人情報
コンサルタント/ゾーランジャパン株式会社
DSPアセンブリ言語およびC/C++言語による画像処理用ファームウェア・ソフトウェア開発、組み込み用OSを...
システムエンジニア/ゲーム制作会社
◆職種 : アプリケーションエンジニア ◆業務内容: Facebookやmixi、iPhone向けに弊社で制作してい...
プロジェクトマネージャー/魔法株式会社
PC向けオンラインゲーム、携帯電話向けモバイルコンテンツ、パチンコ・パチスロ向けアミューズメントコ...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: