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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

opensource and accessibility (Dec2000) Part 2

905
views

Published on

Published in: Technology, News & Politics

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
905
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

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