2012年10月19日

スクウェア・エニックス 三宅陽一郎氏からのコメント『C++のためのAPIデザイン』

日本語版に寄せて

C++言語をめぐる環境は、この数年でめまぐるしく変わりつつあります。Java、C#などを始めとする本格的なオブジェクト指向言語が、その真価をいよいよ発揮し、C++はもはや数あるオブジェクト指向言語の一つとなりました。しかし、ゲーム産業を始めとして、長い歴史を持つC++は広い用途に活用されると同時に改良が続けており、C++はオブジェクト指向言語の中でもユニークな位置を占め続けています。そこには、オブジェクト指向言語の中でもC++だけが持つユニークな特徴があるからです。
C++には、C言語から継承した古典的な言語の持つハードウェアに近い低レベルのレイヤーを制御できる能力と、Simulaから継承した抽象度の高いオブジェクト指向の構築性を併せ持っています。前者は高いパフォーマンスと制御能力、デバイスへの自由なアクセスを実現し、後者はオブジェクト指向言語の中でも自由な記述や変換を可能とします。これらの点が高い自由度を与えると同時に大きな脆弱性を産み出します。両者が重なることで初めて発揮される多様性や脆弱性も存在します。このように、本来相反する二つのこの性質を持つ言語は、時に思わぬダークサイドを生成し開発者を困惑させますが、しかし、時にはこれ以上ない豊かな自由度を開発者に提供してくれるのです。
 では、実際にC++を自由に使いこなしつつ堅牢で長期の運用に耐えるソフトウェアを設計するには、どうすればよいのか?その答えが本書にあります。アーキテクチャのレベルの堅牢さを確保しつつ、C++の細やかな性質をふんだんに利用して行く本書の開発のスタイルは、まさにC++による大規模開発の一つのお手本と呼べるべきものです。初学者はC++のみならず、オブジェクト指向言語の持つソフトウェア空間の広がりを実感し、ベテランであればあるほど、深い共感と感嘆をくり返し本書を読み進められることでしょう。すべての読者の皆様はC++の高いレベルへステップアップするための「勇気」を与えられるでしょう。
一行一行原文と訳文を比較しながら監訳していると、文章の向こうに著者の息吹や人格、知性まで感じられます。著者はそれぞれの職場で重要な責任を負いながら、常に安全性、堅牢性、そして同僚やユーザーが使いやすい技術的選択と設計を心を砕いて行った上で、持ち前の高い技術力で先進的なソフトウェアを構築して来た人物だと思われます。それは一つ一つの技術の細やかな説明とコーディングに表れています。また著者の視点は非常に多様です。一つの事例に対してAPIを使うユーザー、提供する運営者、制作する開発者、それぞれの視点に立った解説が織り込まれています。プログラムの局所的な視点から、ソフトウェア全体を俯瞰する視点、ユーザーレベルで感じるモジュールのパフォーマンスから、会社全体がそのソフトウェアを運用する長期的な視点まで、マルチスケールかつ多角的な方向からソフトウェアを形成して行く姿勢を読者は学ぶことができます。これは特に、ビジネスにおいてソフトウェアを作って行く上でとても大切なことです。
著者はC++が大きく本格的に使われだした時期に、一流の現場で開発をリードして来た貴重な経験と、その経験に甘んずることなく経験を抽象化・理論化すると同時に、他のさまざまな凡例によって肉づけし、さらにその知見を開発の現場で活かしブラッシュアップする、という見事な循環によって、C++の広大な領野を闊歩し耕して来た人物です。まさに時代が作り上げた人物であり、本書を書くにふさわしい人物です。その深い造詣には尊敬の念を抱くばかりです。本訳書を監修者として携われることを誇らしく思います。
プログラミングはたとえどんな局面であれ深い喜びを与えてくれるものです。C++は本当に自由な空間をプログラマに与えてくれますが、他の言語より少し危なっかしいのです。しかし本書を読むことで、そのような問題を把握、そういった問題を超えて大きな構築を持ちこたえて行くための技術を習得し、本来のこの言語の持つ可能性を発揮できるようになるでしょう。
この邦訳書もそれぞれの分野で卓越したスキルを持つ皆様によって編まれました。この本の制作に携わったすべての皆様に感謝申し上げます。また、この本を強く推薦してくださった僕の尊敬するプログラマ、手島孝人さんに感謝申し上げます。そして、何より本書を手にとってくださった読者の皆様に感謝いたします。
スクウェア・エニックス
テクノロジー推進部 リードAIリサーチャー
三宅 陽一郎(監修者)
10月30日刊行予定『C++のためのAPIデザイン』につきまして、本書の監修者でありますスクウェア・エニックス 三宅陽一郎氏からのコメントをここにご紹介致します。


■日本語版に寄せて
Cover_Cpp_Api.jpg 
C++言語をめぐる環境は、この数年でめまぐるしく変わりつつあります。Java、C#などを始めとする本格的なオブジェクト指向言語が、その真価をいよいよ発揮し、C++はもはや数あるオブジェクト指向言語の一つとなりました。しかし、ゲーム産業を始めとして、長い歴史を持つC++は広い用途に活用されると同時に改良が続けており、C++はオブジェクト指向言語の中でもユニークな位置を占め続けています。そこには、オブジェクト指向言語の中でもC++だけが持つユニークな特徴があるからです。

C++には、C言語から継承した古典的な言語の持つハードウェアに近い低レベルのレイヤーを制御できる能力と、Simulaから継承した抽象度の高いオブジェクト指向の構築性を併せ持っています。前者は高いパフォーマンスと制御能力、デバイスへの自由なアクセスを実現し、後者はオブジェクト指向言語の中でも自由な記述や変換を可能とします。これらの点が高い自由度を与えると同時に大きな脆弱性を産み出します。両者が重なることで初めて発揮される多様性や脆弱性も存在します。このように、本来相反する二つのこの性質を持つ言語は、時に思わぬダークサイドを生成し開発者を困惑させますが、しかし、時にはこれ以上ない豊かな自由度を開発者に提供してくれるのです。

 では、実際にC++を自由に使いこなしつつ堅牢で長期の運用に耐えるソフトウェアを設計するには、どうすればよいのか?その答えが本書にあります。アーキテクチャのレベルの堅牢さを確保しつつ、C++の細やかな性質をふんだんに利用して行く本書の開発のスタイルは、まさにC++による大規模開発の一つのお手本と呼べるべきものです。初学者はC++のみならず、オブジェクト指向言語の持つソフトウェア空間の広がりを実感し、ベテランであればあるほど、深い共感と感嘆をくり返し本書を読み進められることでしょう。すべての読者の皆様はC++の高いレベルへステップアップするための「勇気」を与えられるでしょう。

一行一行原文と訳文を比較しながら監訳していると、文章の向こうに著者の息吹や人格、知性まで感じられます。著者はそれぞれの職場で重要な責任を負いながら、常に安全性、堅牢性、そして同僚やユーザーが使いやすい技術的選択と設計を心を砕いて行った上で、持ち前の高い技術力で先進的なソフトウェアを構築して来た人物だと思われます。それは一つ一つの技術の細やかな説明とコーディングに表れています。また著者の視点は非常に多様です。一つの事例に対してAPIを使うユーザー、提供する運営者、制作する開発者、それぞれの視点に立った解説が織り込まれています。プログラムの局所的な視点から、ソフトウェア全体を俯瞰する視点、ユーザーレベルで感じるモジュールのパフォーマンスから、会社全体がそのソフトウェアを運用する長期的な視点まで、マルチスケールかつ多角的な方向からソフトウェアを形成して行く姿勢を読者は学ぶことができます。これは特に、ビジネスにおいてソフトウェアを作って行く上でとても大切なことです。

著者はC++が大きく本格的に使われだした時期に、一流の現場で開発をリードして来た貴重な経験と、その経験に甘んずることなく経験を抽象化・理論化すると同時に、他のさまざまな凡例によって肉づけし、さらにその知見を開発の現場で活かしブラッシュアップする、という見事な循環によって、C++の広大な領野を闊歩し耕して来た人物です。まさに時代が作り上げた人物であり、本書を書くにふさわしい人物です。その深い造詣には尊敬の念を抱くばかりです。本訳書を監修者として携われることを誇らしく思います。

プログラミングはたとえどんな局面であれ深い喜びを与えてくれるものです。C++は本当に自由な空間をプログラマに与えてくれますが、他の言語より少し危なっかしいのです。しかし本書を読むことで、そのような問題を把握、そういった問題を超えて大きな構築を持ちこたえて行くための技術を習得し、本来のこの言語の持つ可能性を発揮できるようになるでしょう。

この邦訳書もそれぞれの分野で卓越したスキルを持つ皆様によって編まれました。この本の制作に携わったすべての皆様に感謝申し上げます。また、この本を強く推薦してくださった僕の尊敬するプログラマ、手島孝人さんに感謝申し上げます。そして、何より本書を手にとってくださった読者の皆様に感謝いたします。

スクウェア・エニックス
テクノロジー推進部 リードAIリサーチャー
三宅 陽一郎(監修者)


 

Cover_Cpp_Api.jpgC++のためのAPIデザイン
マーティン・レディ 著 
ホジソンますみ 訳 
三宅 陽一郎 監修

ISBN:978-4-7973-6915-1
サイズ:B5変/1色
ページ数:528
価格:3990円 (税込)
出版日:2012/10/31










ISBNで検索
4-7973--X 















企業情報 個人情報について