我忽略了快捷方式编程语言?

时间:2010-11-06 14:01:47

标签: javascript html yaml coffeescript

我看到在线项目数量增加,需要额外的“短”语法来生成底层代码(通常是HTML和JS),每当我看到另一个弹出窗口时,我都想知道我是否遗漏了一些东西。

在不同团队成员(设计师等)之间传递项目然后必须重新学习HTML和JS等基本语言时,学习和记住这些短代码的额外时间肯定会丢失吗?

有问题:YAML用于生成模板,项目(例如)CoffeeScript用于生成Javascript。我只是想知道其他Stackoverflow民众是否认为这种粒度级别的抽象有很大的好处,或者考虑到基础技术的改进,我认为这些类型的项目有任何生命周期(我在想HTML5 / CSS) / JQuery)这里。标记语言的进化程度不足以真正保证这些吗?

意识到这不是一个真正的问题,但是有兴趣听听社区观点。我确信这些类型的项目在创建自生成代码时有充分的理由,但除此之外,我很困惑 - 很多人每天都在使用它们。这是否值得一试?

3 个答案:

答案 0 :(得分:1)

就我个人而言,我认为这不值得,因为你在javascript中可以做的大多数事情都已经被像jQuery这样的库简化了。就他们的生命而言,很难说。但是,只要你了解javascript,并且了解代码输出,那么转移到一个不使用CoffeeScript的新项目就是随身携带输出代码的简单问题。

答案 1 :(得分:1)

Any sufficiently complicated program contains an implementation of Lisp

这是Lisp和朋友多年来推广的意识形态。基本上,您不鼓励用“原始”语言编写任何应用程序逻辑。原始语言具有普遍性和低级别,因此您的逻辑很快就会被大量支持语言本身所需的代码所玷污和污染。

相反,创建一个最适合您的应用程序的DSL并编写您的逻辑,而不是逻辑,在此DSL中。隐藏DSL背后的所有令人讨厌的语言细节。这使得逻辑更容易改进和支持。

另一方面,像Coffescript,Groovy等等,IMO是错误的方法。他们基本上试图创建新的通用语言,但是使用“更好”的语法,然而,这并没有解决根本问题 - 这些语言仍然描述抽象计算而不是问题域。更有效的方法是拥有一个非常基础的底层语言和一个完善的宏设施,可以简化创建DLS。这就是lisp本身的工作方式,这种方法的另一个例子是Haxe/Neko

答案 2 :(得分:0)

在我看来,我更喜欢使用jQuery编写简短的JS指令,并防止每个人都膨胀最终产品。我不喜欢css框架,因为我们正在构建巨大的门户网站而你并不总是需要隐藏在这些内部的所有内容。我更喜欢基于一些常见规则编写模块化CSS,例如使用clearfix来清除使用css重置。 :)