Scala言語の入門書の紹介

オブジェクト指向と関数型が美しく融合したJVM上の実用言語Scalaを勉強するのによい
資料・記事をまとめてみます。


◎まずとりあえず最初に読むもの(どれも日本語)
●InfoQ:なぜScalaなのか? 作者 Ian Roughley, 翻訳者 白石 俊平
http://www.infoq.com/jp/news/2008/01/why-scala

●【新・言語進化論】次にくる!新登場言語
第3回:オブジェクト指向と関数型を兼ね備えた「Scala」 著者: ether
http://www.thinkit.co.jp/free/article/0711/4/3/

●A Scala Tutorial for Java programmers (宮本隆志さんが和訳されたものです)
http://homepage.mac.com/takashi_miyamoto/scala/ScalaTutorial.pdf


実はもう1件、日本語のScala紹介記事があるがちょっと間違いが多いので気をつけて読んでください。
●気になる開発プロダクツ 第7回 Scala 2.6.0-final 2007年10月1日 沖林正紀
http://gihyo.jp/dev/serial/01/awdp/0007?page=1


◎次にJava実務家向けのきちんとした入門記事(英語だがやさしく書かれている)

チュートリアル風=> Scalazine (Scalaマガジンの意)
First Steps to Scala by Bill Venners, Martin Odersky, and Lex Spoon
http://www.artima.com/scalazine

●言語の特徴概説風=> Why Scala? by Tim Dalton(Java Technical Insight of the Month)
http://ociweb.com/jnb/jnbDec2007.html (InfoQ:Why Scala?とは別の記事なので注意)


◎さらに本格的に学ぶ(深い記述だが若干の歯ごたえあり)

●A Tour of the Scala Programming Language (Scala言語のさまざまな話題を簡潔に紹介)
http://www.scala-lang.org/print/book/export/html/105

Scala By Example by Martin Odersky(作者本人による言語解説)
http://www.scala-lang.org/docu/files/ScalaByExample.pdf

Scala本:書籍 ついにこの夏に出版。それまではPrePrint電子版あり。
●Programming in Scala A comprehensive step-by-step guide
by Martin Odersky, Lex Spoon, and Bill Venners
http://www.artima.com/shop/forsale


◎番外:Scalaを始めとする関数型言語の発想を学ぶために

●数理科学的バグ撲滅方法論のすすめ:住井 英二郎
http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/?ST=develop
説明や実装にScalaではなくOcamlを使っていますが、
関数クロージャによるインタプリタや超軽量並行プロセスや型推論の簡単実装法
などむずかしいはずの話題が魔術的なわかりやすさで説明されていて超お勧め。

●中国語のScalaチュートリアル記事も参考になります。
函数式編程の道 作者:fakechris  scala学習筆記(1)〜(5)
http://wfp.group.javaeye.com/group/blog/106769

●まつもと直伝 プログラミングのオキテ
http://itpro.nikkeibp.co.jp/article/COLUMN/20060825/246409/?ST=oss
Rubyをネタに解説してますが、特に「第2回 抽象データと継承」「第3回 多重継承の光と影」
「第4回 Duck Typing」「第5回 高階関数を分かりやすくしたブロック」などScalaでも参考に。


ちり も積もればメジャー言語にならんとも限らん
とて もじゃないが、生のJavaではやっていけん
ちん 味と思って食べてみれば思ったより実用的
皆様でScalaの階段を一歩一歩登っていきましょ


PS
2007.01.17 InfoQ:Why Scala?の記事を追加
2007.01.23 プログラミングのオキテ を追加
2008.10.05 各種URLを更新