builderscon 2017 - day 1 メモ - valid,invalid に続いて2日目のメモ。まとめや感想はあとで。
※ 内容については間違っている可能性あり。
小さく育てるコンパイラ
- コンパイラは実装量が多い
- まずは既存言語のサブセット->自分が欲しい機能を足す->オレオレ構文に置き換えていく
- なぜ構文が最後?どういう構文が良いかは動かさないとわからない。まずは動くものを作るのが大事
- 既存言語は既に動いているので実装は絶対にできる。パーサの実装をまずは流用できる
- MinCamlベース(小さい実装なので参考にしやすい)でLLVM
- 今回欲しかった多相型
- どんな方に置き換えてもよいプレースホルダな型を扱えるシステム
OSSの引き継ぎ方
- Rubyの状況:2013年頃に初期の開発者がRustとかGoに行ったりしてしまった
- 利用者としてできること contribute, fork, re-implementation, take over
- 引き継ぎの始まり
- イシュー/Email/DMで「引き継ぎたいんですけど」と言うと結構引き継がせてくれる。twitterはダメ
- READMEで募集してるのもよく見る
- 作者じゃないのに pull request にコメントしまくったりすると「お前やれよ」となったりする
- rake
- Jimが他界してしまって放置されることになった
- これもhsbtさんが引き継いだ
- まずhoeからbundlerへ。標準ボイラープレートを使って、テストや開発が簡単にできるようになっていれば参入障壁が下がる
- 1.9のサポートを切ったらbreaking changeで色々なライブラリやツールから苦情が…
- migration path をちゃんと用意すればよかった。うざいぐらいwarningだしたりとか
- psych
- 「リリースすること」がとても大事
- リリース権も一緒に渡したほうがよい
- rubygems/rubygems(rubygems.orgではない)
- 2015年にPMがいない状態でどうやっていくのか不明瞭になった
- RubyTogetherという組織が引き継ぐことになった
- その組織のbundlerチームが入って元々のコミッターが全員リムーブされた
- ruby本体の変更を取り込んでもらうのが超大変
Factory Class
- もともとはプログラマ
- キーボードを作るのにそんな大変じゃないだろうと思っていた、一ヶ月ぐらいとか
- 最初のプロトタイプに興味を持ってくれた人がいてkickstarterで300$ 50個売ろうと考えた
- 2000個作ることになっていきなり大変になった
- いろんな工場を回った、台湾、中国、日本(高かった)
- 結果、Shenzhenで良い会社を見つけたのだがチームの営業員がやめてしまった
- その会社の連絡がぜんぜんこなくなり、9ヶ月たって辞めた営業からキャンセルになったと連絡
- その1ヶ月後に有名な企業から新しいキーボードが出た…何か裏側であったのかも
- 反省としては、その工場からすると自分たちは最小顧客だったということ
- 中国の起業とやりとりするときは非常に対面やマナーが大事
質問
- 工場選定以外でプログラミングやデザインの問題はなかったか?
- プログラミングは自分の領域なのであまり辛いことはなかったし、いろいろ助けてくれる人もいた
- デザインについては外の人に頼んだりして結構うまくやってくれた
- テストについて
- 落下テスト、電気系統のテスト
The Evolution of PHP at Slack HQ
- HHVM + Hack
- SlackのDAUは半分が北米、次いでUK, JPの順
- 急成長の中で大きいチームでも使えるようにする苦労
- Jan 2017 Enterprise Grid リリースで大チームにも対応
- 少チームでも大人数チームでも同じ体験をしてもらう必要がある
- PHPを使っていると驚かれるが、世の中のスタートアップが使ってきたものである
- Slack のリードプログラマはfacebook出身でHHVMのエキスパートでもある
- PHPは…正直ダメな子です
- 2015年、SlackはOOPしてなかった…
- 大きいチームで使われることになってパフォーマンスの問題が出てきたときの答えがHHVM
- zend -> HHVM
- 後方互換姓もある
- hack
- Route53によるカナリアリリースでパフォーマンス改善を確認できた
- あるときHHVMのバグがあって大顧客のPixarに迷惑をかけたことがあった
- パッチをあてられるような勉強も必要
- レスポンスタイムが半分ぐらいに