“Lilu是一种允许保持Rails视图不变,使其内部无须含有ERB标签侵扰的方法(和工具)。”
教我不由得联想起前几个月听说的ActiveForm的故事。有人想什么都用Ruby(或者Yet-Another-DSL)来写,有人想HTML里面连一句Ruby scriptlet也不包括。DHH的评论更加不留情面:
“对‘无编码’模板的追求,让我想起MDA阵营对‘无编码’程序这个圣杯的找寻。这是一种海市蜃楼式的幻想,也就是和‘把玫瑰换个名字’如出一辙的演出。”
类似的玫瑰之名的演出还有对“无SQL”程序这个圣杯的找寻。就像我前面就已经说过的,既然SQL或者HTML这些语言当初被发明出来就是因为它们是更适合描述特定领域的DSL,为什么又要想办法让它们消失呢?既然scriptlet一直都工作得不错,为什么一定要让它一行都不出现呢?最纯粹的设计就是最好的设计吗?至少Tapestry——据说是Lilu的前辈——并没有证明这一点。
更何况,如果不喜欢HTML里嵌套scriptlet的话,多用点AJAX好了。