YAPC::Asia 2014 スペシャルレポート

YAPC:: Asia 2014 1日目レポート[更新終了]

この記事を読むのに必要な時間:およそ 14 分

Daisuke Makiさん「Go For Perl Mongers」

YAPC::Asiaを引き継ぎ会長となった牧さん(@lestrrat)のセッションでは,Perl(を含むLL)利用者がGoを利用するときにハマるポイントを自分自身の体験を元に紹介しました。

GoはLLっぽいノリで書けるCのようであると述べ,オブジェクト指向やTry/Catchに対する考え方のシフト,goroutineやchannelといった並行処理を行う上でのTipsについて紹介しました。⁠LLのノリ」「Goのカルチャーに合わせたノリ」にマインドシフトしなければ,半年・一年後には「Go使えない」となってしまうことを懸念したことが今回の発表のモチベーションとなっていたようです。

例えば「オブジェクト」での再利用ではなくAPI単位の細かいレベルでのコードの再利用を考えることや,goroutineはPOSIXのスレッドではないためSIGNALではなくchannelによって制御しなければならないこと,exceptionのノリでpanic()を使わないことなど,Goを使う上でLLとの違いを分かりやすく説明しました。

最後は「When in Go, Do as gophers Do(Goに入りては,Goに従え)⁠という言葉で締めくくりました。

画像

画像

Dan Kogaiさん「Introducing Swift - and the Sunset of Our Culture?」

@dankogaiさんはAppleが6月に発表した新言語Swiftについての話題を中心に,オープンソースやPerl文化などについて発表しました。

最初に会場の参加者にSwiftの認知度について尋ねたところ,聞いたことがあるという人はほぼ全員でしたが,使ったことがある人はほとんどいないという状況でした。

まずはSwiftの言語仕様を紹介しました。おなじみのHello Worldからです。Java・C++に代表されるコンパイル型言語ではmainのようなエントリポイントがあるのが一般的ですがSwiftはPerlなどと同様にprintln("Hello World!")だけで出力することができます。

その後はプログラマおなじみのFizzBuzzコードをブラッシュアップしていきながら,fizzbuzz[n]のようにメソッドを添え字で呼べるsubscriptや無限リストを実現できるgenerator,operatorの再定義など,Swiftの機能が紹介していきました。operatorの再定義について,最近はできない言語が多いのでお気に入りの機能だそうです。すごい新しい言語というよりは変なところなはいという印象で,参照カウントなど内部処理も似ているところがありこれはPerl6が目指した形ではないかと思ったそうです。簡単に書けて速くて静的型+型推論がある言語として気持ちいい言語だと述べていました。

続いて,プログラミング言語の潮流についての考察を発表しました。近年はPerlやRubyのようにコミュニティベースでボトムアップ的に育ってきた言語よりも,JavaやJavaScriptなど企業が提供するトップダウン的な言語が伸びているとし,Swiftの可能性についても強調していました。現状Apple製品用の言語ということになっていますが,言語にAppple固有の機能はないため,いずれオープンソースにするのではないかと予測しているそうです。今はオープンではないため互換性のない変更を2週間で実施できる点など,あえてすぐにオープンにしないことの利点についても述べていました。

最後に,Perlが選択されなくなってきているのは認めざるを得ないが,今すぐなくなることはないし,言語は一つではないのでPerlマインドをシェアしつつ,それをシフトしていけるようにしておくことが大事だと締めくくりました。

画像

画像

Yusuke Yanbeさん「最近のウェブサービスの検索機能やその先の話」

はてなブックマーク開発チームに所属しているYusuke Yanbe(id:yanbe)さんは,はてなブックマークなど,はてなのWebサービスの検索機能の裏側で最近利用しているElasticSearchによる実装と今後の展開について発表しました。

はじめに,はてなブックマークに最近ついた検索機能とPressoについての紹介があり,その後,はてなブックマークの検索機能が,古き良きSQL LIKEから,Senna,Sedue,Solr,ElasticSearchに変わっていく流れをその時の状況を交えて説明しました。

ElasticSearchの良いところは,1)文書をフィールド毎に全文検索できるだけでなく,構造,文書間の親子関係も持てること,2)Search::Elasticsearchという,PerlのライブラリをElasticSearch, Inc.が公式にメンテナンスしており,すべての機能が利用できること,3)メンテナが気をつけてるらしく変な思想がないこと,4)拡張性が高いこと,5)レスポンスが単なるHASHREFで簡潔なこと,だと言います。

導入のポイントは,検索インデックスの構成とQuery DSLの自由度で技術的に難しい企画要件にも耐えられる点と,RDBMSだとスケールしにくい処理をオフロード可能な点があったことでした。はてなブックマークと,Pressoにおける具体的な利用例とともに説明していたため,とても分かりやすい説明でした。

また,検索以外でもはてなブックマークカウンターでElasticSearchを利用しており,Webサイト全体のブックマーク数を集計する部分をAggregation APIで実装しているそうです。

最後に,ElasticSearchの今後予想される展開として,集約系機能の強化,データマイニング機能,より高次の機械学習アルゴリズムのサポートが挙げられること,今後利用が見込まれそうな分野として,APIがJSONなため,Webクライアントから直接利用したり,アドテクなど高度でリアルタイムな検索集約機能を活用したBtoBサービスなどを挙げていました。

はてなブックマークのような大規模なサービスでの利用例を聞くことができ,ElasticSearchの導入を検討していたり,サービスに検索機能を追加したい方にとって大変有意義な発表だったと思います。

画像

画像

Tokuhiro Matsunoさん「お待たせしました。Perl で BDD を簡単に実践する最高にクールなフレームワークができました」

@tokuhiromさんは,Perlのテストフレームワークの歴史と,多くの既存テストフレームワークが依存しているTest::Moreから脱却した新しいテストフレームワーク「Test::Kantan」を紹介しました。

「品質担保のためには書かざるをえないが,テストは好きではない」と言及し,それを解決するために,これまでにも「Test::SharedFork」⁠Test::Pretty」⁠Test::Ika」などを開発してきたそうです。これらはTest::Moreが利用しているTest::Builderの書き直しであり,夢がつまった「Test::Builder2」のリリースを期待し,待つ間のワークアラウンドとして開発・利用していたそうですが,残念なことにどこかで聞いた話と同じように開発停止が決まってしまったため,このたび「Test::Kantan」の開発・リリースを行ったとのことです。

Test::Kantanは,JavaScriptのテストフレームワークJasmineにinspierされ,BDDスタイル,before_each/after_eachなども実装されており,RSpecのように書けると説明しました。Assertionも従来のokを利用できつつもコードブロックを渡せるなどの改善が加えられただけではなく,expectメソッドも提供しBDDのスタイルでのテスト作成ができるそうです。

なによりこれまでの「慣れないと読みにくい,慣れても読みにくい」テストの出力結果を「美しい色で表示することは大事」⁠Unicodeの記号使えるとカッコイイ!」と大きく改善したそうです。

committerを募集しているそうですので,我こそはという方は利用してPerl界のテスト環境の改善に参加してはいかがでしょうか?

画像

画像

著者プロフィール

臼井洋文(うすいひろふみ)

京都府京都市出身のプログラマ。仕事ではPerlでサーバサイドを書きつつ,Objective-CでiOSアプリの開発をしている。週末はボルダリングに勤しむ日々。

Twitter:@usuihiro
Web:http://d.hatena.ne.jp/usuihiro1978/


日下部雄也(くさかべゆうや)

仕事はニフティクラウドのネットワーク関連の機能の企画・開発・運用で,運用自動化のためのプログラムを書いていることが多い。言語は,Perl,Python,Ruby,C,Goなど。最近,Vyatta CoreからフォークされたVyOSという仮想ルーターのユーザー会を設立し,第1回目のミーティングを主催した。

Twitter:@higebu
Web:http://www.higebu.com


滝沢玲美(たきざわれみ)

千葉県在住。仕事はITとは全く無縁な事務職だが,プログラミングに以前から興味があり。今回,Perl入学式にてプログラミングを初めて学ぶ。

藤沢理聡(ふじさわまさあき)

神奈川県在住。仕事でソフトウェア開発をしつつ,余暇にも友人たちとソフトウェア開発をする日々。長くPerlを愛用している他,ここ数年はPerl 6にも挑戦している。

Twitter:@risou
Web:http://www.risouf.net/


本間雅洋(ほんままさひろ)

北海道苫小牧市出身のプログラマー。好みの言語はPerlやPython, Haskell, Scala, OCamlなど。在学中は数学を専攻しており,今でも余暇を利用して数学を嗜む。現在はFreakOutに在籍し,自社システムの開発に力を入れている。 共訳書に「実用Git」(オライリー・ジャパン),共著書に「FFmpegで作る動画共有サイト」(毎日コミュニケーションズ)がある。

Twitter:@hiratara
Web:http://hiratara.github.io/


森藤大地(もりふじだいち)

ISP勤務。卒研でPerlのプログラムを組んで以来, Perlを利用している。 CROSSというエンジニアイベントを主催していたりする。 d3の翻訳やひとりアドカレなど,解析・可視化業務を行っている。

Twitter:@muddydixon
Web:http://muddydixon.hatenablog.com


山中裕之(やまなかひろゆき)

ドラゴンズファン。某会社のプログラマとして活動中。好きな言語はPerl, Ruby, C, C++, Haskelなど。武術が好きで休日はいそしんでいる。

Twitter:@hiroyukim
Web: http://hiroyukim.hatenablog.com

コメント

コメントの記入