--- title: Lightweight Language Planet author: kazu634 date: 2011-08-20 url: /2011/08/20/lightweight-language-planet/ wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:5443;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - つれづれ ---

Lightweight Language Planetに参加してきました。メタプログラミングについてのセッション目当てで参加してきました。

IPv6 Hackathon

IPv6を使用している人が結構いることに驚きを感じる。

やっぱりこれからはIPv6でしょう。

IPv6対応のウェブサイトにつなぐと、色々と楽しいうごきをするサイトがある。

メタプログラミングの光と闇

メタプログラミングとは

プログラムを作るプログラム

広義のメタプログラミング

狭義のメタプログラミング

確立された開発手法、スタイル

Perlのメタプログラミング

evalが使えます!

Perlでは名前空間に関数、変数をくっつけることは自由

Devel::Declareを使用すると、Perlのパーサにフックすることができる!

Rubyのメタプログラミング

Rubyのメタプログラミング: 内部DSLを書くこと

新しい語彙の増加→新しい視点

「名前重要」文化

Pythonのメタプログラミング

メタプログラミングの定義は、みんなの心のなかにある!

Pythonは言語内DSLが苦手

演算子オーバロードが可能

Pythonから別の言語を生成する

Haskellのメタプログラミング

なんかすごかった!

ディスカッション

Javascriptプログラマのための全方位的完全武装ガイド (ma.la)

自己紹介

ma.laさんは UI エンジニアという立ち位置のはずが、専門分野に特化しておらず何でも屋

何でも屋vs専門家: 異なるレイヤーの知識が活かせる・器用貧乏になりがち

良いUIは競争力になり、伝搬力がある

UIが競争力がなくなることが最終的な目標

フロントエンドエンジニア?良いデザインのためには複数言語の知識が必要

あらゆるレイヤにボトルネックの存在がある!

Javascriptの進め

サーバが信頼できない前提でのAPI設計

“if we are evil” rather than “Don’t be evil”

驚き最小の原則に反する