2008-11-14
■ [ruby][prog] 普通の人のためのふつうの言語
まつもとさんのkeynoteから考えたこと。
- 普通の人はメタプログラミングなんかしない。
- でもメタプログラミングができることはとても重要。なぜなら、それは言語の最大の力を規定するから。
- ライブラリの作者は普通の人ではないから、ふつうの機能も使いこなせる。
- 使用される頻度が低くとも、メタプログラミング機能を用意することは、強力なライブラリを生み出すという点で重要。
- ので、普通の機能だけでなく、「ふつうの機能」をどう設計するかがこれからのプログラミング言語には重要になってくるだろう。
9784797336023
注:「普通」はバズワードなのであまり深く考えないでね
■ [ruby] 高度に発達したDSLは言語そのものと見分けがつかない(?)
http://www.lingr.com/room/merb.jp にて。
- (アメリカの)Railsユーザの中には、RubyとRailsの区別がついてないやつがいて困る(インスタンス変数ってviewに値を渡すためのものだよね?みたいな)
- RailsはDSLすぎるのではないか→MerbもDSLだけど、もうちょっとRubyに近い文法にしてるよ
要するにDSLを凝りすぎると言語自体の習得を妨げるという主張か。面白いなぁ。
こういう話を見るとマクロがなくて良かったねと思ってしまう(言語組み込みでマクロが提供されてたら、Railsの文法はもっとカオスになってたに違いないw)
しかし現在はParseTreeというライブラリで構文木が取れてしまうんで、もうマクロがあるのと変わらないわけで。パンドラの箱はもう半分開いている。