The Pragmatic Ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

LLPlanetsに参加してきた

Lightweight Language Planets 2011に参加してきました。
http://ll.jus.or.jp/2011/

LLといいつつタイムテーブルの通りJavascript一色といった感じでした。
Node.jsやCoffeeScriptも流行ってるし当然といえば当然なのかも。

タイムテーブル
10:30-10:40 開会宣言+場内注意事項説明
10:40-10:50 IPv6ハッカソン紹介
10:50-12:20 メタプログラミングの光と闇
12:20-13:50 昼休み
13:50-14:35 基調講演
14:35-14:50 休憩
14:50-16:20 Node.jsとは何だったのか
16:20-16:50 夕休み
16:50-18:20 JavaScript八面六臂
18:20-18:35 休憩
18:35-19:05 IPv6ハッカソン成果報告
19:05-20:10 Lightning Talk
20:10-20:20 抽選会+閉会宣言



メタプログラミングの光と闇
メタプログラミングってなんぞという状態で聞いたのですが、マクロみたいなものでメタプログラミングなものやDSLちっくなものって意外と身近にいろいろあるなと感じました。
話の結論としては、メタプログラミングとかDSLとかつくらずに普通に書け!ということでしたがw


・基調講演
malaさんのお話はとても面白かった。配信されていたら必見。本人は顔出しNGなので無理かもですが・・。Javascriptは必須だなと感じました。
また、Webページの脆弱性を指摘すると寿司を食えたりするらしいですw

他メモ
Javascriptを自動生成するな
HTML5でクライアント側でできることが増えたからクライアントでしかできないことを採用せよ

・Node.jsとはなんだったのか
Node.jsはJavascriptをサーバーサイドでも使いたいだけだろとか思ってましたが、イベントループとノンブロッキングI/Oのサーバーを構築するのに最適な言語だったということで大きな誤解でした。
他にもイベントループを採用しているフレームワークは色々あったみたいですが、JavascriptみたいにノンブロッキングI/O環境を創りだすのは難しかったみたいであまり普及しなかったみたいですね。
シングルスレッドなのがあれですが、この先どう普及していくのか。
Node.jsはC++で書かれているみたいなので自分でも何か作ったりできるかも?!

Javascript八面六臂
以下メモ
・ECMA262の第三版の仕様はほぼ使えるとおもってよい
・bit,byte操作はむずかしい
複数人でやるとスタイルがばらばらになる
・コールバック地獄になりやすい。特にオフラインアプリ
・Workerに押しこめばコールバックしなくてすむ
・エラー処理がしにくい
・Promiseなどのライブラリを使うことである程度解決する
・エディタの昨日を使いつつ慣れる
・非同期I/Oはきをつけないといけない
・直列的に書けるライブラリをつかうといい(jsRefer)
ボトムアップで書いたほうがJSっぽい
複数人でやる場合はクラスのほうがいいかも
ecmaではクラスを取り入れる提案もあがってたりする
・プロトタイプベースでクラスでやりたいことはできるはず
・クラスベースでやらなければならない理由はないのでは
・webstormがeclipsenetbeansよりもつかいやすかった
・どれもgitがそれなりにつかえる
・記述の自由さがネック
・規約とテスト方法を決めとく
・対話型モジュールで学ぶのがよい
prototype.jsはコードリーディングにはよい。(使うのは・・)


Javascriptばっかりでしたが結構面白かったです。
今後は他のLLも頑張ってほしいですね。