超PHPerになろう

Enjoy PHP Programming

ODCとLLイベントでPHPの話をしてきた×3

2017年8月19日と8月20日の両日にOpen Developers Conference 2017 TokyoLLイベント2017ことLearn Languages 2017 in ODCに参加してきました。

https://www.ospn.jp/odc2017/modules/eventrsv/?id=1&noform=1www.ospn.jp PROGRAM – LLイベント2017

プログラミング環境としてのPHP

出張版 PHP勉強会@東京の枠で話すひとが決まってなかったので、話すことにしました。PHPの初学者向けの内容を意図して書きました。

内容自体は結構前からぼやっと思ってたことをまとめてみた感じです。個々の内容とかは既出の焼き直しがほとんどかな。

qiita.com

2017年のPHP開発にEmacsで勝つ

このLTは2週間以上前に申し込んでたのですが、タイトルは適当に決めて、内容は当日適当に書きました。応募した当初の構想は完全に忘れましたが、たぶんまったく別物です。

基本的には、いつも思ってることをはっきりと書きました。「つよいエディタ よわいエディタ そんなのひとのかって。ほんとうに つよい プログラマーなら すきな エディタで かてるように がんばるべき」などと私は思ってるのですが、仕事でやる以上は成果を出せると良いです。……みたいなところで、戦闘機と竹槍の話。あなたの使ってるエディタで進捗出せてますか? ひょっとしてエディタへの拘りは、単に馴れを言ひわけに研鑽を怠ってるだけで、時間を浪費してるだけなのでは???

といった疑問からのPhpStormの分析と、Emacsを使ってPhpStormを上回る進捗を出せるようにするための試みを始めよう、といった意思表明のつもりです。問題意識としてはずっと前からあったことなのですが、最近になってRequest: The Future of PHP Mode (TL;DR Near Bottom) : emacsのようなことがあって、未来について悩むことになった恰好です。

github.com

そんなこんながあって、GitHubリポジトリを作りました。EmacsPHPを開発するときに困ってることとか、ここどうにかならないかといった要望などがあればissueを作ってください。わかる範囲で解決策を提示するか、必要なものを実装していきます。

あなたの身の周りにEmacsPHPのコードを書いてるひとが居たら連絡してくれると嬉しいです。

PHPにおけるメタプログラミングの温床

LLイベントは2003年から毎年開催されるプログラミング言語を横断したコミュニティによるカンファレンスです。LL Saturday(2003)LL Weekend(2004)と続き、毎年名称が変更されるため「LLイベント」と総称されます。

とは言っても私はLLまつり(2013)に初めて参加したきり、ご無沙汰でした。今回参加しようと思ったのも上記のODCに参加してたからで、それも当日朝に ここしばらく寝不足が続いてたので 行こうか躊躇してたのですが、結果としては行って大正解でした。 当日のノリでLTに応募するところまで含めて

そんなわけで、以前からタイトルだけ構想を温めてた*1メタプログラミングの話です。

前から思ってたんですけど、メタプログラミングの定義ってなんなんですかね? みたいなことを深く悩むとインタプリタとの差、ただの実行時処理との差はいったい何だときりがないのですが、まあ単なる函数呼び出しとは異なる一見して不可思議な現象を起せればそれはメタプログラミングと言って良いのではないかと思ってます*2

めんどくさい(し時間がなかった)ので完全に説明を省いてるのですが、このスライドの内容は、ひとつ残らずPHPマニュアルに載ってます。つまり仕様内の挙動です。

参考までに、私がいままでに書いた記事では以下のものがメタプログラミングの応用です。

qiita.com qiita.com

予告

PHPカンファレンス2017 - #phpcon2017で話します。今度はエラー処理の話をするよ。

*1:タイトルだけ前から決めてただけでどこで発表するかも考へてなかったし、そもそも1文字たりとも書いてませんでした。

*2:言語仕様を熟知してる側にとっては「ちっとも不思議じゃねーよ」反論が成り立つので、あくまでアバウトで相対的な定義です。