新品:
¥4,840 税込
ポイント: 291pt  (6%)
無料配送5月29日 水曜日にお届け
発送元: Amazon.co.jp
販売者: Amazon.co.jp
¥4,840 税込
ポイント: 291pt  (6%)  詳細はこちら
無料配送5月29日 水曜日にお届け
詳細を見る
または 最も早いお届け日時指定便 明日 8:00 - 12:00の間にお届け(13 時間 7 分以内にご注文の場合)
詳細を見る
残り2点(入荷予定あり) 在庫状況について
¥4,840 () 選択したオプションを含めます。 最初の月の支払いと選択されたオプションが含まれています。 詳細
価格
小計
¥4,840
小計
初期支払いの内訳
レジで表示される配送料、配送日、注文合計 (税込)。
出荷元
Amazon.co.jp
出荷元
Amazon.co.jp
販売元
販売元
支払い方法
お客様情報を保護しています
お客様情報を保護しています
Amazonはお客様のセキュリティとプライバシーの保護に全力で取り組んでいます。Amazonの支払いセキュリティシステムは、送信中にお客様の情報を暗号化します。お客様のクレジットカード情報を出品者と共有することはありません。また、お客様の情報を他者に販売することはありません。 詳細はこちら
支払い方法
お客様情報を保護しています
Amazonはお客様のセキュリティとプライバシーの保護に全力で取り組んでいます。Amazonの支払いセキュリティシステムは、送信中にお客様の情報を暗号化します。お客様のクレジットカード情報を出品者と共有することはありません。また、お客様の情報を他者に販売することはありません。 詳細はこちら
¥550 税込
ポイント: 6pt  (1%)  詳細はこちら
中古商品の性質上、折れや破れ、書込み、日焼け、水濡れ跡や若干の汚れなど、一部瑕疵のある商品であっても、お読みいただくのに支障がない状態であれば、販売をしております。また帯や商品内のクーポン券などをお付けできる保証はございません。なお、絵本などの一部書籍は表紙カバーがない状態でも販売している場合があります。シリアルコード、プロダクトコードの使用有無は保証しておりません。 中古商品の性質上、折れや破れ、書込み、日焼け、水濡れ跡や若干の汚れなど、一部瑕疵のある商品であっても、お読みいただくのに支障がない状態であれば、販売をしております。また帯や商品内のクーポン券などをお付けできる保証はございません。なお、絵本などの一部書籍は表紙カバーがない状態でも販売している場合があります。シリアルコード、プロダクトコードの使用有無は保証しておりません。 一部を表示
配送料 ¥330 6月1日-2日にお届け(2 時間 7 分以内にご注文の場合)
詳細を見る
通常4~5日以内に発送します。 在庫状況について
¥4,840 () 選択したオプションを含めます。 最初の月の支払いと選択されたオプションが含まれています。 詳細
価格
小計
¥4,840
小計
初期支払いの内訳
レジで表示される配送料、配送日、注文合計 (税込)。
この商品は、【公式】ブックオフ が販売、発送します。
Kindleアプリのロゴ画像

無料のKindleアプリをダウンロードして、スマートフォン、タブレット、またはコンピューターで今すぐKindle本を読むことができます。Kindleデバイスは必要ありません

ウェブ版Kindleなら、お使いのブラウザですぐにお読みいただけます。

携帯電話のカメラを使用する - 以下のコードをスキャンし、Kindleアプリをダウンロードしてください。

KindleアプリをダウンロードするためのQRコード

何か問題が発生しました。後で再度リクエストしてください。

プログラミングErlang 単行本(ソフトカバー) – 2008/2/23

5.0 5つ星のうち5.0 6個の評価

{"desktop_buybox_group_1":[{"displayPrice":"¥4,840","priceAmount":4840.00,"currencySymbol":"¥","integerValue":"4,840","decimalSeparator":null,"fractionalValue":null,"symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"iWhF39B2RKq2haWkbfcLjOyCzrZ6HtgvFlP4Hip%2FW9xIXQwpEZZUg9ZHPdD6iCjbOZWh%2B6tbAgrwXdw8XF3WTM7cTkXf0dG3JGnKVV97yGU9ielkrRrOtG%2B9XrqmM119","locale":"ja-JP","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"¥550","priceAmount":550.00,"currencySymbol":"¥","integerValue":"550","decimalSeparator":null,"fractionalValue":null,"symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"iWhF39B2RKq2haWkbfcLjOyCzrZ6Htgvdprr7r2hDzz23I89YkjO05AZfSuL%2FhNpBNJf%2Fq4JPQyUT9jmjlt4ygxNLfLTbrW%2FSdBx8prXsrUluNAv%2FSI6LNhbAPNlXys8p9ThkYxlriOKK9F2BuJ1GDJPdj0ekfYQno1bD2B92hrkqnJe4GiBmEMUGbHM2z6%2F","locale":"ja-JP","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

購入オプションとあわせ買い

プログラミング言語「Erlang」のバイブルを翻訳。

Erlang(アーラン)とは、近年再評価されて注目を集めている関数型プログラミング言語です。
本書は、並行プログラミングに有効な言語として急速に一般にも認知され始めたErlangのバイブル的な解説書を翻訳するもの。
原著者はErlangの初期の頃からの開発者の一人。

続きを読む もっと少なく読む

商品の説明

著者からのコメント

Joeより

我々が暮らすこの世界は並列に動いている。
実世界に存在する他のものと同じように振る舞うプログラムを書きたかったら、プログラムも並行構造になることだろう。
並行アプリケーションを書くために設計された言語を使えば開発はすごく簡単になる。
Erlang のプログラムがモデル化しているのは、我々が考えたりコミュニケーションする様なのだ。

Joe Armstrong

訳者序文
本書を手に取ったあなたがプログラミングをゼロから学ぼうという人ならば、非常に幸運だ。なぜなら、現在主流のC++ やJava といった言語の概念にとらわれることなく、シンプルでありながら強力なプログラミング言語を学べるからだ。あなたがプログラミングの経験者でも同様に幸運だ。なぜなら、これまでのプログラミングの経験に加えて、Erlang というすばらしい道具を活用できるようになるからだ。

さて、近年のWeb をベースとしたシステムの発展は、これまで通信機器など高可用性を重視する用途以外ではあまり知られていなかったErlang に新たな注目を浴びせることになった。Webは基本的に開かれたシステムであるため、比較的簡単にサービスを構築して公開することができる反面、大量のアクセスをさばかなければならない状況も起きやすい。いわゆるC10K 問題である。10K = 10000 個のクライアントからのアクセスをいかにして切り回すかはいまや多くのエンジニアの頭を悩ます問題となっている。C10K 問題は20 世紀の間に提起されていたのだから、それからさらにWeb が発展した現在ではどのような状況であるかは推して知るべしである。

前述のC10K のサイトを見てもわかるように、その解決策はマルチスレッドプログラミングを駆使した煩雑なものが多い。これでは本来提供したいサービスのことを考えるための余裕がなくなってしまう。また、オペレーティングシステムが提供するスレッド環境はコストが高いものが多く、クライアント1 つにスレッドを1 つ割り当てるような贅沢な使い方ではとても10000 個のクライアントをさばくことなどできない。

Erlang ならばそんな贅沢もまったく問題ない。余計なことを考えずにサービスを作ることに集中できるのだ。

また、処理能力を増やすためのハードウェア側からのアプローチとしては、従来は駆動クロックの高速化が一般的であった。しかし、主に熱の問題から現在の半導体の駆動クロックは数GHz で頭打ちになると考えられているため、その代わりに処理装置を増やす方向、つまりマルチプロセッサ化やマルチコア化に拍車がかかっている。ここ数年でマルチプロセッサやマルチコアのマシンは個人でも手に入れられるようになってきたが、その上で動作するソフトウェアの方はまだまだハードウェアを生かしきれていないのが実情だ。

では、どうすれば並列ハードウェアを生かしたソフトウェアを作ることができるのだろうか? 一般には、pthread などに代表されるいわゆるマルチスレッドプログラミングのためのライブラリやフレームワークを使うことが多いだろう。しかし、競合条件を正しく見極めて排他制御を正しく適用するのはなかなか難しく、熟練したプログラマでさえも間違いを犯しがちだ。実際、訳者もマルチコアマシン用のオペレーティングシステムを開発しているが、それでも自分自身がその手の同期バグを仕込んでしまうことがあるし、もっと注意深い人々でもミスは皆無ではない。

人間は誰でもちょっとした間違いをしてしまうものだから、ここはコンピュータの方でなんとかすべきところだ。残念ながら、C やC++、Java、それにPerl やRuby、Scheme などの言語には、そのような間違いをしないような仕組みは備わっていない。後付けの仕組みや実験的な取り組みはあるが、実用的ではなかったり、実績に乏しい。その点、Erlang はもともと並列処理を念頭に置いて設計されているから、変数の排他制御の問題などは本質的に存在しない。それはErlang が関数型プログラミング言語の特徴をうまく生かしているからだ。関数型プログラミングというと身構えてしまう人もいるかもしれないが、実はそんなに難しくない。それどころか、プログラムは命令型プログラミング言語で書かれたものよりもずっとわかりやすい。実のところ、Erlang は関数型プログラミング言語の中でも文法がとっつきやすく、関数型プログラミングの入門にも適している。

ところで、並列指向プログラミングはErlang の最も大きな特徴だが、実はErlang の強みはそれ以外にもある。「関数型」でしかも「並列指向」と来れば、研究室を出たことのない、実績に乏しいプログラミング言語であるかのような印象を抱く人もいるかもしれない。しかし、Erlang には20 年を超える歴史があり、高度な信頼性が要求される通信機器の分野でも実績がある。そのような実績はもちろんErlang の基本設計の見通しの良さによるところも大きいが、忘れてはならないのはOTP というフレームワークの存在である。詳しくは本書の後半の解説に譲るが、OTP は信頼性の高いシステムを作るためのノウハウがつまっている。大規模なシステムを構築し、長年にわたって更新しつつ運用していくためのいわばデザインパターンと言える。また、本書で取り上げているのはOTP のごく一部でしかなく、そのほかにも実際のシステム構築において培われた興味深い機能があるので、本書の次のステップとして覗いてみるのもよいのではないだろうか。

Erlang は歴史のある言語だが、今現在も進化を続けている。本書はErlang OTP R11B5 というリリースを元にしているが、本書発行の時点で既に次のR12B0 というリリースが出ている。今回のリリースは以前のリリースとの互換性を保っているので、本書で解説していることはそのまま通用するはずである。ただし、R12B0 ではエラーメッセージがわかりやすいように変更されているため、エラーメッセージについてはかなり異なる部分がある。

なお、本書の翻訳にあたって、誤解を生じない範囲であえて用語の統一を図らなかった部分がある。原著でも読みやすさを優先して1 つの概念をいくつかの言葉で言い換えており、翻訳でもその方針に従っている。特に、並列(parallel)と並行(concurrent)は厳密にはそれぞれ異なる概念を指す言葉であるが、原著同様統一していない点に注意されたい。

最後に、多忙な中で本書をレビューし、有益なコメントをくださった平岡和幸、檜山正幸、堀玄、向井淳の各氏にこの場を借りてお礼を述べさせていただきます。また、オーム社開発局の方々にも各面でのサポートをいただき、感謝しております。その他、ここで逐一お名前を挙げることはできませんが、さまざまな方からのご協力の下に本書を作ることができました。ありがとうございました。

2008年2月
榊原一矢

著者について

<原著者> Joe Armstrong

耐障害性を備えたアプリケーションをより良く作る方法を探る中で、1986 年にErlang の最初のバージョンを設計し、実装した。また、Erlang に関する一番最初の書籍を執筆し、Erlang に関する講座を初めて開催したのも筆者である。筆者が指導したプログラマの数は数百にものぼり、行った講義やキーノートは数え切れない。
筆者はスウェーデンのストックホルム王立工科大でコンピュータサイエンスの博士号を取得し、現在は耐障害システム設計の専門家として活躍している。以前にはErlang OTP を生み出したプロジェクトのチーフソフトウェアアーキテクトでもあった。また、最初のErlang スタートアップ企業の1 つであるBluetail には起業家として関わるなど、応用と研究の両面において30 年にわたる経験を持つ。
現在は、Erlang を使って耐障害性を高めた交換システムを構築しているEricsson AB に勤務している。

<訳者>榊原一矢(さかきはらかずや)

通信機器や画像処理機器のファームウェア、デバイスドライバなどの開発に携わった後、現在は家庭用ゲームコンソールのオペレーティングシステムを開発している。仕事を離れてもプログラムを書いたり物を作るのは好きだが、1 歳になる長男の面倒を見る合間にしかできないので、Erlang のような軽量プロセススイッチがあればなあと思う毎日。

登録情報

  • 出版社 ‏ : ‎ オーム社 (2008/2/23)
  • 発売日 ‏ : ‎ 2008/2/23
  • 言語 ‏ : ‎ 日本語
  • 単行本(ソフトカバー) ‏ : ‎ 480ページ
  • ISBN-10 ‏ : ‎ 4274067149
  • ISBN-13 ‏ : ‎ 978-4274067143
  • カスタマーレビュー:
    5.0 5つ星のうち5.0 6個の評価

著者について

著者をフォローして、新作のアップデートや改善されたおすすめを入手してください。
Joe Armstrong
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

著者の本をもっと発見したり、よく似た著者を見つけたり、著者のブログを読んだりしましょう

カスタマーレビュー

星5つ中5つ
5つのうち5つ
6グローバルレーティング

この商品をレビュー

他のお客様にも意見を伝えましょう

上位レビュー、対象国: 日本

2008年9月24日に日本でレビュー済み
文句なしに、現時点での最強のErlang解説書。

Erlangの強みである並列化と分散化を“存分”に体験、学習および利用するためには、ある程度の準備が要求されます。最低二台のコンピュータで構成されるネットワーク環境に加え、DNSがあると助かります。

ただ、分散プログラミング部分にあたって、私のMac OSX 10.4は本の通りに上手くいきませんでした。もし、私と同じところで躓いたら、下記を参考にしてみてください。

1)ローカルホストでの分散の場合は、“erl -sname gandalf”でerlang環境を立ち上げるようにと書いてありますが、“erl -sname gandalf@localhost”にします。明確に'@localhost’を記入するということです。

2)DNSなしでマシン間の分散の場合は、"erl -name gandalf@xxx.xxx.xxx.xxx -setcookie abc" に改めて立ち上げると問題が解決します。ここのxxx.xxx.xxxは使用中のマシンのIPアドレスのことで、たとえば 192.168.1.1 などがそうです。

追加情報:
lib_misc:string2value/1 がどうも見当たらないので、それなりのコードを下記に掲載します。
string2value(Str) ->
{ok, Tokens,_} = erl_scan:string(Str++"."),
{ok, Expr} = erl_parse:parse_exprs(Tokens),
{value, Return, _} = erl_eval:exprs(Expr,[]),
Return.
13人のお客様がこれが役に立ったと考えています
レポート
2008年3月2日に日本でレビュー済み
 つい3ヶ月ほど前、アスキーから「プログラミング言語Erlang入門」という本が出て、「入門としては良い、Joe Armstrongの良い本があるのだが、翻訳されていないので」等とレビューを書いていたのだが、その本が翻訳された。並列処理と分散処理に特徴を持つが、分かりにくいとされる言語仕様を余すところなく紹介している。
 また、およそErlangで出来ることを簡単なものから複雑なものまで多数の例を挙げており、一番の特徴であるネットワークやデュアルCPUでのプログラミングなど何でも分かるだろう。
 訳も優れており、原著の雰囲気そのままに、読みやすくユーモアにあふれた語り口になっており飽きさせない。
 Erlangに興味を持った人全てに文句なしに勧められる本だ。
46人のお客様がこれが役に立ったと考えています
レポート
2008年4月8日に日本でレビュー済み
私はこういった関数型言語については全然馴染みがなかったので、最初は非常に読みづらかったですが、それは書籍の問題ではなく、言語仕様というか文法や考え方の問題であって、内容は非常に良いです。
特にこの後、F#に関する本を読んだのですが、F#に比べると非常に言語仕様がシンプルで、並行プログラミングも分散プログラミングも区別することなく同じように書けるし、堅牢でミッションクリティカルなアプリケーションにはぴったりの言語です。
書籍の内容も読めば読むほど味が出る内容で、Erlangの安定性を支えるOTP(Open Telecom Platform)を使った定石アプリケーション構築の説明やアプリケーションを可動させたまま、実行コードを変更するホットスワッピングなどについても丁寧に説明されています。
プログラマたるもの、いろいろな言語に触れてみる必要があると思いますが、これは必読、お勧めの名著だと思います。
11人のお客様がこれが役に立ったと考えています
レポート