FogCreek 的芥末语言是什么?

问题描述 投票:0回答:3

Joel Spolsky 的博客上,我经常读到一些有关“Wasabi”的内容,如果我查看维基百科,它会提到它是一种内部编程语言

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

programming-languages
3个回答
16
投票

我将从芥末的起源开始:

作为主要开发者和 Wasabi 的维护者,我一直想 写一系列关于芥末的文章 有一段时间,上周我决定 和乔尔谈谈这件事。今天,我 将从简短的历史开始 语言,稍后我会讲 关于它的一些更酷的功能以及 我们想要把它带到哪里 未来。


6
投票

这是 2013 年的最新更新:

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

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

这很重要,因为这个版本的 Thistle 扩展了两个 附加功能:它可以将 VBScript 编译为 JavaScript,并且它 为 VBScript 添加了一些便利,例如宏(称为 picture 函数(别问))、lambda 和简化 申报制度。不要对前者笑得太过;动机 与 RJS 或 Seaside 的 JavaScript 支持相同。全部三个 技术现在已经消亡了,这是有充分理由的,但它在当时很流行 时间。

后来,当 .NET 出现,VBScript 生命周期结束时,我们就离开了 可以选择重写整个事情……或者制作一个“真实的” 可以将 VBScript 编译为 .NET 的编译器。芥末诞生了。芥末 被编写为一个合适的编译器,可以将 VBScript 转换为 C# 和(出于遗留原因;见上文)JavaScript。芥末,不同于 Thistle 是一个真正的、成熟的编译器,从 CS 意义上来说,所以它是 可以添加类型推断、lambda 表达式和其他几个 细致入微,无需花费太多精力。也就是说,目标在这里 是为了允许过渡:新的组件,但有限制,可以 用 C# 编写。这个想法是,至少希望芥末能够 逐渐被弃用。

所以不。它从来就不是一种新语言。一直都是有意为之 成为垫脚石,语言之间的翻译者,而不是真正的翻译者 语言本身。虽然它获得了一些额外的功能,但那是 让工作变得令人愉快——而不是成为一种真正的语言 就其本身而言。发出 C# 和 .NET IL 实际上差不多 如果你有一个真正的编译器就很容易,但 Wasabi 总是发出 C#, 特别是这样我们有一天可以放弃整个事情。

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

另请参阅https://news.ycombinator.com/item?id=5281322


2
投票

它是 Fog Creek 创造和使用的语言。 它基于 VBScript。

© www.soinside.com 2019 - 2024. All rights reserved.