メニュー

技術ブログ

Denso IT Lab.社員による技術情報の紹介

Denso IT Laboratory researcher's blog sites

数式

RSS

ページトップへ

foldrを速くしたい〜Swift2シンポジウム

先日,Swift 2シンポジウム #2で発表しました.渋谷のdotsで行なわれました.渋谷のdotsは,オシャレな感じのシェアオフィス・ワーキングスペースで,とにかく渋谷駅徒歩3分という立地条件の良さが最高です.

自分の発表

今回の私の発表は,
「reverseが遅すぎるでござるが,解決したでござる.」
「無理にValue type programmingしたらiOSのコードが破綻したでござる.」
の2本でした.
かなり議論できたので非常に有益でした.

reverseが遅い件
これは,CollectionTypeにもいろいろ型があって,高速にreverseした配列を返せるものと,返せないものがあるということに起因するようだ.
Swiftのヘッダから読み取れるReverseRandomAccessCollectionなどの型を精査する必要があるが,イマイチ,こういう実装になったのか,extension以外の方法でreverseを使ったコードを高速化する方法がわからなかった.
今後,もう少し,精査する必要がある・・・という結論で議論は終わったように思う.

Value type programming
お便りいただきました.
ペンネームsonsonさんから,
「Value type programmingでiOSアプリを作ると,いろいろ面倒くさくなって,くじけそうです・・・,みなさん,どうすればいいでしょうか」
というお悩みです.
答え.
「Reactiveか,KVSか,Fluxか,あきらめて自分で値更新コードを書くか,Reference type programmingに戻りなさい.」
うん,やっぱりそうなのか.うん・・・・そうだよね・・・.

他の方の発表と議論

やっぱり例外
やはり熱いのが例外.前回同様議論白熱.
AppleがEitherで実装したResult型を標準ライブラリで実装してくれれば・・・この議論は終わると思うのですが・・・.
議論にも出ていたtry-catchを使うと戻り値の型が失われるという深刻な問題もあるし,結局,非同期のときにtry-catchは使えないもんね・・・・・.
Swiftの例外はどこに向かっていくのだろう・・・・.

やっぱりいいよね,議論スタイル

このシンポジウムのいいところは,やはり議論が活発であるところに尽きる.
割と悩みをダイレクトに発表あるいは,Twitterで質問するだけでも価値があると思われる.
今後は,Playgroundを使ってライブコーディングして,議論するようなスタイルを取り入れていくと,Swiftらしいし,議論ももっと盛り上がると思う.
Swiftの枠を外して,シンポジウムを組み立ててもいいように感じる.

謝辞

企画してくださった岸川さんには感謝.非常によいイベントだっと思います.
ここでお礼を申し上げたい.

今後も,このようなシンポジウムが開催されるときは,盛り上げる側で是非参加していきたいと思う.

参考リンク
つぶやきまとめ
私がシンポジウム中に書いたコードの殴り書き
reverseの高速化・foldrのリポジトリ



このエントリーをはてなブックマークに追加