YAPC::Tokyoの感想

YAPC::Tokyoに参加しました

2019/01/26の某日、YAPC::Tokyo 2019に参加しました。

私は1/28に修論提出締切であるにも関わらず、わざわざ東京に行って参加しました。
理由はただ1つ、学生支援として、学生チケットと交通費宿泊費が無料だったからです。
(正確には、交通費宿泊費は抽選だったのですが、見事当選しました)

そこで得た知見、並びに感想を書いておきます(無料になる条件でもあったりする)。

なお、発表内容などについては、皆さん書かれていらっしゃるので、ここでは詳しく述べません。
「yapc tokyo 感想」などで期間指定検索すればたくさん出てくると思います(期間指定しないと過去のYAPC::Tokyoの感想が出てきます)。

全体的な感想

カンファレンスでした。

勝手なイメージですが、私はどちらかというと、東京モーターショーのような、ブース多めのイベントを想像していました。
しかし、実際には講演(いわゆるプレゼン)が主軸のカンファレンスなんだな、という雰囲気でした。

もちろん、ブースがないわけではなく、幾つか出し物がありました。
余談ですが、DRECOMさんのブースでプランニングポーカーのカードを頂きました。
昨年、アジャイルな見積りと計画づくりを読んだばっかりなので、欲しいなぁと思っていたものが手に入って嬉しいです。
大学院を卒業しなければ使えるところも多かっただろうに……

しかもYAPC終盤で、修論内容に問題が発見されたため、急遽戻ることになってしまい、私の心理的矛先はYAPCから修論の修正方法に移ってしまいました。
それさえなければもっと楽しめただろうに……
結局最後の懇親会も途中で抜出す羽目になってしまったのは残念です。

なんかYAPCの感想ではなくなってしまったかもしれません。
でも、私が感じた通りです。

講演内容について

私が見てきた講演の感想をつらつら書いておきます。

YAPCスポンサー様とのランチ

いきなり講演とは違いますね……

学生支援として交通費宿泊費を無料にする条件の1つに、YAPCスポンサー様とのランチがありまして、そこに参加しました。

そこで、YAPCスポンサー様のプレゼンがありました。
いくつかの企業は、完全に就活向けのプレゼンをされていて、世の就活ってこんなところにまであるんだなぁと思いました。
既に就活を終えているからこそ出てきた余裕だったかもしれませんね。

1つ面白いなと思ったのは、こだまリサーチ株式会社さんです。
北海道に本社を構えており、従業員5名ほどで開発しているそうです。
事業内容は、大学の授業で利用する動画に翻訳字幕を付けるシステムの販売だそうで、既に北海道大学をはじめ、5大学と連携しているそうです。
YAPCのスポンサーをしているのは、学生に還元するためと話しており、また様々な大学に行けば、そこで美味しいものが食べられるので嬉しいと語っており、面白い人だなぁという印象を受けました。
また事業内容についても、自動翻訳だから機械学習なのかな、Perlで作ってるとしたら、機械学習ってどうやってやったんだろうか、など興味が出てきました。

Perl5の静的解析入門 機械と人間双方の歩み寄りによる平和編

こちら、mackeeさんの講演です。

研究内容の1つに構文解析があるため、構文解析および静的解析には興味があり、Perlの静的解析はどういう手法があるのかと気になっていました。

構文解析に使えるモジュールは、以下の通りです。

  • PPI
  • Compiler::Lexer
  • Perl::Lexer
  • PPR

PPIは、Pure Perl(Perlのみで実装しているモジュール)ですが、遅いという欠点があります。
Compiler::Lexerは、言語で実装していますが、ところどころ構文解析できないようです。
Perl::Lexerは、Perlの実行で利用する機能を利用しているそうです。
PPRは、Perlのコードの正規表現を生成してくれるそうです。
現在はPPRを使うのがいい、とのことでした。

構文解析は手段ですから、目的として何がしたいのかを考えると、既に実装済みのモジュールがいくつか存在します。
例えば、引数の型定義を全サブルーチンで判定しているかチェックしたいのであれば、Perl::CriticやPerl::Lintを使えばいいです。
他にも、目的のものがあるかどうか、CPANを探してみると見つかるかもしれません。

訂正: mackeeさんより、Perl::CriticやPerl::Lintに上記の仕組みは無いとのことでした。

また、どんな構文でも書けてしまうPerlですが、時には静的解析の妨げとなってしまいます。
例えば動的なサブルーチンの生成をしてしまうと、構文解析だけでは簡単にできません。
そのため、プログラマは構文解析を見据えたプログラムの記述が必要です。
これについて、私も同感です。
もっと静的解析者に優しいコードを書いてください。

レガシーPerlビルド 〜現代に蘇るPerl[1..5].0とPerl6〜

こちら、八雲アナグラさんの講演です。

そもそも私はPerl5以外に興味が全くなかったうえに、そもそも現代で動かせるとは考えてもいなかったため、Perl1を動かそうと思った行動力には感銘を受けました。
同時に、バージョンが古いほうが動かしやすいという話には非常に興味を持ちました。
発表内容だけでなく、発表方法も面白く、聞かせる講演だなぁと思って聞いていました。

Lightning Talks

5分おきに発表者が変わり、5分で内容を語りつくすというものでした。
スピードが速く、如何にスムーズに語りつくせるかを見ていました。

npmという次世代CPANパッケージマネージャー

こちら、aerealさんのLTです。

発想が面白いし、5分の中でプログラムを実行して成功してみせるその精神と結果も、聞いていて楽しめました。
なるほど、npmはNode.jsだけのものだと勝手に思って敬遠していましたが、これは触ってみる価値がありそうです。

自走するプログラミング入門者の探し方

こちら、門松宏明 / note103さんのLTです。

自走するプログラミング入門者、という名前はすごく分かりやすく、確かに私もそのような時期があったなぁと考えさせられました。
モチベーションというものは、理解できるかどうかで大きくかわると思っているため、理解できるように教えていかないと伸ばすことは難しいのかなというのが個人的感想です。

Perl meets AWS Lambda

こちら、moznionさんのLTです。

無ければ作ればいい、という発想はよくありますが、実際に作るとなると話は別で、よく作られたなと思いました。
Lambdaに限らず、多くのプラットフォームでPerlは未対応だったりするため、こういう動きがもっと増えてほしいです。

そして話し方がうまいです。
あれだけ語れるような情熱を持ちたいものです。

Keynote: 松野 徳大

こちら、松野 徳大さんの講演です。

YAPCは楽しかったというお話と、これまでの振返りでした。

個人的に気になったのは、「How to become a hacker世代」という言葉でした。

皆さんご存知ですか?
多分ですが、私がプログラミングを行うきっかけとなり、またPerlを勉強しようと思ったきっかけのサイトがここだと思うのです。
今までいろいろな方に「なぜPerl?」と聞かれて、「ハッカーになるためにはPerlを勉強しろって書いてるサイトを見たから」と答えていたのですが、私もすっかり忘れてしまい、どこのサイトだったかとんと見当がつかず、次第に忘れていました。
タイトルを聞いて「もしや」と思ったのですが、調べてみたら見たことあるようなサイトでしたので、懐かしさを感じました。
ここまで有名なサイトであれば、タイトルを覚えておきたいですね。

もう1つ、YAPCに参加した旨をサイトやツイッターで情報発信してほしい、ということでした。

なるほど確かに、発表者にとっては話題に上げてもらえるのは嬉しいことですし、それによって次回のYAPCとつなげるきっかけにもなります。
なにより、知らない人がYAPC楽しそうだと思わせることで、参加者を増やし盛り上げるのは大事なことです。

この記事は、確かに学生支援の交通費宿泊費無料の条件のために書いているかもしれませんが、松野さんの言葉を聞いていたことを考えてみると、もしかしたら条件が無くても書いていたかもしれません。
それは神のみぞ知ることでしょう。

まとめ

学生最後に参加してみよう、と思って参加したものですが、楽しめた部分と、もう少し準備しておけばよかったなと反省する部分がありました。
次回、参加することがあれば、受動的な参加ではなく、能動的な参加をしたいと思います。
YAPC::Tokyo、お疲れさまでした。