Tho*_*aaf 12 programming-languages
在Joel Spolsky的博客中,我经常阅读有关"Wasabi"的内容,如果我查看Wikipedia,它会提到它是一种内部编程语言.
它是什么?他们为什么要用它?为什么不公开?
以下是 2013 年的最新更新:
一开始,有蓟。Thistle 充其量只是一个将 ASP 转换为 PHP 的美化的正则表达式。它是由一名实习生写的,它表明了这一点。
后来,Thistle 被扩展为 ASP 到 PHP 编译器。编译器仍然是一个宽松的术语;仍然有很多正则表达式的魔力依赖于您遵循匈牙利应用程序符号。也就是说,我相当有信心这个版本的 Thistle 确实构建了用于代码生成的 AST,这确实意味着它有资格成为真正的编译器。
这很重要,因为这个版本的 Thistle 扩展了两个附加功能:它可以将 VBScript 编译为 JavaScript,并且为 VBScript 添加了一些便利,例如宏(称为图片函数(不要问))、lambda 和简化申报制度。不要对前者笑得太过;其动机与 RJS 或 Seaside 的 JavaScript 支持相同。这三种技术现在都已经消亡了,这是有充分理由的,但它在当时很流行。
后来,当 .NET 出现并且 VBScript 生命周期结束时,我们可以选择重写整个内容……或者制作一个可以将 VBScript 编译为 .NET 的“真正的”编译器。芥末诞生了。Wasabi 被编写为一个合适的编译器,可以将 VBScript 转换为 C# 和(由于遗留原因;见上文)JavaScript。Wasabi 与 Thistle 不同,从 CS 意义上来说,Wasabi 是一个真正的、成熟的编译器,因此可以添加类型推断、lambda 表达式和其他一些细节,而无需花费太多精力。也就是说,这里的目标是允许过渡:可以用 C# 编写有限制的新组件。我们的想法是,至少希望芥末会逐渐被弃用。
所以不行。它从来就不是一种新语言。它始终旨在成为一种踏脚石,一种语言之间的翻译者,而不是一种真正的语言本身。虽然它获得了一些额外的功能,但那是为了让在该死的东西中工作变得令人愉快——它本身并不是一种真正的语言。如果您有一个真正的编译器,那么发出 C# 和 .NET IL 实际上同样容易,但 Wasabi 总是发出 C#,特别是这样我们有一天可以放弃整个事情。
https://news.ycombinator.com/item?id=5281930
另请参阅https://news.ycombinator.com/item?id=5281322