@numa08 猫耳帽子の女の子

明日目が覚めたら俺達の業界が夢のような世界になっているとイイナ。

築地で寿司食って新宿でgo書いてきた #tabunmurisushi #sri_mokumoku

f:id:numanuma08:20150413004048j:plain

寿司

どういう流れだったのかはよく思い出せないけど、築地に7時に集合して@と@と俺の3人で寿司食べた。

雨も降ってて4月なのに冬物のジャケットを着る寒さの中で時間通りに集合できたのは寿司が起こした奇跡としか言いようがない。

とくにお店も決めずに適当に行ったので、卸売市場をブラブラ回ってた。取れたての魚が卸価格で並んでいるのは壮観。ここで大量にサンマを仕入れて河原で焼いて食べる集まりとかやりたい。

あと、市場入口は信号とか無いのに車やらが行き交う様はまるでミャンマーの道路だった。スキを見て反対側に命がけで渡るみたいなあの感じ。ミャンマーだ。

f:id:numanuma08:20150411075644j:plain

それはともかく寿司を食べた。マグロってこんなに柔らかいんだなぁとか、卵の中にご飯が入っているのって珍しいなぁとか。ボキャブラリーが無いのでアレだけど美味しかった。

go言語

この日の目的は寿司を食べることだけじゃなくて、第3回【フリースタイル】もくもく会に参加することだったわけで。

freestyle-mokumoku.connpass.com

西新宿の会場に移動して、ひたすらモクモクとgo言語でアプリを作ってた。やってたのはこれ

github.com

1年くらい前にrubyで書いたて公開をしたgit-gitlabをgo言語で作りなおしている。

このツール、gitlab公式サイトからリンクとか貼られてて、俺が公開していいるリポジトリの中でも1番スターがあって、たまーにプルリクとかIssueとか来るんだけど全くメンテをしていなかった。

俺も使ってなかったし。

そんな中、先日ちょっと使ってみたら依存しているライブラリのバージョンに追従できていなくて全く使えない状態になってた。

gitlabは仕事でも利用しているので、やっぱりCLIから操作ができると便利。そんなわけで作りなおすことにしたんだけど、rubyだとどうしても動作の遅さが気になって。

そういえば、githubgithub/hubもメジャーバージョンアップでgoに変わってたので自分もgoを使うことにしたという流れ。ググったら開発環境とかもそれなりにノウハウがあるっぽかったし。

go言語はコンパイル言語なのにダックタイピングによるポリモーフィズムを実装していて面白い言語だと思っている。「コンパイル言語なのに」というくくりだと、objective-cはどうなるんだって思ったりもするわけだけれど。継承ではなくinterfaceで定義されたメソッドを実装したクラス(?)がinterfaceの実装とみなされる仕組みは、設計とかに柔軟性が出てよいなぁって思った。

Scalaなんかは、そういった柔軟性を強力な型システムや宣言で実現しているイメージ。goと比べると冗長と言うか宣言が多いような気はする。型推論によって省略は可能だけどね。

というわけで、クライアントサイドはgo、複雑になりそうな部分はScala、バックエンドもScalaとかって構成が楽しめそうだなぁって思った。mackerelもそんな感じだったっけか。

nil...?

nilの動きは面白い。レシーバーがnilでもメンバへアクセスすることができる仕組み、他の言語でもあるのかな?

最近はswiftを触っている関係もあって、OptinalとかScalaのOptionあるいはObjective-Cnilのようにレシーバーがnil(none)のメンバへアクセスしてもnil(none)が得られるだけっていう仕組みに慣れてたのでちょっと焦った。

このnil関連は最初の方の闇っぽいけど、まあ大丈夫でしょう。多分

その他

LTやった。人前で話をするのは久しぶりな気がする。今回はあんまりネタも考えていなかったので(むしろ、寿司ネタを与えて貰う側だったわけだし)適当にObjective-CのキモいところをObjective-Cを知らない人に紹介する感じのことをした。

swiftが登場して、メジャーになるにつれてObjective-Cが失われた遺産になるのかなー?とか、でもswiftをやるにはObjective-Cを知っておいたた方がいいよなー?とかまあその辺りの思いがあったので。

とりあえず

  • NSProxyでメソッドの呼び出しを横取りするデモ
  • Method Swizzlingによるメソッド切り替えのデモ
  • Associate Objectで動的にプロパティを生やすデモ

をやっておいた。コードを書いて動かすだけだったからあんまり伝わらなかったかなぁ?

Objective-Cコンパイルする言語だけれどRubyとかのようにやたらと動的な特性を持っているので面白い。

あと忘れてたけど会場はポート株式会社さんの会議室を利用させて頂いていた。

新しいことを始めたい人、引っ張っていく人を募集しているっぽいので気になる人はチェックすると良いっぽい(宣伝

最近は色々と予定をいれてて1日中コードを書いたりしていなかったので良い週末だった。

今度の朝寿司は、寿司だけじゃなくてお酒も導入したい。