Post
Monkey 的跨平台代码生成
跨平台这件事一直都有人做,但真正让人眼前一亮的往往不是“再造一个运行时”,而是尽量复用现有平台,把同一套抽象编译成多套目标代码。
当年看到 Monkey 这个语言时,我觉得它最有意思的点,不是“又来一个新语言”,而是它想做的事情很明确:直接把同一套代码生成到多个现有平台和运行时上。
它支持的目标当时就挺广,包括 C++、C#、Java、JavaScript、ActionScript,以及 HTML5、Android、iOS、Flash、XNA 这些平台。
这种思路的吸引力在于,它没有执着于先统一所有运行时,而是先承认现实世界已经很碎片化,然后尽量用一层语言抽象把这些平台接起来。
跨平台方案里,我一直觉得这类路线比“重新发明一整套封闭生态”更务实。它当然会带来大量语义映射和平台差异问题,但至少方向很清楚:不是让所有平台变成一个样子,而是让一套业务逻辑尽量能在多个平台上复用。