DACエンジニアブログ:アドテクゑびす界

DACのエンジニアやマーケター、アナリストが執筆するアドテクの技術系ブログです。

Scala入門 準備編「開発環境構築」 - PHP使いからScala使いへ転身!

 

はじめに

みなさんこんにちは、今月入社しましたプロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。

XmediaOneの開発で採用しているプログラム言語はScalaなのですが、 わたくしはDACに入社するまではサーバーサイドの言語はPHPしか経験がなく、 かつコンパイル型の言語に触れたことが無かったため、 入社前に今の配属先の開発環境を聞いた時に、たいそう怯えてしまったことを覚えていますw

というわけで、わたくしが業務内外で学んだScalaという言語について、 これから週一回ペースでシリーズで紹介していきたいと思います。 (はいコミットしちゃいました。週一ペース守れなかったらごめんなさいw)

今日は第一弾として、まずは準備編ということで開発環境の構築方法をご紹介したいと思います。 ちなみに前提としてわたくしの使用マシンがMacということで、Macユーザー向けの内容となります。

Scalaとは

はじめにScalaという言語がどのようなものなのかをご紹介したいと思います。

まずは読み方ですが、Scala = スカラ です。はいココ重要!w 読み方って以外とググっても出てこないんですよね。 そして名前の由来ですが、「スケーラブル(Scalable:拡張性のある)な言語」から来ています。

特徴としては、上の名前の由来が表している通り、ユーザーの求めに応じて成長していけるように設計されているため、 小規模なスクリプトを書くことから大規模システムを開発することまで広範囲のニーズに応えられる言語となっています。

特徴としては、

  1. Java互換
  2. オブジェクト指向関数型プログラミングの融合
  3. 高度な静的型付け
  4. 簡潔で読みやすいプログラムを書ける etc

です。

まず1ですが、ScalaはJVMの上で動作する、つまり、Javaとバイトコードレベルで互換性があるため、 Javaプログラマーは既にあるJavaコードやJavaプログラミングのスキルは完全に再利用できます。

次に2ですが、...これは各々の説明で一冊の分厚い本が出版されているくらいなので、各自調べてください^^;

そして3ですが、ここはわたくしのような動的型付け言語のPHP経験者には馴染みが無いところですかね。 変数や関数の返り値、クラスのメンバーに予めこの値はなんの型かということを設定しておくということですね。 予め型を設定しておけば、仮に間違った型の値がセットされそうになってもエラーになるため安全です。

最後に4ですが、これは実際にJavaで書いたコードとScalaで書いたコードを見比べてみると分かりやすいですかね。

// これはJavaコード
class MyClass {
  private int index;
  private String name;
  public MyClass(int index, String name) {
    this.index = index;
    this.name = name;
  }
}

// Scalaなら以下のように書くだけ
class MyClass(var index: Int, var name: String) {}

と、あくまでも一例ですが、簡単にスッキリ書くことができます。

以上、Scalaについて紹介させていただきました。 では前置きはこれくらいで、本題に参りましょう。

開発環境の構築

ご紹介するのは以下4点となります。

  1. JDK(Java Development Kit)のインストール
  2. Scalaのインストール
  3. sbtのインストール
  4. IDE「Intellij」のインストールと設定

ちなみに今回試したわたくしの環境としては、

  • Macbook Pro(13-inch, 2016, Four Thunderbolt 3 Ports
  • MacOS Sierra 10.12.6
  • Homebrew 1.3.8

となっています。

JDK8のインストール

まずここで注意点ですが、現時点でJavaの最新バージョンは9ですが、 ここはあえて8をダウンロードしてください!w 理由としては、後述のsbtのインストールができなくなるからです。

JDKのインストールは以下より。 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

リンクをクリックすればダウンロードされ、あとはそのdmgファイルを実行すればインストールされます。

Scalaのインストール

ScalaのインストールはターミナルからHomebrew経由でインストールします。

$ brew install scala

はい、とっても簡単です。では試しにコマンドラインからscalaで文字を出力してみましょう。

$ scala
Welcome to Scala 2.12.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_91).
Type in expressions for evaluation. Or try :help.

scala> println("Hello, world!")
Hello, world!

scala> 

はい、こんな感じです。終了させたい時は「:q」をタイプしてください。

sbtのインストール

次はscalaの標準ビルドツールであるsbtのインストールです。 http://www.scala-sbt.org/1.x/docs/index.html

sbtは、コンパイルはもちろん、プロジェクトに必要なパッケージやライブラリの管理を行ってくれる大変便利なやつです。 Scalaで直接コンパイルするより、sbtの方が軽い(らしい)です。

sbtもHomebrew経由でインストールします。

$ brew install sbt

はい、こちらもとっても簡単です。ではsbtでもコマンドラインから文字を出力してみましょう。

$ sbt console
[info] Loading project definition from /Users/username/project
[info] Set current project to username (in build file:/Users/username/)
[info] Starting scala interpreter...
Welcome to Scala 2.12.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_91).
Type in expressions for evaluation. Or try :help.

scala> println("Hello, world!")
Hello, world!

はい、Scalaと全く同じですね。ということで残すはあと一つ!

Intellijのインストール

Scalaはテキストエディタでもコーディングできますが、IDE(統合開発環境)を使うと開発が非常に楽になります。 ダウンロードはこちらより

無料版のCommunityをダウンロード、インストールしたら起動してください。IDEAのScalaプラグインをインストールする必要があります。 詳細は、他社さんのコンテンツですみませんがドワンゴさんの研修資料にとても詳しく載っていますので参考にしてみてください。

今日は以上です

ということで駆け足ではありましたが、開発環境の構築方法を紹介させていただきました。 次回はScalaの言語についての基本(データ型、構文等)についてまとめたものを紹介したいと思います。

それではまた来週ー☆