Scala入門 準備編「開発環境構築」 – PHP使いからScala使いへ転身!
- プログラム言語, 開発ツール java, Javascript, php, Programming, Scala
はじめに
みなさんこんにちは、今月入社しましたプロダクト開発本部の亀梨です。
普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う
統合プラットフォームの開発を担当しています。
XmediaOneの開発で採用しているプログラム言語はScalaなのですが、
わたくしはDACに入社するまではサーバーサイドの言語はPHPしか経験がなく、
かつコンパイル型の言語に触れたことが無かったため、
入社前に今の配属先の開発環境を聞いた時に、たいそう怯えてしまったことを覚えていますw
というわけで、わたくしが業務内外で学んだScalaという言語について、
これから週一回ペースでシリーズで紹介していきたいと思います。
(はいコミットしちゃいました。週一ペース守れなかったらごめんなさいw)
今日は第一弾として、まずは準備編ということで開発環境の構築方法をご紹介したいと思います。
ちなみに前提としてわたくしの使用マシンがMacということで、Macユーザー向けの内容となります。
Scalaとは
はじめにScalaという言語がどのようなものなのかをご紹介したいと思います。
まずは読み方ですが、Scala = スカラ です。はいココ重要!w 読み方って以外とググっても出てこないんですよね。
そして名前の由来ですが、「スケーラブル(Scalable:拡張性のある)な言語」から来ています。
特徴としては、上の名前の由来が表している通り、ユーザーの求めに応じて成長していけるように設計されているため、
小規模なスクリプトを書くことから大規模システムを開発することまで広範囲のニーズに応えられる言語となっています。
特徴としては、
- Java互換
- オブジェクト指向と関数型プログラミングの融合
- 高度な静的型付け
- 簡潔で読みやすいプログラムを書ける etc
です。
まず1ですが、ScalaはJVMの上で動作する、つまり、Javaとバイトコードレベルで互換性があるため、
Javaプログラマーは既にあるJavaコードやJavaプログラミングのスキルは完全に再利用できます。
次に2ですが、…これは各々の説明で一冊の分厚い本が出版されているくらいなので、各自調べてください^^;
そして3ですが、ここはわたくしのような動的型付け言語のPHP経験者には馴染みが無いところですかね。
変数や関数の返り値、クラスのメンバーに予めこの値はなんの型かということを設定しておくということですね。
予め型を設定しておけば、仮に間違った型の値がセットされそうになってもエラーになるため安全です。
最後に4ですが、これは実際にJavaで書いたコードとScalaで書いたコードを見比べてみると分かりやすいですかね。
1 2 3 4 5 6 7 8 9 10 11 12 |
// これは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点となります。
- JDK(Java Development Kit)のインストール
- Scalaのインストール
- sbtのインストール
- 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経由でインストールします。
1 |
$ brew install scala |
はい、とっても簡単です。では試しにコマンドラインからscalaで文字を出力してみましょう。
1 2 3 4 5 6 7 8 |
$ 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経由でインストールします。
1 |
$ brew install sbt |
はい、こちらもとっても簡単です。ではsbtでもコマンドラインから文字を出力してみましょう。
1 2 3 4 5 6 7 8 9 |
$ 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の言語についての基本(データ型、構文等)についてまとめたものを紹介したいと思います。
それではまた来週ー☆

関連記事
-
-
【未経験からのRuby on Rails – 第3回】変数と定数
こんにちは。新卒1年目のmatsuariです。 今回はRubyに限らずプログラミングを学ぶ上で非常に重要となる「変数と定数」について、ご紹介していきます。 変数とは・・・ オブジェクトを一時的に格納しておく箱で、オブジェクトを識別するために利用します。 言葉だけでは理解が難しいかと思いますので、まず …
-
-
Charlesを使ってスマホアプリ(iOS)のUAを調べてみた
はじめに ここ最近のスマホアプリには、Webブラウザの機能を実装したものが少なくありません。 (“スマホアプリ内で立ち上がるブラウザ「アプリ内ブラウザ」”の機能は「WebView」というコンポーネントを用いて実装されています。) 昨今のWebサイト、サービス運営に於いて、「通 …
-
-
Tableauを利用してMySQLとRedshiftのクロスDBジョインを実現する
はじめに RedshiftやTreasureDataなどのデータマート用のDBにはID単位の解析結果が格納され、ローカルのMySQLにはIDに紐づいた名称マスタが管理されている構成の場合、データマートのクロス集計結果に対してIDに紐づいた名称を付与したいことがあります。 データマート用に用意したDB …
-
-
Railsたった14行でアドサーバーAPIができた話
こんにちは。駆け出しエンジニアの近江です。 最近Railsにハマっているので、私が2年間担当しているアドサーバの、簡易版をRailsで作ってみました。 広告やキャンペーンを登録する管理画面はある前提で、ここからたった14行追加するだけでアドサーバーのHTTP APIを作りたいと思います。ついでに配信 …
-
-
Scala入門 基礎編「Scalaの書き方を理解しよう」 – PHP使いからScala使いへ転身!
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 さて、今回はScala入門第二弾として、Scalaの書き方を紹介する基礎編をお送りしま …
-
-
Vagrantの機能を使って開発環境の効率をあげてみた。
プラットフォーム・ワンのシステムの運用・保守担当のエンジニアです。 保守の仕事に関わると、 ユーザからのお問い合わせだったり、監視アラートによる検知から システムを調査することがあります。 ログとソースコードを見て、不具合を特定し改修する。 すぐできればカッコいいですが、 「本番環境に反映して別のエ …
-
-
Scala実践「Either型を使ってimmutable(不変)なコードを書こう!」
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 Scalaでイケてるコードを書きたい! 背景 わたくしはDACに入社してからScala …
-
-
modern.IEを使ってMac上でWindows10を動かす
Microsoftが提供している modern.IE というプロジェクトがある。そこで提供されている仮想環境を使って、MacにWindows10をインストールしてみる。ちなみに、このプロジェクトの本来の目的はInternet Explorerの表示確認やデバッグの支援。 VirtualBoxの準備 …
-
-
最強のSQLクライアント(GUIツール)「TeamSQL」を使ってみた!
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 エンジニアの皆さん、SQLクライアント(GUIツール)って何使ってます? わたくしはこ …
-
-
MacのSSHポートフォワーディングツール「autossh」と「Coccinellida」をご紹介!
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 さて、皆さんはSSHポートフォワーディングするときにどんな方法で行っていますか? わた …