午夜咖啡午夜咖啡

jolestar 的文章与笔记。

Post

Monkey 的跨平台代码生成

2011-03-15 10:35:18Post

跨平台这件事一直都有人做,但真正让人眼前一亮的往往不是“再造一个运行时”,而是尽量复用现有平台,把同一套抽象编译成多套目标代码。

当年看到 Monkey 这个语言时,我觉得它最有意思的点,不是“又来一个新语言”,而是它想做的事情很明确:直接把同一套代码生成到多个现有平台和运行时上。

它支持的目标当时就挺广,包括 C++C#JavaJavaScriptActionScript,以及 HTML5AndroidiOSFlashXNA 这些平台。

这种思路的吸引力在于,它没有执着于先统一所有运行时,而是先承认现实世界已经很碎片化,然后尽量用一层语言抽象把这些平台接起来。

跨平台方案里,我一直觉得这类路线比“重新发明一整套封闭生态”更务实。它当然会带来大量语义映射和平台差异问题,但至少方向很清楚:不是让所有平台变成一个样子,而是让一套业务逻辑尽量能在多个平台上复用。