Iron Python/Iron Ruby EXE

Jos*_*ers 7 ironpython ironruby

我一直梦想着用脚本语言创建一个"真正的exe".有了基于DLR的Python和Ruby实现,这是否更接近现实?

我想创建一个"真正的应用程序":

  • Windows窗体应用程序
  • 控制台应用程序
  • Windows服务

并且分配单元是编译的exe.

这可能吗?或者MS刚刚创建了基于.NET的脚本文件解释器?

如果您这样做,您如何构建您的应用程序/项目?您使用的是C#和DLR代码的混合体?

Shu*_*oUk 4

IronPython 或 IronRuby 项目可以很好地编译为 dll 或可执行文件,并且在各个方面都是“真正的”可执行文件,但运行它们的人必须安装相关的 .Net 框架和依赖项(依赖项可能存在于默认情况下位于同一目录,但必须安装框架)。与 Visual Studio 的集成仍然不存在,但像IronPythonStudio这样的项目使用免费的 VS Shell 效果很好。DLR 作为 VS 2010 中 c# 动态的依赖项的存在意味着与 Iron* 组的 VS 集成将成为一个更容易的目标和更高的优先级。

结果绝不会被解释(CIL 在运行时或通过 ngen(如果需要)被编译成机器代码),并且 DLR 的某些方面意味着某些操作以与后期绑定类似的方式推迟,但通过一些复杂的缓存机制更加强大和关键与天真的解释器相比,这使得它相对较快。

许多传统的解释型脚本语言正在创建自己的基于 VM 的编译策略或利用现有策略(如 JVM、.Net CLR 或开放式策略,如 LLVM ,因为这在许多常见情况下会带来显着的性能提升。

就 Iron* 语言而言,以 MS CLR 作为基础的好处是,生成的可执行文件可以在最常见操作系统系列的绝大多数安装上“正常工作”。与 Java 不同的是,在许多操作系统中,jar 文件不能通过直接单击 / 或通过 shell“执行”来“运行”。不利的一面是,与基于 JVM 或 LLVM 的解决方案相比,这降低了互操作性,其中平台支持更广泛,但不可避免地在操作系统集成方面更加多样化。