天領倉敷Scala第0回勉強会に行ってきた

第10回オープンラボ岡山に参加したときに、自己紹介でおすすめの本を紹介する時間があったのだけど、ここで何人かの人がScala関連の本を紹介されていた。Scalaは前職の同僚がScalaいいよーってよく言っていたので、そういうプログラミング言語があることは知っていたのだが、自分で勉強するまでにはいかなかった。その時点では、洋書しかなかったので英語がさっぱりな自分にはハードルが高かったのです。。。

で、それから1年ちょいの間で日本語の書籍もいくつか出版されて徐々に各地で勉強会なんかが開催されていたので、そろそろ自分も触ってみたいなと思っていたところ岡山でもScalaを勉強されている人がいることを知り、興味が高まってきたところに倉敷でScalaの勉強会を立ち上げる方からお誘いがあったので、さっそく参加してきましたー。

以下、ところどころメモったので。

日時:2010/8/28(土)  13:00−16:30
場所:株式会社アイネット

Scala入門 -西本さん

自己紹介
Scala+Web Fravorで某所に納品した(瀬戸内国際芸術祭2010豊島)

告知
・第1回Scala座 2010/9/4(土) 名古屋
 
背景
Java仮想マシンで動くプラットフォーム
・近年はjava意外でも利用が可能
・LL(Lightweight Language) -> 動的言語
Javaに不自由を感じるならJavaと親和性の高い言語を作ればいい
  ・Groovy(独自)
  ・JRubyRuby互換)
  ・Scala(独自)
 
 概要
スイス連邦工科大学が中心に開発
 ・2003年に登場
  ・Javaオブジェクト指向を継承しつつ
  ・関数型プログラミングの要素を取り入れた
  ・マルチパラダイム

機能・文法
・便利な記法
 ・メソッド引数のカッコの省略
  ・リテラルXMLなど)
・豊富な型宣言
  ・traitを使ったmixin, Generics
  ・型の拡張(Implicit Conversions)
・便利な標準ライブラリ
  ・豊富なコレクション
関数型プログラミング文化由来
  ・クロージャ

API
scala コアライブラリ
scala.actors Actor(並行処理)
scala.collection コレクション
scala.concurrenct コンカレント
scala.runtime 基本型拡張など
scala.util 正規表現、Parser Combinator
scala.xml XML操作

設計方針
・パフォーマンス
 ・Javaとほぼ同じ
  ・同じくらいの性能、同じくらいのクラスサイズ
・文法
  ・豊富な文法
  ・ただし導入は慎重に
・副作用
  ・変数の値の代入など
  ・一般的に副作用があるコードにはバグが発生しやすい
・副作用が起きないよう配慮
・文法
・最大入深の変数宣言 val
再帰呼び出し
API
・immutableなコレクション
・Streamなど副作用を隠蔽する仕組み
・副作用を書くことも可能
・varを使う
・一般的に副作用を書くコードのほうがハードルが低い
・副作用を伴わないコードのほうが見通しや可読性がいいこともある
・まとめ
・基本はかえない
  ・Javaの型や記述など
・許容する
  ・副作用等
 ・簡素に
  ・アクセス修飾子のデフォルトはpublic
 
 便利な文法
・代入と型推論
・Tupleリテラル
 ・Tupleは22個までok
XMLリテラル
・for式
 ・1文で書くことができる
  ・for文ではなくfor式
・パターンマッチング
  ・C言語でいうSwitch Case文
クロージャ
  ・Scalaでは重要
・カリー化

動向
・最近2.8がリリース
・デフォルト引数、名前付き引数
・Package object
・break文
・継続(限定的)
・copyメソッド
・コレクションの改良
・scalacの高速化
・ライブラリ・ツール
・事例
 ・Twitter
   ・バックエンドをScalaで描いている
  ・Foursquare
 
オススメ本
Scalaスケーラブルプログラミング

講演の資料は、アップしてくださるようなので興味のある方は天領倉敷ScalaのサイトかGoogle groupをチェックしておくといいよー。

勉強会で使用する本はScalaプログラミング入門に決まった。個人的にはScalaスケーラブルプログラミングに決まって欲しかったけど、しょうがないか。
Scalaプログラミング入門、買わなきゃ。。。

で、次回(10/2)までに各自、Scalaプログラミング入門を読み進めて第1回勉強会では2章から進めていくことになる。


勉強会で使用する本

Scalaプログラミング入門
Scalaプログラミング入門デイビッド・ポラック 大塚庸史

おすすめ平均
stars評価が分かれるのではないかと…
starsScalaでアプリケーション/ライブラリ開発を考えている方は是非どうぞ

Amazonで詳しく見る
by G-Tools


僕が購入した本

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)
Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)Martin Odersky Lex Spoon、Bill Venners 羽生田 栄一

おすすめ平均
stars初心者の入門書としては高度すぎる
starsポストJavaを求める人向けです
starsScalaのバイブルたる本です。
starsすべて道がscalaに通じていた

Amazonで詳しく見る
by G-Tools