gigix说DSL[url=http://gigix.thoughtworkers.org/articles/2007/05/10/yet-another-dsl]不要太多[/url],提到了HTML需不需要DSL的问题。我随便说几句。
我从来不参与DSL的争论,因为DSL从来就不是什么理论问题,也不要扯到框架或者自然语言上。因为:
[size=18][color=red]DSL == Nice Code ![/color][/size]
只要代码变得更好,就可以称作DSL,就这么简单。从这个意义上来讲,DSL越多越好。
HTML的DSL我主要研究了[url=http://haml.hamptoncatlin.com]HAML[/url],确实比HTML好的多,是很有前途的东西。[url=http://haml.hamptoncatlin.com/tutorial/]官方教程[/url]很棒,我就不介绍了。ActiveForm没仔细看,暂时确实没什么用,当时也只是顺便提了一下而已。
不管HTML理论上有多么DSL,只要还有重复,还有更简便的写法,就可以用一套DSL来达成Nice code。HAML其实是HTML的一个语法糖集合,决不会损失任何特性。没有任何代价地得到更简短的代码,何乐而不为呢?标签语言的DSL早已有之,YAML就是其中之一。
其实HAML更重要的目标是结束rhtml这种恶心语法。从php,asp,jsp延续而来的 <% ...%>这种语法让HTML代码非常恶心。在rhtml中,经常忘记<% end %>也是我的一个老毛病。混合HTML代码和服务器脚本导致代码混乱,这种问题根深蒂固,众说纷纭。HAML目前是一种不错的解决办法。
[url]http://code.google.com/p/rplanner[/url]是我的HAML的实践演练。使用HAML至少砍掉了我的一半rhtml代码。更重要的是,简短的代码使人心情舒畅,这才是生产力的关键。
其实新技术的引进更让人担心的是学习成本,包括个人学习和Team学习。这已经不是技术问题了,一个学习能力强的团队永远具有更强的竞争力。
我从来不参与DSL的争论,因为DSL从来就不是什么理论问题,也不要扯到框架或者自然语言上。因为:
[size=18][color=red]DSL == Nice Code ![/color][/size]
只要代码变得更好,就可以称作DSL,就这么简单。从这个意义上来讲,DSL越多越好。
HTML的DSL我主要研究了[url=http://haml.hamptoncatlin.com]HAML[/url],确实比HTML好的多,是很有前途的东西。[url=http://haml.hamptoncatlin.com/tutorial/]官方教程[/url]很棒,我就不介绍了。ActiveForm没仔细看,暂时确实没什么用,当时也只是顺便提了一下而已。
不管HTML理论上有多么DSL,只要还有重复,还有更简便的写法,就可以用一套DSL来达成Nice code。HAML其实是HTML的一个语法糖集合,决不会损失任何特性。没有任何代价地得到更简短的代码,何乐而不为呢?标签语言的DSL早已有之,YAML就是其中之一。
其实HAML更重要的目标是结束rhtml这种恶心语法。从php,asp,jsp延续而来的 <% ...%>这种语法让HTML代码非常恶心。在rhtml中,经常忘记<% end %>也是我的一个老毛病。混合HTML代码和服务器脚本导致代码混乱,这种问题根深蒂固,众说纷纭。HAML目前是一种不错的解决办法。
[url]http://code.google.com/p/rplanner[/url]是我的HAML的实践演练。使用HAML至少砍掉了我的一半rhtml代码。更重要的是,简短的代码使人心情舒畅,这才是生产力的关键。
其实新技术的引进更让人担心的是学习成本,包括个人学习和Team学习。这已经不是技术问题了,一个学习能力强的团队永远具有更强的竞争力。