contents memorandum はてな

目次とメモを置いとく場

『〈角川インターネット講座 2〉ネットを支えるオープンソース――ソフトウェアの進化』(法林浩之ほか[著] KADOKAWA 2014)

監修:まつもと ゆきひろ(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
    PerlRubyPythonPHP
    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ライセンス
  GPLGNU 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」 で表した。
  ※温度はセ氏温度を用いた。