監修:まつもと ゆきひろ(1965-) 松本 行弘。ソフトウェア技術者(Ruby開発者)。
著者:法林 浩之[ほうりん・ひろゆき](1966-)
著者:久野 靖[くの・やすし](1956-) 筑波大学ビジネスサイエンス系教授。
著者:阿部 和広[あべ・かずひろ] 青山学院大学非常勤講師、津田塾大学非常勤講師
著者:吉岡 弘隆[よしおか・ひろたか] 楽天株式会社技術理事、ビジネス・ブレークスルー大学教授
著者:やまね ひでき Debian JP Project会長(2013~2014年度)、Debian Developer
著者:瀧田 佐登子[たきた・さとこ](1963-) システムエンジニア。WebDINO Japan代表理事。
著者:鵜飼 文敏[うかい・ふみとし] ソフトウェアエンジニア。
企画:角川アスキー総合研究所[かどかわあすきい・そうごうけんきゅうじょ]
編集協力:豊福 剛[とよふく・つよし](1962-) ウェブ開発。翻訳など。
編集協力:西村 賢[にしむら・けん] TechCrunch Japan編集長・上智大学非常勤講師。 「序章」。
図版・イラスト:桂プロ[かつらぷろ]
装丁:葦澤 泰偉[あしざわ・たいい](1948-) 装幀家、アートディレクター。
装幀:五十嵐 徹[いがらし・とおる]
シリーズ:角川インターネット講座;2
NDC:007.63 情報科学(コンピュータ システム.ソフトウェア)
「角川インターネット講座2 ネットを支えるオープンソース ソフトウェアの進化」 まつもと ゆきひろ[全集] - KADOKAWA
【目次】
目次 [001-004]
本講座の構成 [006]
第1部 プログラミングがすべてをつくった 007
序章 インターネットはソフトウェアでできている[まつもとゆきひろ] 009
日常生活に入り込んだソフトウェアを理解する 011
すべてはソフトウェアで動く
アプリが起動するとは
ネットの向こうにある「サーバー」というコンピューター
ネットワークを成立させる「スイッチ」もコンピューター
プログラミング言語とはどんなものか? 018
プログラミング言語は翻訳を経て実行される
プログラミング言語は何種類ぐらいあるのか
プログラミング言語の体系
なぜ最強のプログラミング言語は存在しないのか?
多くのソフトウェアはトレードオフの産物
プログラミング言語の進化 027
人間を助ける側へシフトしてきた歴史
オブジェクト指向で世界を記述する
モジュール化が進むソフトウェアの世界
プログラミング言語とパラダイム
プログラミング言語は進化する生態系
時代の変化に合わせて進化する
プログラミング言語には向き、不向きがある
ライブラリの充実度が重要な選択基準に
オープンソースによる共同作業とインターネット 038
プログラミングは共同作業でもある
プログラマーの「気持ち」
他人のソースコードを読む
オープンソースはなぜ重要なのか
実装を尊重するインターネットの文化
ブックガイド 047
第1章 インターネットを支えるソフトウェアを知る[法林浩之] 049
インターネットはソフトウェアで動いている 051
ソフトウェアの集合体としてのインターネット
ウェブサイトへのアクセスと介在するソフトウェア
①パソコン上でブラウザーを起動
②ブラウザーでグーグルにアクセス
③グーグルの検索画面にて「インターネット」というキーワードで検索を実行
④検索結果の中からひとつを選び、サイトにアクセス
基本的なシステム構成 057
大多数はサーバー・クライアント構成
サーバー・クライアント構成とは
サーバー
クライアント
サーバー・クライアント以外の構成
IP電話など音声通話を行うシステム
ファイル転送/共有システム
代表的なインターネットサービスとソフトウェア 062
ウェブ
ウェブサーバー
ウェブクライアント
ウェブサイトを管理するソフトウェア
メール
ファイル転送
リアルタイムコミュニケーションツール
その他のサービス
DNS
データベース
仮想基盤
ソフトウェアを支えるソフトウェア 069
ソフトウェアの内部構造
ソフトウェアの依存関係の例
PHP
MySQL
ウェブサービスにおける依存関係の例
ウェブサーバー
データベース
プログラミング言語
ライブラリ
ウェブサービスAPI
プログラミング言語もソフトウェア
C言語
C++、Objective-C
シェル(shell)
Java
Perl、Ruby、Python、PHP
Javascript
OSもソフトウェア
サーバー
パソコン
携帯端末など
その他
ソフトウェアの変化と歴史的流れ 078
顕著な3つの変化
①HTTP化/ウェブサービス化
②仮想化
③高性能化
データ転送量の増大
処理の高速化
端末の小型化
オープンソースとの関連 083
インターネットを支えるソフトウェアにはOSSが多い
OSS開発モデル普及の要因
ブックガイド 087
第2章 プログラミングとは何か[久野 靖] 089
コンピューターとプログラム 091
まずコンピューターを知る
プログラムをつくる人がもつ無限の可能性
プログラミングを体験する 094
プログラミングの世界
繰り返しの威力
メソッドを定義する
パラメータと部品の柔軟性
部品のさらなる汎用性
数当てゲーム
疑似乱数、変数、返値〔かえりち〕
hit/blowを数える
数当てのプログラムをつくる
今日のプログラミング 112
ウェブアプリ化――できあいのモノを使う
そして、プログラミングとは
ブックガイド 116
第3章 プログラミングと教育[阿部和広] 117
プログラミング教育の目的 119
計算機科学から表現手段まで
社会に必要とされるプログラミング教育とは
プログラミング教育のあゆみ 121
マイコンとBASICの時代
プログラム学習とCAI[Computer Assisted Instruction]
プログラムを書くことで学ぶ
すべての年齢の子供たちのためのパーソナルコンピューター
ビジュアルプログラミングと科学教育
すべての子供たちにパソコンを
ソーシャルネットワークとリスペクト
日本のプログラミング教育のいま 142
自由な創造空間となりえるか
日常的にプログラミングに親しむために
ブックガイド 146
第4章 ハッカー精神とは何か――プログラマーに求められる素養と思考方法[吉岡弘隆] 147
プログラマーに求められる素養と思考方法 149
インターネット革命前のハッカーたち
MITのAIラボ界隈のハッカーたち
ミニコンピューターの誕生
汎用コンピューター(メインフレーム)の時代
メインフレーム文化の対抗文化
POP-7とUnixの誕生
POP-10文化
PCの登場
ビル・ゲイツの公開書簡
プログラマーにとっての素養とは 161
ハッカー倫理
ハックの価値
90年代初頭のハッカーたち
Linuxのソフトウェア開発モデル
Netscapeのソースコード公開
企業にとってのハッカー文化 171
企業とハッカーの共生
フェイスブックのハッカー文化
IBMのオープンソース貢献
オープンソース文化を学ぶ企業
シリコンバレーでの人材流動性
日本における勉強会文化
コミュニティの価値を理解する企業
ハッカー精神とモチベーション
注 182
ブックガイド 184
第2部 オープンソースが高めたネットの価値 187
第5章 ライセンスというプロトコル――OSSエコシステムを繋ぐ仕組み[やまねひでき] 189
ソフトウェアライセンスと著作権 191
ソフトウェアライセンスとは何か
ソフトウェアと著作権、その歴史
さまざまなソフトウェアとライセンス 194
商用ソフトウェア
シェアウェア・フリーウェア
オープンソースソフトウェア(OSS)
サブスクリプション(購読)契約
OSSライセンスとは何か 200
OSSには定義がある
OSSの歴史
OSSライセンスを採用することの優位性
OSSライセンスの法的有効性
独自のOSSライセンスをつくることの是非
代表的なOSSライセンスとその特徴 208
BSDライセンス
MITライセンス
Apache 2.0ライセンス
GPL(GNU General Public License)
MPL(Mozilla General Public License)
その他類似ライセンス
OFL(SIL Open Font License)
クリエイティブ・コモンズ
ライセンスがない場合、どのような不都合が生じるか
OSSの現状と今後 214
意識されることが少なくなったOSSとライセンス
インターネットをコントロールする力の行方
注 217
参考文献 219
ブックガイド 220
第6章 オープンソース化が生んだ変化[瀧田佐登子] 221
ブラウザー戦争が起きるまで 223
ウェブブラウザーの登場
1990年代のソフトウェアビジネス
アカデミック志向だったインターネット
ブラウザー戦争の勃発
オープンソース化に舵を切る 227
ネットスケープの大きな決断
オープンソース化、もうひとつの理由
Netscape 6 の失敗
沈黙の5年間 232
オープンソース化の5年間
オープンソース・プロジェクトとしての開発体制
オープンソースソフトウェアとしての成功 237
インターネット接続環境の変化
モジラ財団の設立
オープンソースのマインドは楽しむこと 240
オープンソースは衰退したか
日本企業の戦略ミス
オープンな枠組みで創造するということ 243
朽ちない技術とは何か
デジタルからリアルへの還流
インターネットはいまのままでよいのか
ブックガイド 247
第7章 企業とオープンソース[鵜飼文敏] 249
ソフトウェアとビジネス 251
ソースコードとオブジェクトコード
インターネット企業とオープンソースソフトウェア
オープンソースソフトウェアの歴史 255
GNUとフリーソフトウェア
ネットで配布されたソースコード
企業を意識して「オープンソース」を提唱
プラットフォームを問わないウェブ
企業によるオープンソースソフトウェアの利用 262
オープンソースビジネスの形態
企業によるオープンソースソフトウェア開発 269
プロジェクトに参加する企業
企業の開発コード公開の長所と短所
企業のオープンソースへの貢献 274
開発者を雇用する企業
オープンソースを支援するサービス
オープンソースの今後 277
ソースコードを通じた技術交流
企業の技術力がコードに表れる
注 279
ブックガイド 280
講座紹介 [283-284]
奥付 [286]
発刊に際して(2014年10月 角川歴彦) [287]
【抜き書き】
・構成と凡例。
本講座の構成
1. インターネットの商用化から20年が経過し、 日本の社会は高度情報化時代へと突入して久しい。その間にインターネットは社会に必要な情報基盤となって定着し、同時に大きな社会構造の変革をもたらした。本講座はそうしたインターネットを理解するために15のテーマを設定し、 テーマごとに1巻を設け、 全15巻で解説した。
2. 各巻は、 監修者による序章および各執筆者による本論で構成される。 各章は、基本的に本文のほか各種注釈、参考文献、ブックガイドからなる。
3. 専門的な用語、 組織名、製品名、サービス名、人名などについては本文中に「▼」で示し、主として編集部が脚注を付した。
4. 章末の後注および参考文献は、 各執筆者による。
5. 章末のブックガイドでは、より知見を深めたい読者に向けて、各執筆者が推薦したい書籍やオンラインリソースを挙げた。
用語の方針
1. 本書内の専門用語は慣用によった。
2. 本書に記載されている組織名、製品名、サービス名は各社の商標または登録商標の場合がある。本文中では「R」など商標を示すマークは明記していない。
3. 広く使用されている組織名、製品名、サービス名、人名など固有名詞の一部は日本での通称で表記した。 また、人名は基本的に敬称を略した。
4. 計量単位とその接頭辞については、基本的に国際単位系およびその併用単位など国際規格で定められたものを用いた。 また、一部の単位は省略して表記する場合がある。 情報に関する単位および接頭辞の省略例を下に挙げた。
※情報の量を表す単位バイトは 「B」、 ビットは 「b」 で表した。
※温度はセ氏温度を用いた。