什么是芥末?

时间:2009-06-16 19:01:07

标签: programming-languages

Joel Spolsky's blog上,我经常读到一些关于“芥末”的内容,如果我查看维基百科,它会提到it's an in-house programming language

这是什么?他们为什么要用它?为什么不公开?

3 个答案:

答案 0 :(得分:13)

我会从The Origin of Wasabi开始:

  

作为主要开发者和   芥末的维护者,我想   写了一系列关于芥末的文章   一段时间,上周,我决定了   和Joel谈谈这件事。今天我   将以短暂的历史开始   语言,后来我会说   关于它的一些较冷的功能和   我们想把它带进去的地方   将来

答案 1 :(得分:3)

以下是2013年的最新更新:

  

一开始,有蓟。蓟充其量只是一种荣耀   将ASP转换为PHP的正则表达式。它是由实习生写的,它   显示。

     

后来,Thistle被扩展为ASP到PHP编译器。编译器   仍然是一个松散的术语;还有很多正则表达式魔法   依赖于您遵循匈牙利应用程序表示法。那就是说,我很公平   确信这个版本的Thistle确实为代码构建了一个AST   生成,这意味着它有资格成为真正的编译器。

     

这很重要,因为这个版本的Thistle延伸了两个   附加功能:它可以将VBScript编译为JavaScript,以及它   为VBScript添加了一些便利,例如宏(称为picture functions(不要问)),lambda和简化   申报制度。不要对前者笑太多;动机   与RJS或Seaside的JavaScript支持相同。所有这三个   现在,技术已经死了,而且有充分的理由,   时间。

     

后来,当.NET问世,而VBScript已经过时,那就离开了我们   可以选择重写整个事物......或者做一个“真实的”   可以将VBScript编译为.NET的编译器。芥末出生了。芥末   被编写为可以将VBScript转换为C#的正确编译器   和(由于遗留原因;见上文)JavaScript。芥末,不像   蓟,是一个真正的,完整的编译器,在CS意义上,所以它是   可以添加类型推断,lambda表达式和其他几个   细节,不花太多精力。那说,这里的目标   是允许过渡:有限制的新组件可能是   用C#编写。这个想法是,至少希望,Wasabi会   逐渐被弃用。

     

所以没有。它从来就不是一种新语言。它一直是有意的   成为踏脚石,语言之间的翻译,而不是真实的翻译   语言本身。虽然它获得了一些额外的功能,但那是   使该死的东西变得可口 - 不是真正的语言   在自己的权利。发送C#和.NET IL实际上是大致相同的   如果你有一个真正的编译器很容易,但Wasabi总是发出C#,   特别是这样我们有一天可能会抛弃整个事情。

https://news.ycombinator.com/item?id=5281930

另见https://news.ycombinator.com/item?id=5281322

答案 2 :(得分:2)

它是Fog Creek制作和使用的语言。它基于VBScript。