- 1 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 21:58:20.73 ID:CAP_USER
IQ 180の天才プログラマーで有名な、台湾のデジタル担当大臣オードリー・タンさんへのインタビュー。今回はかなりギークかつ実務的な質問をしました。
石井:今回の私の質問は少し技術的なことです。オードリーさんは天才プログラマーとして有名です。GitLab Taiwanのエンジニア友人から伺ったのですが、オードリーさんはわずか200行のコードで、驚くほどパフォーマンスが高いアプリケーションを作成したことがあるそうですね 。
軽量で効果的なコードを書くための秘訣があれば、3つほど教えていただけますか?
オードリー・タン:1つ目は、デザインやグラフィックやアイコンなどを除外した、コアとなる機能のみが書かれたコードをコミュニティと共有することです。
私はコードを公開する時、「このコードは暫定版なので、プルリクエストをお送りください。」と言います。そうすれば、他の皆さんが(修正時の心理的ハードルが下がるため)貢献しやすくなります。
本当に重要なことは、単独で作業するのではなくクラウドで作業することです。
2つ目は、社会的に良さそうなプロジェクトかどうか初期段階で見極めることです。コードを書き始める前にreadme.txtの文面を考え、プロジェクトの企画全体を想像し、プロジェクト名とハッシュタグを考え、不特定多数の人が社会的意義を認めて開発に参加するように動機付けるには何をするべきか、といったことを考えるのです。
3つ目ですが、相手を多くの同意書で縛る代わりに、相手に活躍の場を与えることを大切にしています。これは「Radical Trust(徹底的な信頼)」と呼ぶ方法論です。相手は、GitHubで自分が実施したcommitに問題があると分かったら、自らrevertすることができます。
注:commit=GitHub等で変更を反映する操作
注:revert=GitHub等で変更を取り消す操作許可を得ることは謝ることよりずっと難しいことです。だから、取りあえず進めてもらい、もし間違ったら一言ごめんなさいと言って修正してもらえば良いのです。
私自身もこれまで、誤字脱字を含め、些細なミスをいろいろしてきました。 しかし、もし皆があなたの許可がないと動けないとしたらどうでしょうか。その場合、それがプロジェクトのボトルネックになってしまい、あなたの負担が減ることもありません。あなたがその気になれば、あなたは他の人に委任することさえも委譲することができます。
石井:その通りですね。ありがとうございます。
オードリーさんが言及された「Radical Trust」に大変興味を持ちました。
「Radical Trust(徹底的な信頼)」と「Trust(信頼)」の主な違いは何でしょうか?
オードリー・タン:「Radical Trust」の意味するところは、参画する権利の委譲です。例えば、Rakuというプログラミング言語を使いやすくするために、最近私はPugsの実装を行いました。その際、私は共有リポジトリへのプッシュ権が必要だったので、PerlやHaskellの関係者だけでなく、Pythonの生みの親であるグイド・ファンロッサムにもそれを伝えました。
ご存じの通り、Perl 6を巡ってはフォーラムに(Perl 5の正統な後継でないという)批判的なコメントが書かれますが、私達は大抵「権限があります」とだけ返信します。
あなたも開発に参加して、より良いものにすることが出来ます。進化が続くのは、元のバージョンから改良版を生み出す人のおかげです。直前に変更が行われたばかりであっても、もっと良い案が見つかったなら直ちに改良を施すべきなのです。これはWikipediaと同様で、IPアドレスを持っている人なら誰でも改良することが可能です。もし間違った変更をしてしまったら、 後から謝ればよいのです。
以下ソース
https://ascii.jp/elem/000/004/040/4040504/- 2 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:01:57.28 ID:09a/J4NX
- 平井大臣とどっちが有能だよね?
- 3 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:02:51.54 ID:VC3vnYcb
- 悪の技術者なんか存在しない、懐かしい価値観だなぁ。
ほっこりした。 - 4 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:05:15.52 ID:0r14qqJR
- 何をやりたいのか構想を最初に示し
コアコードを書く…自分で全部作りたいという欲求が
なければ
確かにこのやり方が最適だな - 5 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:06:32.22 ID:2dwyi3dR
- 以下、能力がないので揚げ足とりでマウントを取ってアイデンティティを保とうとするプログラマが涌きます
- 6 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:07:09.43 ID:xCJoAJOh
- 当方ボーカルみたいな感じか
- 7 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:07:32.44 ID:NXJgtUlQ
- ポテチン
- 8 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:11:11.00 ID:y0tMXtP3
- Radical Trust=丸投げ
ではありません - 9 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:14:09.41 ID:OI+2YXk8
- この間特集で出てた人か
3日でマスクの受け取りアプリ?を組んだ人よね - 10 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:15:03.79 ID:F+V/SMpd
- 頭いいなあ
まあ原理は分かってもそれを落とし込むのはアート - 11 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:15:27.84 ID:px1DW9vm
- 一方その頃日本ではGitHubの使い方も知らない年収300万のSEが
公開しちゃいけないコードを公開して炎上してたわけだが - 16 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:21:19.11 ID:E0SJeB9W
- >>11
搾取されてると思わせた時点でしょうがないな。 - 12 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:18:32.12 ID:kg+ANea0
- アップルの顧問してたらしいね
- 13 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:19:05.75 ID:mvxM3uK9
- スマートだな
- 14 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:20:14.03 ID:CA5vOKjb
- 綺麗な宅八郎
- 15 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:20:36.95 ID:leDkh7zo
- perl の cpan
- 17 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:29:27.38 ID:y89XSNwp
- 行は改行文字をビューアーが勝手に改行したように見せているだけで、プログラムは1行だ。
- 18 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:31:20.01 ID:FvX9uf6o
- >>17
それ Haskell が話題でてる前だからやめたほうがいい
perl5 等ではいいけど - 39 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 23:01:38.93 ID:XVbr1IsA
- >>17
老害乙 - 19 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:36:18.13 ID:mg5AHBMw
- 日本人には出来ないことだらけ
- 22 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:41:47.31 ID:mj7Rj7K2
- >>19
日本人はエクセル駆使してSQL作ってるからw
無駄の極み - 20 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:39:46.81 ID:9BIpc5HL
- >>1
おいUSB大臣読んでこい - 21 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:40:05.86 ID:VFC5exNA
- シリコンバレー方式だな
斬新だがこの方式は若者でなければ無理
設計なんて頭でやるから
ドキュメントなんて誰も書かない
だが開発速度はロケットだ - 23 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:43:23.40 ID:EuI3UJAy
- 1行1行が桁外れに長いってやつだな
- 25 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:44:48.68 ID:+ajzJuc/
- 最近の言語はオブジェクト指向だから、
数行で何万行のコードと同じプログラムできるやろ - 26 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:47:05.87 ID:vkQHGUHp
- 俺が10倍に引き伸ばしてやるよ
- 27 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:50:57.69 ID:HnpIJjD7
- フレームワークにライブラリ知らずにいまどきのアプリ作れないぞ
- 28 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:51:36.57 ID:walLtary
- 頭のいい人のコードは凡人の俺にはメンテがムズカシイ、、
- 36 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:57:44.55 ID:HnpIJjD7
- >>28
200行でむずかしいのか?
それ基本がわかってないだけだろ - 29 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:51:41.38 ID:qkBMvCT5
- ゲイの方ですね
- 33 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:54:32.50 ID:HnpIJjD7
- >>29
違います - 30 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:52:20.79 ID:Fqt/ttx7
- 伽藍とバザール理論?
- 31 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:54:11.50 ID:HnpIJjD7
- オードリーおばさんのこの話いまごろ引用して古すぎるぞ
Perlは7だし
そもそもこの話に全く価値はない - 32 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:54:23.00 ID:pavI6Kj7
- よくわからんが保守性を含めて効率の高いコードだったらいいと思うけど、
独りよがりのだったらちょっと・・・とは感じる独りよがりでもかなりのコード数を減らせるのなら確かに天才なのだろうな
- 35 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:56:20.87 ID:HnpIJjD7
- >>32
自分の書くのが200行なら独りよがりになりようがない
多くは既存のライブラリ側のロジックだから公的な検証済みで間違えようもない - 44 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 23:10:52.90 ID:pavI6Kj7
- >>35
あるんだよ・・・そういう書き方がわからない人がいるのかもしれないが
- 34 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:54:54.66 ID:0sbnC7tC
- >>1
200行の殆どはreadme.txtってことか - 38 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 22:59:44.17 ID:HnpIJjD7
- 日本ではGithubが悪者として報道されたばかりだよな
- 40 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 23:01:42.06 ID:NzZz/MZd
- 俺が書いたエ口画像サイトのhtml解析して見やすいようにフォーマットしてローカルのhtmlで表示する10行ツールも相当な価値がある
- 41 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 23:02:50.01 ID:wir5YIfc
- ラムダ式で書くとコードがすごく圧縮されるよね。
昔はそんなの無かったから、死ぬほどループ書いてた気がする・・・ - 42 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 23:06:53.11 ID:yc+GvZq8
- フレームワークやライブラリが優秀ってだけじゃないかな。
- 43 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 23:09:23.76 ID:Ri/877Xz
- そもそも1人の天才がアプリつくるのと、保守まで請け負う前提でつくる企業向けの大規模開発は別物だからな。
コードも書けないSEも大規模開発ではたくさん必要だったりする。
- 45 名前:押しボタン式の匿名希望者 投稿日時:2021/02/02(火) 23:14:28.92 ID:pQRn6Iub
- 台湾のデジタル担当大臣
「例えば、Rakuというプログラミング言語を使いやすくするために、最近私はPugsの実装を行いました。」日本のデジタル担当大臣
「USB?? 知ってますよ、穴にさすやつですよね。」
【IT】天才プログラマー・オードリーさんがたった200行で効果的なアプリを作れる秘訣

コメント