SlideShare a Scribd company logo
YAPC::Tokyo 2019 Keynote
Perl Community への
報恩感謝
2019.01.26(Sat)
tokuhirom
How do you like perl?
Perl 好きな⼈人?

Perl を仕事で使ってる⼈人
Perl が⾃自社のメイン⾔言語だ
よって⼈人
Perl が嫌いな⼈人
Perl と私
• 2005年年 に学校を卒業。

• それまでは Python 等を使っていた

• 当時から numpy が優秀だったので。。

• 2005年年 から Perl を始めた。

• 就職にともない。
Perl を利利⽤用し始めた理理由
• Perl で開発している会社に⼊入ったから

• その会社が Perl だったのは、最初の CTO がエッジ出身だったから
その頃の Perl
• Shibuya.PM がイケイケだった

• livedoor とかがイケイケだった

• Blog とかが流⾏行行っていた頃
その頃⾃自分がやっていたこと
• 着メロ/着うた

• ポイントサイト

• モバイルアフィリエイト

• ブログマーケティングサービス等
やっていたこと
• 1ヶ⽉月ぐらいでプロトタイプ作って、リリースして売りに⾏行行って売れな
かったら潰す、みたいなのをやってた

• → 速く開発したい
速く開発するためのくふう
• すきをみて、とにかく開発を速くするためのライブラリを書く

• 普通にライブラリ使ってると

• もっと⾼高速に実装できるのではないか

• 使いやすいインターフェースにできるんじゃないか

• という疑問が出てくる
短いサイクルで
プロトタイピングすると。。
• リリースしてもすぐに終わるサービス多発

• リリースまですらいかないことも。

• → モチベーション維持のために、新しいチャレンジを1プロダクトにつ
き1個⼊入れたい
そしてそもそも
• なんか既存のライブラリ・ソリューションに対する不不満を、コードで表明
したかった。
実際にどんなことをやったのか
PSGI/Plack
• HTTP::Engine のリプレースプロジェ
クト

• YAPC の⼀一週間ぐらい前から盛り上
がってきた。

• miyagawa san,Yappo san, and me を
中⼼心に始まった。

• miyagawa さんがフライトの間にガン
バッテ実装して、概要を YAPC の
トーク差し替えてプレゼンした。
Amon2
• Web Application Framework

• Fast, Simple, PSGI based.

• Sledge に対するアンチテーゼ
Teng
• nekokak さんが中⼼心となって開発された O/R Mapper

• CDBI/DBIC への不不満から開発がスタートしている

• 開発の初期から参加

• 当時、kamipo さんが⾔言うところの「クソクエリ」が
問題になっていた。

• クソクエリが発⽣生しづらい O/R Mapper を作れない
か、というのがテーマの⼀一つだった
Furl
• 昔の YAPC は東⼯工⼤大で開催されて
いて、芝⽣生でビール飲みながら餃
⼦子⻝⾷食べながら最近の技術的課題を
語っていた。

• 速い HTTP Client の必要性がその
中で話題になった

• YAPC の LT で開発者を募集して翌
⽇日から開発開始した
Text::Xslate
• XS を活⽤用した⾼高速なテンプレートエンジン

• 開発の初期から関わっていた
Perl Hackers ⽂文化
「こういう問題があるね」

「解決しましょう」

→ ライブラリ爆誕
Software IC
CPAN の良い⽂文化
• ちょっとしたものでもアップロードしていい

• 「CPANは幼稚園児の砂場じゃないよね」という話もあるけれど。。
OSS と私
• 「OSS 活動をしたい」というモチベーションで始めたわけではない

• OSS に不不満があるからコントリビュートする

• 最近は github の草をはやしたい、という話もあるけれど。。
コミュニティと私
• コミュニティとは「利利⽤用するもの」であり、かつまた「貢献するもの」

• 気負いすぎてもなァ。

• 貢献とは。。

• コード・発信・ユーザーサポート、などなど
コミュニティを利利⽤用するとは
• 「こういうライブラリないの?」

• 「このライブラリのこういう挙動って仕様なの?」

• ⾃自分ひとりでは書き上げるのが⼤大変なライブラリの開発に仲間を巻き込ん
で⼤大きな仕事をする

• などなど。
コミュニティへの貢献への⼀一例例
ブログを書く
• Qiita でも OK

• Twitter にメモするのでもいいけれど、、

• 検索にひっかかることが重要

• ツイッターやチャットでコミュニティに聞い
たことはブログにまとめる → コミュニティ
への貢献につながる

• イベント参加レポートも⼤大事
初⼼心者をサポートする
• チャットでの質問に答える

• ただし、Perl Hacker のサポートは

• 「こういう正規表現どう書けば良いんですか?」「perldoc perlre」みた
いなのが多い気はするけれど。。
勉勉強会を開催する
• オフラインでのコミュニケーションもやっぱり⼤大事。

• ⼀一度顔合わせたことあるというだけで、Twitter とかでも絡みやすい。
カンファレンスに参加する
• ⽇日本⼈人はカンファレンス真⾯面⽬目に話聞
きすぎ問題

• みんなでディスカッションしましょう。
Issue を上げる
• Issue を上げるのも⽴立派な貢献

• Vote するのも⽴立派な貢献
コードを書く
• Pull-Request を出すのはもちろんのこと

• 新規のライブラリを⽴立ち上げるのも⼤大事
他にも他にも
perldoc.jp の
リニュアール作業
FrePAN
CPAN
Module

Updates
いろいろやった結果
海海外への渡航⽀支援

YAPC::NA
そして今
お前、Perl 書いてないん
じゃないの??
Perl とやりつくした感
• O/R Mapper, Web Application Framework, Template Engine etc.

• だいたい全部の再発明に関わった。
Javaと私
• Perl やりつくした感じがあったのと会社の環境もあって Java へ。。
プログラミング⾔言語と
エンジニアの⽣生活
• Hacker は、プログラミング⾔言語は複数を常時使える状態をキープしてお
くのが当たり前だと思っています( How to become a hacker 世代)

• 会社/社会の環境にあった⾔言語を選択していけば、個⼈人的には何で書いて
もいいんじゃないかなあ、と思っています。
⼀一次の Perl は領域を広げ過ぎたのでは問題
• もともとは Reporting ⽤用途
のためのテキスト処理理⾔言語

• ⼤大きなソフトウェアを書く
には型があったほうが便便利利
な⾯面も
perldoc perlform
Perl のつらみ
• 0, "" が falsy

• wantarray が難しい

• AWS とか Google とかが SDK を出してくれない
とはいえ Perl 便便利利
• 正規表現リテラル便便利利

• s/foo/bar/ 便便利利。。

• $_ 便便利利。。。

• __DATA__ 便便利利。。
use strict;

while (<DATA>) {

chomp;

my @row = split /,/, $_;

print "INSERT INTO foo (id, name) VALUES (@{[ join ',', @row ]});n";

}

__DATA__

1,miyagawa

2,naoya

3,charsbar
Perl は sed や awk より
⾼高機能!!!!!!!!
なので引き続き使っていきます
みんなと⼀一緒に Hack を楽しんできた
Future Perl Community is You!
これからの Perl Community を作るのは、
登壇者の皆さんと
YAPC スタッフの皆さん、
そして、客席のあなたたちです!

More Related Content

Similar to 20190126 yapc tokyo keynote

Faye使って見てる話 at MF Geeks Night 2015.04.21
Faye使って見てる話 at MF Geeks Night 2015.04.21Faye使って見てる話 at MF Geeks Night 2015.04.21
Faye使って見てる話 at MF Geeks Night 2015.04.21
Naoto Koshikawa
 
東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015
鉄次 尾形
 
自社開発をしていなかった会社が Python を選んだ理由
自社開発をしていなかった会社が Python を選んだ理由自社開発をしていなかった会社が Python を選んだ理由
自社開発をしていなかった会社が Python を選んだ理由
Daisuke Komatsu
 
今年やってきた中で書いてきたコード
今年やってきた中で書いてきたコード今年やってきた中で書いてきたコード
今年やってきた中で書いてきたコード
Fumihito Yokoyama
 
The tale of I and python / Python とのはなし
The tale of I and python / Python とのはなしThe tale of I and python / Python とのはなし
The tale of I and python / Python とのはなし
Takanori Suzuki
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話
Naoto Koshikawa
 
北海道の南端で勉強会やります
北海道の南端で勉強会やります北海道の南端で勉強会やります
北海道の南端で勉強会やります
deflis
 
Members innovationlab#1
Members innovationlab#1Members innovationlab#1
Members innovationlab#1
Sosuke Kimura
 
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 20130から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
Tasuku Suenaga
 
英語の資料をITフル活用で乗り切る方法
英語の資料をITフル活用で乗り切る方法英語の資料をITフル活用で乗り切る方法
英語の資料をITフル活用で乗り切る方法Iwasaki Yusuke
 
Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012Takayuki Fukumoto
 
私のPython学習法lt
私のPython学習法lt私のPython学習法lt
私のPython学習法lt
Lina Katayose
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
Yusuke Wada
 
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこるYusuke Yamamoto
 
Hiroshima.rb on github
Hiroshima.rb on githubHiroshima.rb on github
Hiroshima.rb on github
Tomohiko Himura
 
omotesando.rb_20231005.pdf
omotesando.rb_20231005.pdfomotesando.rb_20231005.pdf
omotesando.rb_20231005.pdf
瑛一 西口
 
Tizen developer conference 2013 report 4
Tizen developer conference 2013 report 4Tizen developer conference 2013 report 4
Tizen developer conference 2013 report 4
Takahiro Okada
 
リモートチームとふりかえり改善フレームワーク
リモートチームとふりかえり改善フレームワークリモートチームとふりかえり改善フレームワーク
リモートチームとふりかえり改善フレームワーク
Maehana Tsuyoshi
 
女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77
Yasuko Ohba
 
スクラムマスターはじめのいっぽ
スクラムマスターはじめのいっぽスクラムマスターはじめのいっぽ
スクラムマスターはじめのいっぽTakeba Misa
 

Similar to 20190126 yapc tokyo keynote (20)

Faye使って見てる話 at MF Geeks Night 2015.04.21
Faye使って見てる話 at MF Geeks Night 2015.04.21Faye使って見てる話 at MF Geeks Night 2015.04.21
Faye使って見てる話 at MF Geeks Night 2015.04.21
 
東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015
 
自社開発をしていなかった会社が Python を選んだ理由
自社開発をしていなかった会社が Python を選んだ理由自社開発をしていなかった会社が Python を選んだ理由
自社開発をしていなかった会社が Python を選んだ理由
 
今年やってきた中で書いてきたコード
今年やってきた中で書いてきたコード今年やってきた中で書いてきたコード
今年やってきた中で書いてきたコード
 
The tale of I and python / Python とのはなし
The tale of I and python / Python とのはなしThe tale of I and python / Python とのはなし
The tale of I and python / Python とのはなし
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話
 
北海道の南端で勉強会やります
北海道の南端で勉強会やります北海道の南端で勉強会やります
北海道の南端で勉強会やります
 
Members innovationlab#1
Members innovationlab#1Members innovationlab#1
Members innovationlab#1
 
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 20130から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
 
英語の資料をITフル活用で乗り切る方法
英語の資料をITフル活用で乗り切る方法英語の資料をITフル活用で乗り切る方法
英語の資料をITフル活用で乗り切る方法
 
Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012
 
私のPython学習法lt
私のPython学習法lt私のPython学習法lt
私のPython学習法lt
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる
 
Hiroshima.rb on github
Hiroshima.rb on githubHiroshima.rb on github
Hiroshima.rb on github
 
omotesando.rb_20231005.pdf
omotesando.rb_20231005.pdfomotesando.rb_20231005.pdf
omotesando.rb_20231005.pdf
 
Tizen developer conference 2013 report 4
Tizen developer conference 2013 report 4Tizen developer conference 2013 report 4
Tizen developer conference 2013 report 4
 
リモートチームとふりかえり改善フレームワーク
リモートチームとふりかえり改善フレームワークリモートチームとふりかえり改善フレームワーク
リモートチームとふりかえり改善フレームワーク
 
女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77
 
スクラムマスターはじめのいっぽ
スクラムマスターはじめのいっぽスクラムマスターはじめのいっぽ
スクラムマスターはじめのいっぽ
 

More from Tokuhiro Matsuno

最近のPerlバイナリマネージャー Perl 編
最近のPerlバイナリマネージャー Perl 編最近のPerlバイナリマネージャー Perl 編
最近のPerlバイナリマネージャー Perl 編
Tokuhiro Matsuno
 
Plenv and perl build, and search.cpan.org
Plenv and perl build, and search.cpan.orgPlenv and perl build, and search.cpan.org
Plenv and perl build, and search.cpan.org
Tokuhiro Matsuno
 
MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介  MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介
Tokuhiro Matsuno
 
Yapc fukuoka crust
Yapc fukuoka crustYapc fukuoka crust
Yapc fukuoka crust
Tokuhiro Matsuno
 
Perl6 と web 開発と
Perl6 と web 開発とPerl6 と web 開発と
Perl6 と web 開発と
Tokuhiro Matsuno
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
 
Openjdk 入門してみた話
Openjdk 入門してみた話Openjdk 入門してみた話
Openjdk 入門してみた話
Tokuhiro Matsuno
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
Tokuhiro Matsuno
 
Perl6 web-app
Perl6 web-appPerl6 web-app
Perl6 web-app
Tokuhiro Matsuno
 
Perl6 meets JVM
Perl6 meets JVMPerl6 meets JVM
Perl6 meets JVM
Tokuhiro Matsuno
 
Server::Starter meets Java
Server::Starter meets JavaServer::Starter meets Java
Server::Starter meets JavaTokuhiro Matsuno
 
Java web application testing
Java web application testingJava web application testing
Java web application testing
Tokuhiro Matsuno
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
 
Test::Kantan - Perl and Testing
Test::Kantan - Perl and TestingTest::Kantan - Perl and Testing
Test::Kantan - Perl and Testing
Tokuhiro Matsuno
 
[jjug] Java と Benchmark
[jjug] Java と Benchmark[jjug] Java と Benchmark
[jjug] Java と Benchmark
Tokuhiro Matsuno
 
MySQL のチューニングについて考えてみた
MySQL のチューニングについて考えてみたMySQL のチューニングについて考えてみた
MySQL のチューニングについて考えてみたTokuhiro Matsuno
 
Archer
ArcherArcher

More from Tokuhiro Matsuno (20)

最近のPerlバイナリマネージャー Perl 編
最近のPerlバイナリマネージャー Perl 編最近のPerlバイナリマネージャー Perl 編
最近のPerlバイナリマネージャー Perl 編
 
Plenv and perl build, and search.cpan.org
Plenv and perl build, and search.cpan.orgPlenv and perl build, and search.cpan.org
Plenv and perl build, and search.cpan.org
 
MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介  MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介
 
Yapc fukuoka crust
Yapc fukuoka crustYapc fukuoka crust
Yapc fukuoka crust
 
Perl6 と web 開発と
Perl6 と web 開発とPerl6 と web 開発と
Perl6 と web 開発と
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
 
Openjdk 入門してみた話
Openjdk 入門してみた話Openjdk 入門してみた話
Openjdk 入門してみた話
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
 
Perl6 web-app
Perl6 web-appPerl6 web-app
Perl6 web-app
 
Perl6 meets JVM
Perl6 meets JVMPerl6 meets JVM
Perl6 meets JVM
 
Server::Starter meets Java
Server::Starter meets JavaServer::Starter meets Java
Server::Starter meets Java
 
Java web application testing
Java web application testingJava web application testing
Java web application testing
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
Test::Kantan - Perl and Testing
Test::Kantan - Perl and TestingTest::Kantan - Perl and Testing
Test::Kantan - Perl and Testing
 
[jjug] Java と Benchmark
[jjug] Java と Benchmark[jjug] Java と Benchmark
[jjug] Java と Benchmark
 
Devel::NYTProf::Apache
Devel::NYTProf::ApacheDevel::NYTProf::Apache
Devel::NYTProf::Apache
 
MySQL のチューニングについて考えてみた
MySQL のチューニングについて考えてみたMySQL のチューニングについて考えてみた
MySQL のチューニングについて考えてみた
 
Archer
ArcherArcher
Archer
 
MySQL::NameLocker
MySQL::NameLockerMySQL::NameLocker
MySQL::NameLocker
 
Inside MF
Inside MFInside MF
Inside MF
 

20190126 yapc tokyo keynote