「勉強会に行ってみた!」第5回「Perl Beginners #14」
event

「勉強会に行ってみた!」第5回
「Perl Beginners #14」

2014.08.14

ent51_img01.jpg

このところよく開かれるIT勉強会。スキルアップのためには行った方がいいのかなと思いつつも、どんな雰囲気なのか分からなくて二の足を踏んでいるという人はいませんか? この記事は、実際に勉強会にお邪魔して「こんな雰囲気でしたよ!」と紹介するのが目的です。こんな感じなら行ってみようかな、みたいに思ってもらえたらうれしいです。(三土たつお

ent51_img02.jpg

今回は、東京・原宿で開かれた「Perl Beginners #14」にお邪魔しました。Perl初心者から中級者をターゲットにした勉強会なのだそうです。

勉強会の開始は木曜日の19時から。今回の会場は原宿にある渋谷区民会館です。

いい佇まいでしょう?正直なところ、IT勉強会の会場が公民館というのが初めてで、このしぶさにやられてしまいました。ラフォーレ原宿のすぐ近くにこんな場所があるなんて!

ent51_img03.jpg

集会場の予定表が書いてあったりしてどうにも公民館なわけですが、Perl Beginners #14 は間違いなくここで行われていました。

ent51_img04.jpg

なんかちょっと教室みたいですよね。今日のテーマは「関数とコードブロック」ということで、まずは主催者のあずま(@ytnobody)さんによる基調講演が始まりました。

ent51_img05.jpg

今日は半分くらいの人が初参加のようです。あずまさんは「分からない点はすぐに質問してくださいね」とお願いをしていました。場の流れを断ち切ってまで質問するのは気後れしがちですけど、初心者を対象にした勉強会だから気にせず確認してください、という意図を感じました。

話の内容は「マルチプロセス」でした。Time::Piece という時間を扱うモジュールが便利だよ、とか、マルチプロセスを扱うなら Proc::Simple が個人的に好き、というようなことを話していました。

ent51_img06.jpg

基調講演の後は「ビギナーズセッション」。ようするに質問コーナーです。参加者から参加者に対して、あるいは登壇者に対して、とにかく何でもいいから質問をしましょうという時間。ユニークですよね。こういうことをやりたいんだけどうまく動かないとか、今までの話で分からないところでも何でもいいですよ、と司会の xtetsuji(てつじ)さんが水を向けるんですが、みなさんシャイなのかなかなか手があがりません。

ent51_img07.jpg

でもその気持ち分かります!質問って実は難しいんですよね。とんちんかんなことを聞いても恥ずかしいし・・。そのうち会場から「マルチプロセスでのCPUの使われ方はどんなふうですか?」という質問があがり、「複数作られたプロセスがCPUコアごとに割り振られるので、処理速度を優先するならコア数に応じてマルチプロセスにしちゃえばいいと思います。」といった回答がありました。今回は各参加者の秘蔵の質問のようなものは特になく、直前のあずまさんの話に関連する質問が多かったようです。

ent51_img08.jpg

その後は、別の方によるPerlの英語ドキュメントとの付き合い方のトークがあり、再びあずまさんによる「サブルーチンの つくりかた・つかいかた いろいろ」という話がはじまりました。いよいよ今日のテーマの本題に入ってきた感じです。

サブルーチンとは「一連の煩雑な手順をまとめたもの」であるとして、インスタントラーメンを作る話を例に説明していました。インスタントラーメンを作る、というと簡単そうですが、手順を書き出してみると、フィルムをはがしてフタを開けて、粉末スープとかやくを取り出して麺の上に振りかけて、お湯を沸かして注いで3分待ってフタを開ける、みたいに結構煩雑な手順になります。それを「インスタントラーメンを作る」という一言で簡単に呼び出せるようにしたのがサブルーチンである、という感じでしょうか。

ラーメンをつくることができたら、こんどはカレーも餃子も作りたい。そしてそれを「料理する」というサブルーチンにまとめて、場合によってカレーだったりラーメンだったりを作り分けられるようにしたい。そういう場合にどうするかといったような話をしていました。

ent51_img09.jpg

まとめでは、「ラーメンを作る」という名前のサブルーチンなのによく見るとチャーハンも作っているというのはダメということを言っていて、確かにやりがちだなあと身につまされました。

ent51_img10.jpg

続いては @__papix__(パピックス)さんによる「Botを作っていたらいつの間にかいろいろなサブルーチンのテクを使っていた件について」という話。もっとも資料を作っているうちに、そこまでいろいろなテクを使ってないなということに気づいたそうで、最終的なタイトルは「Botを作っていた件について」に変更されていました。

Botっていうのは複数人で会話するシステムに参加して会話っぽいことをするプログラムのことですね。人間だったら「ひさしぶりー、元気?」に対して「まあね」とか返したりするわけですが、Botはプログラムなので「ping」に対して「pong」と返す、みたいな渋い会話ができます。それで「pongと返す」のところはまさにサブルーチンそのもので、サブルーチンのリファレンスを使うとうまく表現できる、といったような内容でした。

最後のセッションは songmu(ソンムー)さんによる「PerlによるDSLの作り方」。なんとこの資料、会場に来てから時間内に書いたんだそうです。そんな話、はじめて聞きました。すごい・・!

ent51_img11.jpg

ところでこれを書いている私は別の媒体でも同じ名前で記事を書いてたりするんですが、songmuさんはその某媒体のライターごとの記事一覧が見られるウェブサービスを作っていて、私もよくお世話になっているのでした。こんなところでお会いできるとは! とはいえ、まあ閑話休題。

DSLとは特定用途向けの独自言語である、ということで例えばXMLとかSQLとかもそうだし、Ruby の文法をそのままつかった Chef のレシピとかもそうだよね、というところから話が始まりました。Perl は関数呼び出しのパーレン(括弧)が省略できるので、関数がキーワードみたいに見えて、Perlそのままの文法でもDSLっぽく書くことができるとのこと。

ent51_img12.jpg

たとえばこれは songmu さん作の CPAN モジュール(Perlのための部品群)ですが、データベースへのテーブル定義をDSLのように書くことができます。ここに見えてる integer とか belongs_to とかはそれぞれ関数で、その右側の 'id' とか 'author' が引数なわけですが、関数呼び出しの括弧がないことによってキーワードによる宣言っぽく見えます。

で、こういうDSLをPerlで提供する場合のテクニックなんかを紹介していました。なおsongmu さんはCPANにたくさんのモジュールを上げていて、その数は日本人として6位なんだそうです。まじですごい。

そんな感じで勉強会は終了し、渋谷駅近くの居酒屋で任意参加の懇親会が開かれました。

ent51_img13.jpg

暗い場所だったのでやたら陰影のある写真になっちゃいましたが、雰囲気は和やかな感じでした。Perl の話だけに限らず、いかにも飲み屋で知り合い同士が話すような話も多く、初対面の人を含めて懇親を深めていました。

せっかくなので、参加した方に感想を聞いてみました。2回目の参加となる高橋さんは普段はVB.NET を書いているそうです。今回はちょっとレベルが高いと感じたけど、後になって「こういうことだったんだ!」と理解できたときに成長が実感できるのが嬉しいので、仮にいま分からなくてもなるべく聞いておきたいとのことでした。

登壇者でもあった songmu さんに Perl の好きなところを聞いてみたところ、「神が作ったものを頂くんじゃなくて、みんなで少しずつ部品を作って組み合わせていくところが好き。モジュールをバージョンアップするときも、他での組み合わせを壊さないように後方互換を守る文化がある。」とのこと。確かに、言語によって後方互換を大事にする、しないという文化の差はありますよね。

ent51_img14.jpg

最後に主催のあずまさんに伺いました。

??この勉強会を始めたきっかけはなんでしょうか?

「当時、いわゆる勉強会はそれなりにあったんですが、初心者が分からないことを何でも質問出来る場っていうのはなかったんです。だからそういう場を作りたいと思いました」

??勉強会を運営するにあたって気をつけていることはありますか?

「1つは、場所を毎回変えるってことですね。今回は原宿でしたけど、毎回山手線内の会場を転々としているんです。」

そのほうがいろんな人に参加してもらえるし、場所によって参加者も雰囲気も変わってくるんだそうです。そういう場所を借りるにはたいてい会場費がかかるけど、それらは「全部自腹で払っています」とのこと。

「参加者の立場になると、タダのほうがいいじゃないですか。企業にスポンサーになってもらうやりかたもありますが、そういうのを敬遠する参加者もいます。そういう色がついてない勉強会があってもいいと思うんです。」

とのこと。確かにそりゃそうで、参加者としてはありがたいに決まってるんですが、とにかく太っ腹だなと思います。場所が毎回変わるっていうのもユニークで、いろんな会場の雰囲気を見てみたいなと思いました。質問がよく出る会場、なんてのもあるそうですよ。

今回参加した勉強会:
Perl Beginners #14
https://atnd.org/events/51971

三土たつお。1976年生まれ。プログラマー、ライター。プログラマーとしてはふだんPHPを書いてます。
ライターとしてはニフティのデイリーポータルZとかで書いてます。
http://mitsuchi.net/

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW