mixed 型なんてけしからんと社内チャットでつぶやいたら炎上した / phpkansai 2018 LT mixed typehint dis

mixed 型なんてけしからんと社内チャットでつぶやいたら炎上した / phpkansai 2018 LT mixed typehint dis

https://wiki.php.net/rfc/mixed-typehint を見かけて、もし mixed 型が言語仕様として入ったら、折角 PHP7 になってより型安全になった PHP にカオスが再来すると危惧する気持ちを社内チャットに投げたら、同じく否定派だけでなく、案外肯定的な反響もあった話。

73560128b23de542e47a318145bc781a?s=128

Yu Kawanami

July 14, 2018
Tweet

Transcript

  1. mixed 型なんてけしからんと 社内チャットでつぶやいたら 炎上した @kawanamiyuu PHP カンファレンス関西 2018 LT

  2. 自己紹介 • かわなみゆう • @kawanamiyuu • 株式会社ラクス • 業務では Swift

    とか Java • Swift は PHP っぽくて好き • 社内チャットに PHP のニュースをつぶやく係 2
  3. ある日 3

  4. 4 https://twitter.com/PHPRFCBot/status/942954599748583424

  5. 5 https://wiki.php.net/rfc/mixed-typehint

  6. 6

  7. 7

  8. けしからん! 8

  9. けしからん! ※ この発言は個人の見解であり、所属する組織の公式見解ではあ(ry 9

  10. RFC の主張 • PHP 7 以降、スカラー型をはじめとして、ほとんどの引 数や戻り値にちゃんと型を指定できるようになった • でも、mixed 型がないから、完全に

    typehint された一 貫性のあるコードになっていない 10
  11. • 静的解析が簡単になる • これまでの暗黙的な(typehint がない) mixed 型のエイ リアスでもある 11

  12. なぜ、けしからんと思ったか • 結局なにも型を指定しないのと一緒じゃん • PHP 7 になってスカラー型とか入って、型に対してより 安全(安心)になったのに、流れに逆行しているのでは • 型を指定したいなら、ちゃんと1つに決めたい(設計した

    い) 12
  13. • あいまいじゃない世界に憧れていたぺちぱー(私感)が 結局、mixed でツラみを増す未来しかみえない • 一度言語仕様に入ってしまえば、そう簡単には消せな い 13

  14. そのようなことを社内チャットで つぶやいたところ 14

  15. 普段しずかめな PHP チャットルームが 炎上 15

  16. 肯定的な意見も一定数あった • mixed を推奨したいわけではない • 「mixed やから気を付けてや」っていうのを明示できる • 明示的に「mixed でっせ」

    と表明されていると、読み手 の安心感が全然違うのでは 16
  17. • 型を指定するハードルが下がってよい • レガシーコードをリファクタリングするとき、どうしても 1 つの型に絞れないとき mixed とマーキングすれば、検 討済みである目印として使えそう 17

  18. なるほど、なにか熱いものを感じる 18

  19. まとめ • mixed 型けしからん • 型をちゃんと書きたい(書こう!) • レガシーとも向き合う必要がある • mixed

    型の話題 1 つとってもいろいろな意見がある • みんな実は PHP 好きなんじゃん 19
  20. WE ARE HIRING ! 一緒に PHP に熱くなりませんか? www.facebook.com/rakus.career