読者です 読者をやめる 読者になる 読者になる

ナカザンドットネット

Android Developer's memo

第36回 長岡IT開発者勉強会 #nds36 に行ってきました

第36回勉強会(2014/03/15) - 長岡 IT開発者 勉強会(NDS)
http://nagaoka.techtalk.jp/no36

今回のNDSは盛り沢山でしたね。2回発表した人が3人いたので輪をかけてボリュームが凄いことに。

というわけで、スライドが公開されているものはスライドも込みでレポしていきます。

メインセッション:Go言語入門

@さんによるGo言語についての入門セッションでした。

Go Playgroundというサイトを知れたのが個人的には一番の収穫でした。コードをその場で実行して試せるのもさることながら、Gistみたいに書いたコードに固有のURLを付けて、他の人に動作可能な状態で見せることができる。すごく便利。Gistにこういう機能付いたら面白いんだけどなあ。

全体を通して、golangへの見方が僕の中でガラッと変わったと思います。モダンなプログラミング言語なので、高級寄りの言語なのだろうと思ってました。が、実際に蓋を開けてみると、確保するbit数が違うintNNなプリミティブ型があるし、スライスなんてもろにポインタを意識してるし、かなり低級寄りでした。

正直ポインタが学生のときに習ったときのふわっとした理解のままで止まっているので、ガッツリとポインタが出てくる言語は使える気が全然しないですが、@hayajoさん的には「ベターCというよりもミニマルC」という印象らしく、実際に仕様もかなり小さいみたいです。

あ、golangのinterfaceの考え方がTypeScriptのinterfaceとかなり近い感じがしたんだけど、この辺なにか言語作った人たちの間でのシンパシーがあったのだろうか。興味深かったです。

サブセッション:いろんな言語たち

いちおう公式からのレギュレーションとしては

1言語につき何人話してOKです!
レガシーでも最新でも、初級から上級まで「言語」をテーマに含めてくれればなんでもOKです。(ただなにもその知識がない人向けにも、さわりだけでも話してもらえると助かります)

とのことでした。

Java7やJava8が僕らの目に優しくなってきている by @Nkzn

@です。僕です。1つめの発表です。

世の中では冗長だ面倒だと言われるJavaですが、タイプ数を減らせるように努力してるんだよ!!という話をしました。

まあAndroidがJava8の恩恵を受ける日はDalvikのままでは来ないんじゃないかと思うので、Android的にはどうでもいい系の話なんですけどね。。。

質疑応答で、インターフェースの匿名実装が珍しいというお話をいただきました。こういうやつですね↓

button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
        // any code
    }
});

JavaGUIプログラミングを行うAndroidやSwingなどではよく出てくる手法です。スクリプト系の言語ではfunctionの無名実装とかがありますが、あれに近いものだと思えばいいと思います。Javaではメソッドがファーストクラスオブジェクトになれないので、インターフェースを通してクラスという皮を被せて、「メソッドを渡す」という処理を実現しています。

とはいえ、Oracle認定Javaプログラマー資格の勉強をしていたときも、『クラスの定義の仕方』みたいな項で、「インターフェースをその場で実装することによる匿名クラスの定義」はオマケ程度にしか説明されていなかったので、Javaプログラマーの中でも知ってる人と知らない人がいそうな手法なんですよねえ。

Objective-C by @dictav

@さんの発表その1

デリゲートはiOSのUI作成をちょっと齧ったときに出てきたので知ってたけど、Adapterパターンだったんだなあ。

1年後に仕事がなくなるかもしれないそうです。弊社とかどうですかね。

ちょこっとPython by @civic

主催の@さんの発表

浅く広くな感じで、今後何か調べようと思ったときのいい足がかりになりそうな発表だと思いました。

変数のスコープの話あたりは、スクリプト言語にしては思ったよりも制限がある感じで、大きすぎるスコープの変数が生まれづらいという意味では大きめのプロダクトを作るのにも向いてるのかなあと思ったり。

プログラミング\TeX by @neruko3114

@さんの発表。

今回の発表の中で最も気持ち悪かったやつです。 (褒)

\TeXプログラミングしてます。原稿書いたり論文書いたりの組版とかワープロ方面の用途ではなく、プログラミングしてます。

あと、スライドも\TeX製だそうです。あまりにもぶっ飛んでいたので、敬意を表してこの項では伝統と信頼のはてな記法\TeX記法で、TeXではなく[tex:\TeX]と表記しています。

\TeX枠の発表があると聞いて、「あ、\TeXなら僕も論文で使ったことあるし、楽しんで聞けるかな」と思いながら臨んだところ、思いもよらぬ斜め上を行かれました。

会場の混乱の様子をツイートで御覧ください。

Java8 Date and Time API by @gonchan93

Java8 で導入された、Date and Time APIについての@さんのお話。

従来のDateは色々アレだよね、という話と、Date and Time APIで改善されるけどこれはこれでアレだよね、というお話でした。

個人的な感想としては、例によってJava8はAndroidには来ないので、このAPIのインスピレーションの元となったらしいJoda-Timeのほうが使う価値ありそうだなと思いました。

Joda-Timeは先日のFacebookライブラリ記事にも出てきており、弊社でも使ってますが、なかなか良い感じです。

サポートベクターマシン入門 〜金貨の真贋を見分けよう〜 by @salinger001101

@さんの発表。

R言語枠というよりはサポートベクターマシンってすげー!という感じのセッションでした。

R言語について覚えたのは1つだけ。「R言語の良いところは統計学者が作ったこと、R言語の悪いところは統計学者が作ったこと」

統計なー。アグリノートでそのうち必要になるんよなー。こういうの出来る人をどこかから引っ張ってくる準備をせねば。

Kotlin可愛いよKotlin by @Nkzn

@です。僕です。2つめの発表です。

KotlinいいよねKotlin!!!!!って言いたかっただけ。Scala入学式Scalaを触ったこともある人が多かったので、Scalaと被る機能についてはサラッと紹介して、大きな差別化要因であるNull-safetyについて多めに話したつもりです。

日本語情報は@さんとか@さんが頑張ってる印象なので、Kotlinやりたい場合は彼らの動向を見守りましょう。

たろうくんさんの資料

ぱとさんの情報(Android寄り)

はじめてのRuby by @dictav

@さんの発表その2。

バージョン番号の歴史的経緯と改善についての話は割と身近なので重要だと思った。

Rubyいいなー。「おれのかんがえたさいきょうのげんご」みたいなバランス感いいよなー。

RubyのCurryを少し食べてみた by @kasacchiful

@さんの発表その1。

Rubyでカリー化してみたよ、というお話&ライブコーディング。そもそもカリー化って何?のほうに時間を多く割いてくれたお陰で、すんなり頭に入ってきました。

普段カリー化がそもそもできないJavaばかり触ってるので、カリー化の使いどころを探す機会もないんですが、今度Kotlin使うようになるとカリー化ができそうなので、ちょっとチャレンジしてみたいですね。

軽量マークアップ言語 by @NPoi

@さんの発表。

ドキュメントとか書くときにさくっと書けるツールって使いたいよね何があるんだろうね的なお話。

などなどが上がっていました。

あと、別枠として、テンプレートエンジンも上がってましたね。細かくHTMLを書きたいけど、タグを書くのは面倒臭いという場合に使えそうです。

  • Haml - Ruby界隈で使われるらしい
  • Jade - Node.js界隈で使われるらしい

まあ生のHTMLを書くのもだるいので、こういうツールは用途に合わせて積極的に使っていきたいですね。

ライトニングトーク

コミュニケーションツール by @upinetree

NDSから巣立っていった@さんの発表。

チャットサービス「idobata」とBOT作成ツール「Hubot」を組み合わせて、社内チャットにプロジェクトのマスコットを表示し、コミュニケーションと業務を加速しようというお話。

確かに、チャットの中に可愛い女の子がいて、励ましてくれたりしたら、業務がすごく捗りそうです!!! 弊社も導入しましょうよ!!!(だれとなく)

1人Redmineのススメ by @bnosuke

弊社のニューフェイスになりました、@さんの発表。

一人でRedmineで業務管理をしてみたお話。

Redmineを使い始めてダルくなって辞める人が多いのは、トラッカーや表示項目などの名前や可視設定をデフォルトのままにしてるからで、業務フローに沿った形で適切に名前などを設定すれば、結構使えるのでは、とのことでした。

弊社でも業務管理のツールを模索しているところなので、今後、一緒に考えていきたいところです。

2年前に作ったものを今更ながら公開します by @kasacchiful

@さんの発表その2。

結婚式の二次会の幹事をやる機会が多かったので、ビンゴゲーム用のWebアプリを作ったそうです。使いたい方は声をかけてくださいだそうですよよよ。

まとめ

#NDS36は、11名14セッションが発表された、大ボリュームのイベントとなりました。

僕はプログラミング言語ごとのシンタックスの違いとかが割と好きな方なので、こういうスタイルの回がまたあると嬉しいですね。人が違うと出てくる言語も違ってくるでしょうし。

それではこれにて今回のレポートとさせていただきます。あー久々に長文書いたー。