opensource and accessibility (Dec2000) Part 2
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,049
On Slideshare
670
From Embeds
379
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 379

http://ja.nishimotz.com 379

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. プログラマの三大美徳について 西本卓也 京都工芸繊維大学 工芸学部 電子情報工学科 助手 http://www-vox.dj.kit.ac.jp/nishi/ nishi@vox.dj.kit.ac.jp 2000-12-01 京都研究会 1
  • 2. オープンソースとアクセシビリティ • プログラマの三大美徳について考える – 無精 – 短気 – 傲慢 • 出典: Programming Perl 改訂版 2000-12-01 京都研究会 2
  • 3. 美徳1 「無精」 • 手抜きをせずに楽をするためには? – 仕事の質は落とさないで、時間や労力を短縮する • 問題を解くのではなく、問題を解くための道具を作る – プログラムを書きたくなる動機 • 問題そのものを解くのではなく、 より一般化された問題を解く • 解法=ソリューションを再利用する • 誰かのソリューションを再利用する=オープンソース 2000-12-01 京都研究会 3
  • 4. 頭を使って時間と労力を節約する • 6時間かかる単純作業があったとする • Aさん:6時間かけてやる – 頭を使うことを怠ると、時間がかかる • Bさん:1時間かけてプログラムを書く→5分で実行する – 頭を使うことにより、時間を節約する • もちろん逆もあるので見極めが大切!! – ようするにこれがセンス?? 知識と経験ですね • そのプロセスを、知的快楽にしなくてはダメ!! プロダクトの時代からプロセスの時代へ 2000-12-01 京都研究会 4
  • 5. 技術者の「ブラックジャック」モデル • 手塚治虫「ブラックジャック」の行動パターン – 技術的にチャレンジングであれば、タダでも手術する – つまらない外科手術には法外な値段をふっかける – 類似例:「750ライダー」 • 知的快楽のない仕事を減らす生き方 • そもそも仕事とは楽しいものなのか? • 利益にならなくてもやりたい仕事があるのか? – 条件によっては Yes!! – ではその条件は? 2000-12-01 京都研究会 5
  • 6. 「楽しさ」の認知的モデル • チクセントミハイのフロー理論 • 「フロー体験 喜びの現象学」 M.チクセントミハイ (今村浩明 訳) 世界思想社 1996 • カイヨワの遊びの理論を発展させ、 独自の方法によって「楽しさ」を定義した • 楽しさ=自己目的的な行為 • 流れているような感じ=フロー体験 • 心理的エントロピーを減らす→最適体験 2000-12-01 京都研究会 6
  • 7. フロー体験モデル • 挑戦と技能が均衡した状態 → 楽しさ – 技能が低いと不安 – 技能が高いと退屈 high – 能力を必要とする 挑戦的活動が必要 • フローをもたらす体験 挑 不安 フロー – チェス,山登り,ダンス 戦 – 仕事:外科手術 – ネットサーフィン 無感動 退屈 – BBS・チャット参加 – 音声認識 技能 high 2000-12-01 京都研究会 7
  • 8. フロー体験の構成要素 • 課題を達成できる見通し • 行為への意識の集中 • 明確な目標 • 直接的なフィードバックの感覚 • 深い没入状態 • 自分の行為を統制しているという感覚 • 自己と対象の融合(自己意識の消失) • 時間経過の感覚の変化 2000-12-01 京都研究会 8
  • 9. 成功するオープンソースとは • 課題を達成できる見通しがあること • 明確な目標、直接的なフィードバックが得られること – 役に立たない未完成のソースコード →× – 複雑すぎていじれないソースコード →× – もしも Mozilla が Netscape 4.x からスタートしてたら… • 美しい製品ビジョンと、理解しやすいソースコードは、 プログラマを感動させる • オープンソースシステム=芸術作品である – 作品それ自身が指揮棒、プログラマは演奏者 2000-12-01 京都研究会 9
  • 10. プログラマにおける「無精」とは • 仕事をしたくないのではない • くだらない仕事をしたくない • 憎むべきものは – 不毛な事務処理・トラブル・もめごと – 自分のやった仕事が無駄になること – 門外漢に余計な口出しをされて邪魔されること • 正しく分析し、正しく問題を解決することで、無精を貫く • 理性的であればあるほどハッピーになれる • 金をケチればケチるほどクリエイティブになれる 2000-12-01 京都研究会 10
  • 11. 無精さが育てたUNIX文化 • テキストファイルは万能である – あらゆる情報が、すべて、使い慣れた1種類の スクリーンエディタによって編集/閲覧できる • テキストファイルを加工する豊富なフィルター – 過去に作られた「一般性のある解法」 • 「車輪を再発明しない」 • グルー(糊)になるソフトウェアの存在 (Perlなど) • 唯一の欠点:データ構造が階層化すると破綻する → 階層構造を持つテキストファイル= XML 2000-12-01 京都研究会 11
  • 12. 2000-12-01 京都研究会 12
  • 13. テキストファイルの差分 古いファイル 新しいファイル 差分(diff) 古いファイル 差分ファイル マージ(patch) 新しいファイル 2000-12-01 京都研究会 13
  • 14. CVS=並行バージョンシステム 1.1 1.1 1.1 1.1+変更B 1.1+変更A 1.2 1.2 1.2+変更B 1.3 1.3 1.3 作業ファイル リポジトリ=貯蔵庫 作業ファイル 2000-12-01 京都研究会 14
  • 15. インターネット、無精でいいのに。 • データ:二度と作り直したくない。使いまわしたい。 – テキスト情報・電子情報:いくらでも再利用できる – Shockwave とか凝った画像とか、いらん。でしょ? • プログラム:二度と書き直したくない – Java なら「一度書けばどこでも動く」? ウソ。Java VM が変わればデバッグはやり直し。 – サーバでロジックを書いて、ブラウザはHTMLだけ。 デバッグも1回ですむ → EJB / JSP 2000-12-01 京都研究会 15
  • 16. 美徳2 「短気」 • 大切だと感じたものはすぐに手に入れるか経験しないと、 一晩か二晩で平凡なものに変質してしまう。 – 村上龍「ラブ&ポップ」 • プログラマは短気でなくてはいけない – いますぐ作りはじめること。でなきゃいつやるの? – 誰かにやらせないこと。自分以外に誰がやるの? – 勤務時間だけ仕事するのはアホである – 休日に休むより仕事をやっつける方が安心する – プログラマは金を使う暇がないのが当たり前 2000-12-01 京都研究会 16
  • 17. 「短気」を支える開発環境 • ターンアラウンドタイムが短いこと • 記述が簡潔であること – Perl, Ruby, Java, Delphi, … • 開発環境を買わなくても、すぐ手に入ること – フリーの開発環境はたくさんある。しかも高機能 – 使い方やノウハウもインターネットで見つかる • あなたがプログラマになれないのは、 「XXXXを買っていないから」「XXXXを読んでないから」 ではなく、やる気がないからです。(語学と同じ) 2000-12-01 京都研究会 17
  • 18. オープンソースとは?フリーソフトとは? • 作者に修正を依頼するのが待てない – さっさと自分で直したい – ソースファイル公開や配布の許諾を得るのが面倒 – お金を払う手続きが面倒 • プログラマの「短気」を本当に満たすためには? → GNU Public Licence こそが偉大なソフトウェア • フリーソフトの本質は「自由なソフト」 • 自分一人で使えない/直せない奴は金を払え • 技術のある人間がとことん安く速く活動できる世界 2000-12-01 京都研究会 アクセシビリティ 18
  • 19. 美徳3 「傲慢」 • とりあえず公開しよう = オープンマインド • 大切な情報を保管する最良の方法は、 あまねく広く配布することである – 不完全だからといって隠さないこと – かっこいい名前をつけること • 自分が作ったもの、自分がほれ込んだものを売り込む – ウェブでは、無精で短気な人も、傲慢になれる • 「完璧にしよう」と思うな 自分で100%解いてはいけない • ただし、バグフィックスにおいては「短気」であるべし!! 2000-12-01 京都研究会 19
  • 20. 何のために働くか? • 食うためではなく、 地位と名誉と快楽のために仕事をすること • 「労働」 それをしなければいけないからやること。 「仕事」 それをしたいと思ってすること。 • と思っている人が食えるようなビジネスモデルに期待 2000-12-01 京都研究会 20