特集

“IT 勉強会スタンプラリー”で行く、全国コミュニティ探訪 第2回

“わんくま同盟”(神奈川・横浜)

(12/09/06)

“IT 勉強会スタンプラリー”“IT 勉強会スタンプラリー”

 “IT 勉強会スタンプラリー”に参加する勉強会を訪ねる本企画。第2回となる今回は、“わんくま同盟 横浜勉強会 #04”に参加した。

MEMO“IT 勉強会スタンプラリー”とは?

 “IT 勉強会スタンプラリー”とは、日本各地で開催されるプログラミングやインターネット技術に関する勉強会に参加してスタンプを集めるイベント。3月31日から開催されており、開催期間は来年の3月31日までの1年間。参加費は無料で、イベントに加盟する勉強会に参加してスタンプの台紙をもらえばだれでも参加できる。

 各コミュニティは北海道から九州に至るさまざまな地域で活動しており、取り扱うジャンルも、プログラミング言語、フレームワーク、データベース、開発技法など、非常に多岐にわたる。自分の知識や能力を伸ばしたい人や、同じ話題を語り合える仲間を探したい人、会社や業界の垣根を超えた人脈を作りたい人にはもってこいのイベントと言えるだろう。

“わんくま同盟”とは?

 “わんくま同盟”は、“縦の繋がりはなく、横の繋がりで”をモットーにするコミュニティ。日本各地でノンジャンルの勉強会を精力的に開催するほか、情報発信をしたいが金銭的な理由で断念している加盟者に対して無償のブログサービスが提供されている。

 特長としては、“わんくま同盟”を主催する中博俊氏や、今回ディレクターを担当したεπιστημη(えぴすてーめー)氏をはじめとして、“Microsoft MVP”の受賞歴が長かったり、開発系の雑誌・書籍の執筆で有名であったりといった“大物”が多いこと。しかし、大学生の参加者も多く、勉強会の雰囲気は決して硬くはない。前回参加した“プログラミング生放送”よりは平均年齢が上で、セッションの内容も少し高度だと感じた。

MEMOわんくま同盟勉強会公認の同人誌『わんくまさん?』

 そのほか、少し変わった活動として公認同人誌「わんくまさん?」の発行が挙げられるだろう。今回はあいにく編集長が勉強会に不参加であったため、詳しい活動内容については聞くことができなかったが、“コミックマーケット”などで頒布されているようなので興味ある人は手にとってみてほしい。

各セッションの紹介

 “わんくま同盟”は基本的に話題のジャンルを限定しない“ノンジャンル”のスタイルをとっているが、ジャンルを絞ることでより掘り下げた発表・議論を行うため、勉強会ごとにテーマを設けることもある。たとえば、今回参加した“わんくま同盟 横浜勉強会 #04”はC++言語の話題にテーマを絞った“C++縛り”となっており、セッションにはC++言語に関する話題が並ぶ。

 また、今回は“重慶茶樓 横浜中華街 本店”で本格中華を楽しむのも大きな目的となっている。これは横浜勉強会限定の趣向で、もともとはMicrosoftの開発カンファレンス“Tech・Ed Japan”に参加したついでに、横浜で中華料理を楽しもうという目的で始められたものだという。

 なお、今回行われたセッションは難易度“Lv1.3くまー”から“Lv3くまー”までの3つ。“くまー”は“わんくま同盟”の勉強会で難易度を表すために用いられている独自単位で、目安は以下のとおりとなっている。今回は“C++縛り”ということもあり比較的難易度が高くなっているようだ(表は公式サイトより引用)。

レベル内容
1テーマに対しての基礎知識もない方向け、これから取り組んでみる方向け
2テーマに関連する基礎知識は持ち合わせている方(ASP開発に対するHTMLやJSなどをある程度知っている)
3テーマをある程度知っていて、さらにより知りたい方(実践中など)
4テーマをさらに仲間に伝達している。再セッションできるような方。
5組み合わせる基礎技術などに対してすべてにおいて精通している方。

「Iterator, そして Range」

krustf(@krustf)氏krustf(@krustf)氏

「Iterator, そして Range」「Iterator, そして Range」

 C++言語の最新規格“C++11”で採用された“Iterator”や“Range”といった機能を紹介するセッション。もともとはnyaocat(@nyaocat)氏がセッションを担当するはずだったが、体調不良のため欠席。当日の参加者のうち“たまたま目についた”という理由で急遽krustf(@krustf)氏が選ばれ、代わりを務めることになった。

 途中、オートコレクト機能でスライドの予約語や関数名の最初が大文字になってしまっているのをいちいち『ここは小文字』と指摘したり(C++言語は大文字・小文字を区別する)、スライドの意図そのものがつかめなかったりと苦戦しながらも、最後までセッションを完遂してくれた。

 余った時間で行われた書籍『Effective C++』の紹介が好評で、『はじめからそっちのセッションをしたほうがよかったのではないか』という声も多く聞かれた。

 なお、krustf氏は“闇鍋プログラミング勉強会”を主催しており、参加者を募集中であるとのこと。詳しくは下記リンクを参照してほしい。

「libdcompile」

Fadis(@fadis_)氏Fadis(@fadis_)氏

「libdcompile」「libdcompile」

 C++言語はさまざまなプログラミング思想・技法を取り入れた“マルチパラダイム言語”であり、基本的にあらゆることがC++言語のみで行える。しかし、ほかのプログラミング言語にできてC++言語にできないことがある。――それが“eval”だ。

 というわけで、その弱点を補うために開発された自作ライブラリ“libdcompile”をFadis(@fadis_)氏が紹介してくれた。

 “eval”とは文字列で与えられたコードを実行する機能で、動的言語(スクリプト言語)の多くで利用可能。C++と同じ静的言語のなかではC#やHaskellといった言語が“eval”に似たことができるが、これはライブラリにコンパイラが含まれており、文字列を逐次コンパイルすることで実現しているという。

 そこで、その手法をC++で実現したのが“libdcompile”だ。“libdcompile”は、中間コードを実行する「LLVM」と、C++のコードを中間コードへ変換する「LLVM」のフロントエンド「clang」を利用して、文字列をその場でコンパイルして実行する。開発には「LLVM」と「clang」を熟知している必要があり、その解説が興味深かった。

 “libdcompile”を解説するスライドは“SlideShare”で公開されているので、興味のある開発者はみてみてほしい。

「C++11はビギナにやさしい(か?)」

επιστημη(@epitwit)氏επιστημη(@epitwit)氏

「C++11はビギナにやさしい(か?)」「C++11はビギナにやさしい(か?)」

 最後は、επιστημη(@epitwit)氏が“C++11”で追加された新機能(言語およびライブラリ)のうち、初心者にとっても便利で役に立つものピックアップしてわかりやすく解説してくれた。

 たとえば、右辺の型を推論して型宣言の手間を省く“auto”、リストの要素を列挙・処理できる“range-based for”、非同期処理を簡潔に記述できる“future/async”などは、C++言語を学び始めた開発者でもすぐに役立てられるだろう。

 氏のブログではセッションのフォローアップも行われているので、そちらも参照してほしい。

懇親会

 セッションのあとは、メインイベントでもある懇親会。通常はセッション会場から場所を移して参加希望者のみで行われるが、今回はその場で中華料理が出された。

 頼まれた辛子を『袋のまま渡すか』『小皿に中身を出してから渡すか』といった些細な意見の相違からから、開発要件をどのように伝えるべきかという話題に発展するところなどは、IT勉強会の懇親会ならではといったところだろう。

今後の勉強会の予定

 “わんくま同盟”の勉強会は毎週のように開かれている。直近ではWindows 8のWindowsストアアプリ開発を支援するセミナーイベント“Windows 8 Developer Camp”の“わんくま編”が大阪(9/6)・名古屋(9/12)・福岡(9/13)で行われる。

 そのあと、9月22日に名古屋で一般勉強会が開かれる。TECH-BEE氏の「オンラインソフトとわたし」(Lv1くまー)などを始めとするセッションが予定されているので、興味のあるひとは参加を検討してみてはいかがだろうか。

 なお、次回は9月29日に福井県福井市で行われる“Hokuriku.NET”のレポートをお届けする予定だ。

(柳 英俊)