原著を読んだ者の感想です。
Java, Erlangは中級レベルです。
原著はScalaのバイブル的な扱いの本であり、あと2,3年はおそらくあれ以上の本は出ないだろうと思われます。難易度としては、Javaを知っていれば読めるレベルです。ただ、量が多く踏み込んでいるため、何回か読み直しが必要な本だと思います。手垢で真っ黒にするべき本の部類ですね。
次にこの書籍の評価に入ります。
日本語訳は読み易く、非常にスラスラと頭に入ってきます。
取り扱っている内容としては、文法レベルではほぼ網羅してあると思います。
記述のスタイルは各チャプターの内容を「オブジェクト指向的な書き方」と、「関数型的な書き方」の2つで読者に提供、解説するという形です。
しかし、著者の主張としては「関数型っぽく書け。どうしても面倒なところだけオブジェクト指向にしろ」というようなものがどうもあるようなので、やや関数型に寄っているような気はします。
オブジェクト指向は分かっているという前提を想定しているのかもしれません。
この記述スタイルは、純粋な関数型言語をやったことがあるなら特に問題ありませんが、手続き型やオブジェクト指向型に慣れ親しんでいる人は面食らうかもしれません。
あたりまえですが、新しい手続き型(オブジェクト指向)言語を覚えるのと同じスピードで、習ったことの無い関数型を覚えることはできません。
私はErlangをはじめてやったときに学習の遅さから多少凹んでしまいまいました。最初から時間がかかると意識していたほうが幸せかもしれません。
本書を読む上で注意するべき点は、
もしあなたがJavaプログラマであり、関数型プログラマでないのなら、関数型に関して書かれている部分は2回3回と読み直す必要があるということです。
なぜかというと、Scalaはオブジェクト指向も使えるので、関数型の特性を生かさないで全てオブジェクト指向でコードで書けてしまうからです。
これでは、Scalaを使うメリットが半減してしまいます。
関数型言語を覚えて、使えるようになる必要があります。
次に、Scalaの名前の由来にもなったscale性。
それを実現するためのActorモデルが壁となるかもしれません。
Erlangをやったことがない人がこれを理解するには、
送信した順番で絶対に届くソケット通信で、オブジェクトをやりとりしているようなものだと捉えればよいかもしれません。(正確には違うと思うのですが)
別々のマシンでは物理的にメモリを共有していないため、相手と情報をやりとりしようと思うとメッセージを使う必要があります。
Actorモデルもおおまかには似たようなものだと捉えていいと思います。
プロセス間でメッセージを交換し合うことによって、全体としてのシステムを構築します。
ただ、ある程度複雑なものを書くには設計パターンのようなものが必要になってきます。
その際にはクライアント/サーバ アーキテクチャを参考にすると設計がしやすいかもしれません。
プロセス間に階層を作ることをイメージすると、煩雑なプロセスに秩序を与え、制御をすることが容易となります。
(もちろん、上位のプロセスが落ちないようにしなければならないのですが。)
最後に本の見た目についてです。
少し1ページあたりに字数を詰め込みすぎている印象があり、原著よりもゴテゴテしているような感じはします。
ただ、適切な行間があり、スラスラ読んでいけるので特に違和感はかんじません。
最後に推定読書時間なのですが、おそらく40〜50時間ぐらいだと思います。
習得にかかる時間は検討がつきませんが、関数型言語とスクリプト型言語(特にRuby)をやっていると覚えがはやいのは間違いないと思います。
Javaを知らない人は本書を読むのは不可能に近いです。Javaからやって下さい。
いい本だと思うので、興味があるかたは買って損はないと思いますよ。
無料のKindleアプリをダウンロードして、スマートフォン、タブレット、またはコンピューターで今すぐKindle本を読むことができます。Kindleデバイスは必要ありません。
ウェブ版Kindleなら、お使いのブラウザですぐにお読みいただけます。
携帯電話のカメラを使用する - 以下のコードをスキャンし、Kindleアプリをダウンロードしてください。
Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala) 単行本 – 2009/8/21
Scala言語デザイナー自らがScalaの考え方と使い方をステップ・バイ・ステップで解説。
Scalaは、オブジェクト指向と関数型をバランスよく融合したプログラミング言語。1行コードも大規模プログラムも書ける柔軟性を持ち、守備範囲が広く、スケーラビリティが高い。堅実さと柔軟性を両立させている点では、JavaとRubyの中間に位置する。その洗練されたプログラミング手法は、プログラマーに新たな世界をもたらすものである。最新言語に関心がある人、JavaからRubyへの移行を考えている人も必読。
原著は、優れたIT技術とIT書を讃えるJolt Awardで2008年のファイナリストにノミネートし、Productivity Awardを受賞した「Programming in Scala: A Comprehensive Step-by-step Guide」
Scalaは、オブジェクト指向と関数型をバランスよく融合したプログラミング言語。1行コードも大規模プログラムも書ける柔軟性を持ち、守備範囲が広く、スケーラビリティが高い。堅実さと柔軟性を両立させている点では、JavaとRubyの中間に位置する。その洗練されたプログラミング手法は、プログラマーに新たな世界をもたらすものである。最新言語に関心がある人、JavaからRubyへの移行を考えている人も必読。
原著は、優れたIT技術とIT書を讃えるJolt Awardで2008年のファイナリストにノミネートし、Productivity Awardを受賞した「Programming in Scala: A Comprehensive Step-by-step Guide」
- 本の長さ624ページ
- 言語日本語
- 出版社インプレス
- 発売日2009/8/21
- 寸法18.4 x 2.7 x 23.4 cm
- ISBN-104844327453
- ISBN-13978-4844327455
この商品をチェックした人はこんな商品もチェックしています
ページ 1 以下のうち 1 最初から観るページ 1 以下のうち 1
出版社より
Scalaスケーラブルプログラミング第3版 | Scalaスケーラブルプログラミング第2版 | Scalaスケーラブルプログラミング[コンセプト&コーディング] | |
---|---|---|---|
カスタマーレビュー |
5つ星のうち3.9
13
|
5つ星のうち5.0
2
|
5つ星のうち3.4
8
|
価格 | ¥3,841¥3,841 | ¥5,867¥5,867 | ¥111¥111 |
発売日 | 2016/9/20 | 2011/9/27 | 2009/8/21 |
登録情報
- 出版社 : インプレス (2009/8/21)
- 発売日 : 2009/8/21
- 言語 : 日本語
- 単行本 : 624ページ
- ISBN-10 : 4844327453
- ISBN-13 : 978-4844327455
- 寸法 : 18.4 x 2.7 x 23.4 cm
- Amazon 売れ筋ランキング: - 908,157位本 (本の売れ筋ランキングを見る)
- - 16,122位電気・通信 (本)
- カスタマーレビュー:
著者について
著者をフォローして、新作のアップデートや改善されたおすすめを入手してください。
1960年生まれ。東京大学教育学部卒。英語ともコンピュータとも縁はなかったが、大学を出て就職した会社で当時のPCやらメインフレームやらと出会い、当時始まったばかりのパソコン通信で多くの人と出会う。それらの出会いを通じて、1987年頃からアルバイトで技術翻訳を始め、その年の暮れには会社を辞めてしまう。1988年に(株)エーピーラボに入社し、取締役として97年まで在籍する。1997年に(株)ロングテールを設立して現在に至る。訳書は、上下巻に分かれたものも2冊に数えて百数十冊になった。一方で、95年『長い夢』、96年『イギリス観光旅行』、97年『縁起でもない』、00年『頭の名前』、18年『抒情詩試論?』という著書もある。https://www.longtail.co.jp/
著者の本をもっと発見したり、よく似た著者を見つけたり、著者のブログを読んだりしましょう
著者の本をもっと発見したり、よく似た著者を見つけたり、著者のブログを読んだりしましょう
著者の本をもっと発見したり、よく似た著者を見つけたり、著者のブログを読んだりしましょう
-
トップレビュー
上位レビュー、対象国: 日本
レビューのフィルタリング中に問題が発生しました。後でもう一度試してください。
2009年9月23日に日本でレビュー済み
Amazonで購入
頭から3分の1は普通に、それ以降はパラパラと目を通している程度ですが、こんな感じと思います。
・まずは、Java言語(or それ相当)の言語知識が前提
他の方も指摘しているとおり、Java(またはC#など相応のOO言語)のプログラミング知識が
なければ読めません。前提条件と考えてください。
・高度で、理解に時間を要する部分がある
上級のソフトウェア開発者は大丈夫でしょうが、
普通レベルのプログラマは、読みこなせない・使いこなせない「峠」的な部分が
いくつかあるようです。
私(=Java系中級プログラマ)自身苦戦してまして、何度も繰り返し目を通し、さらに実際に自分でソースを書いて動かして
ようやく理解できる、といった感じになりそうです。
これは、言語自体の持つ機能の多さ・深さと、言語自体の考え方(OO+関数型)によるものと思われ、
避けては通れなさそうです。
ちなみに、文章自体は問題はなく、翻訳ものですが日本語として特に違和感を感じることはありません。
あとしいて言えば、図解がもう少しあれば、理解が容易になったかもしれません。(リスト処理などの部分で)
・「実用書」とは言えない
Scala標準で含まれるRDBアクセスライブラリや、Java資源の具体的な活用方法などは
書かれていませんので、これを開発者に渡して「さあ、Scalaでシステムを作ろう」と
いうのはありえません。
#これで作れれば、一流レベルの人です
今後、使いこなしの本が出てくることを期待しています。
・ポストJavaの有力候補として
私自身はJava言語中心で開発していますが、Java言語の限界が見えてきているため、
自分のチームで導入可能なポストJava言語を少しづつ探していました。
その中でScala言語は、
- LL系言語から高い生産性を実現する機能・要素を盛り込み、かつ言語自体の洗練度が高い
- 他のLL系言語とは異なり、静的型付け言語というチーム開発向きの特長を持つ
- Javaとの親和性が高く、Java開発からの移行が他言語に比べて比較的容易
#といっても、それなりに難しいと思いますが
ということから、ポストJavaとして発展・普及が期待されます。
Scala自体が流行るかどうかは正直分かりませんが、
今後1レベル上のプログラム開発をしたいと考えている人にとって、とても勉強になるはずで、
将来他の言語が主流になったとしても、この本から学んだことは無駄にはならないでしょう。(きっと)
・まずは、Java言語(or それ相当)の言語知識が前提
他の方も指摘しているとおり、Java(またはC#など相応のOO言語)のプログラミング知識が
なければ読めません。前提条件と考えてください。
・高度で、理解に時間を要する部分がある
上級のソフトウェア開発者は大丈夫でしょうが、
普通レベルのプログラマは、読みこなせない・使いこなせない「峠」的な部分が
いくつかあるようです。
私(=Java系中級プログラマ)自身苦戦してまして、何度も繰り返し目を通し、さらに実際に自分でソースを書いて動かして
ようやく理解できる、といった感じになりそうです。
これは、言語自体の持つ機能の多さ・深さと、言語自体の考え方(OO+関数型)によるものと思われ、
避けては通れなさそうです。
ちなみに、文章自体は問題はなく、翻訳ものですが日本語として特に違和感を感じることはありません。
あとしいて言えば、図解がもう少しあれば、理解が容易になったかもしれません。(リスト処理などの部分で)
・「実用書」とは言えない
Scala標準で含まれるRDBアクセスライブラリや、Java資源の具体的な活用方法などは
書かれていませんので、これを開発者に渡して「さあ、Scalaでシステムを作ろう」と
いうのはありえません。
#これで作れれば、一流レベルの人です
今後、使いこなしの本が出てくることを期待しています。
・ポストJavaの有力候補として
私自身はJava言語中心で開発していますが、Java言語の限界が見えてきているため、
自分のチームで導入可能なポストJava言語を少しづつ探していました。
その中でScala言語は、
- LL系言語から高い生産性を実現する機能・要素を盛り込み、かつ言語自体の洗練度が高い
- 他のLL系言語とは異なり、静的型付け言語というチーム開発向きの特長を持つ
- Javaとの親和性が高く、Java開発からの移行が他言語に比べて比較的容易
#といっても、それなりに難しいと思いますが
ということから、ポストJavaとして発展・普及が期待されます。
Scala自体が流行るかどうかは正直分かりませんが、
今後1レベル上のプログラム開発をしたいと考えている人にとって、とても勉強になるはずで、
将来他の言語が主流になったとしても、この本から学んだことは無駄にはならないでしょう。(きっと)
2013年1月19日に日本でレビュー済み
Amazonで購入
Scalaについて、基本的な事が書かれているという事は分かりましたが、じゃあ文法の説明は?と思ったら、詳しく書いてないような気がしました。
Javaは、ある程度まで使った事があるので分かるかと思ったら部分的にしか分からなかったような気がします。
自分の求めている専門書ではなかったのかもしれません。
Javaは、ある程度まで使った事があるので分かるかと思ったら部分的にしか分からなかったような気がします。
自分の求めている専門書ではなかったのかもしれません。
2011年5月24日に日本でレビュー済み
Amazonで購入
濃いです。難しいです。Javaを何年もやってても歯が立ちません。
関数型言語をやっていれば違うのかもしれませんが、Scalaの概要
を知りたいという方には不向きです。
ただ、最近はネット上でも日本語の入門記事が出てきているので、
この本で確認しながら学習を進めることはできると思います。
忙しい開発者が地道に長く「楽しめる」(あるいは、苦しめる)
本です。他の本に3000円も出すなら、5000円近くのこの本をまず
買うべきです。
日本語訳の文章はこなれていますし、読解に苦労することはなく、
すらすら読めますし、サンプルも短いです。長いサンプルは内容
を理解するのが面倒になってしまうので。(しかし、いかんせん
言語仕様がややこしい、というかJava屋にとっては突拍子もない)。
また、この本で目につくのは、著者が「プログラマが何をしたいと
思うのか、あるいは何をしでかしてしまうのか」を熟知しているこ
とです。ここが著者(Scalaの作者含む)を信頼できる点です。
単に理屈だけではなく、実際に多くのプログラムソースに触れ
てきた経験から生み出されているものという感触があります。
一つの巨大な言語仕様を創りだすだけあって、その知識は多岐
に渡ることが想像できます。
関数型言語をやっていれば違うのかもしれませんが、Scalaの概要
を知りたいという方には不向きです。
ただ、最近はネット上でも日本語の入門記事が出てきているので、
この本で確認しながら学習を進めることはできると思います。
忙しい開発者が地道に長く「楽しめる」(あるいは、苦しめる)
本です。他の本に3000円も出すなら、5000円近くのこの本をまず
買うべきです。
日本語訳の文章はこなれていますし、読解に苦労することはなく、
すらすら読めますし、サンプルも短いです。長いサンプルは内容
を理解するのが面倒になってしまうので。(しかし、いかんせん
言語仕様がややこしい、というかJava屋にとっては突拍子もない)。
また、この本で目につくのは、著者が「プログラマが何をしたいと
思うのか、あるいは何をしでかしてしまうのか」を熟知しているこ
とです。ここが著者(Scalaの作者含む)を信頼できる点です。
単に理屈だけではなく、実際に多くのプログラムソースに触れ
てきた経験から生み出されているものという感触があります。
一つの巨大な言語仕様を創りだすだけあって、その知識は多岐
に渡ることが想像できます。
2009年9月27日に日本でレビュー済み
Amazonで購入
翻訳もよく内容も充実していて良い本であることは確かです。しかし、Scalaにこれから取り組む初心者の入門書としては必ずしも推薦できません。JavaやC#、Lispなどで相当の経験を積んでいれば容易に理解できるでしょうが、そうでないなら、本書の先頭1/4を過ぎたあたりで挫折しかねません。初心者はもっと易しい入門書から入って少し勉強と経験を積んでから、この本を読むとよいでしょう。
2009年8月27日に日本でレビュー済み
自分の第1プログラミング言語はjavaです。
これまで、プログラミングの幅を広げるために
また、今後実装されるであろうjavaの仕様を先取りする意味で
いろいろな言語を勉強してみました。
C、C++、Python、Ruby、Lisp、Scheme、Haskell、Proce55ing、Arduino
scalaには、上記に挙げた言語を網羅したエッセンスが詰まっていると
感じました。
オブジェクト指向、関数型、型推論、アクター、パターンマッチ
本書は、ある程度javaを使用したことがある読者に向けて書かれています。
今後、普及することを願っています。
これまで、プログラミングの幅を広げるために
また、今後実装されるであろうjavaの仕様を先取りする意味で
いろいろな言語を勉強してみました。
C、C++、Python、Ruby、Lisp、Scheme、Haskell、Proce55ing、Arduino
scalaには、上記に挙げた言語を網羅したエッセンスが詰まっていると
感じました。
オブジェクト指向、関数型、型推論、アクター、パターンマッチ
本書は、ある程度javaを使用したことがある読者に向けて書かれています。
今後、普及することを願っています。