Click here to load reader
Upload
asami-abe
View
807
Download
3
Embed Size (px)
DESCRIPTION
2014/02/08(土) Scala関西ビギナーズ 第3回にて発表。 Scala関西ビギナーズWiki https://github.com/SAMMY7th/scala_kb/wiki
Citation preview
Scala再入門by Abe Asami
自己紹介Abe Asami “きの子” (フリーエンジニア)http://nocono.net/Twitter: @aa7th
使用言語:Java、C#
本セッションのテーマ
• Scalaに関する、最初に知っておいた方がよさそうな情報をまとめてみました
•これまでの内容と被る部分もあります
•今回準備時間が少なかったので過去スライドを再利用(ry
Scalaとは
• JVM上で動く言語
•オブジェクト指向であり関数型
•静的型付け、型推論
関数型言語(functional language)とは
•関数(function)を値(literal)として扱う言語
•「副作用」を極力避ける(Immutable)→ 変数ではなく定数を使う
関数型についてはこちらもどうぞ
http://slidesha.re/1dwkDY0
メリットその1
コードが短い
public class Sum { public static void main(String[] args) { int start = Integer.parseInt(args[0]); int end = Integer.parseInt(args[1]);
int sum = 0; for (int num = start; num <= end; num++) sum += num;
System.out.println(sum); }}
object Sum { def main(args: Array[String]) { println((start to end).foldLeft(0)((x, y) => x + y)) }}
例(Sum関数)Java Scala
Javaの1/2〜1/3のコード量
メリットその2
Javaのライブラリ利用可能
メリットその3
並行処理に強い
アクターシステム
•メッセージをやりとりする
•メールのようなイメージ
• Scala2.10でAkkaが統合された
デメリット
•コンパイルが遅い
•エンジニアが少ない
•関数型についての学習コストが高い
インストール
•公式サイトからダウンロード
• Homebrew (brew install scala)
• svm (Scalaバージョン管理ツール)https://github.com/yuroyoro/svm
開発環境(IDEなど)
• IntelliJ IDEA
• Scala IDE for Eclipse
• Sublime Text2
• REPLで1行ずつ実行することも可能
フレームワーク
• Play Framework2.x
• Scalatra
• Skinny Framework
...etc
DBライブラリ
• ScalikeJDBC
• Slick
• ScalaActiveRecord
• Squeryl
• Salat...etc
勉強に役立つ本
• Scalaスケーラブルプログラミング(通称:コップ本)
• Scala逆引きレシピ(翔泳社)