题
好吧,在用 C# 编写 .net 程序很长时间之后,我开始对静态类型语言带来的所有语法垃圾感到愤怒和沮丧。现在我想更改为利用 CLI 的动态类型语言。所以我四处搜寻了一下,但我不喜欢我所看到的。我首先寻找 IronPython。但这个项目感觉杂乱无章,看起来一点也不好。然后我听说了布。我喜欢 boo's,理想的一切,但感觉这个项目已经停止了。然后我听说了 IronRuby,但该项目仍处于测试阶段,所以我决定等到它变得更加成熟。
因为我找不到一个好的 CLR 兼容的动态语言,所以我问你们你们会使用什么?
由于人们开始询问不选择 IronPython 的原因是什么。原因是,正如我之前所说,它似乎杂乱无章。为什么?
1-主页指向codeplex的另一个页面,主页应该干净,只指出IronPython的优点,以IronRuby页面为例 http://www.ironruby.net/ 它向用户隐藏了语言开发的内容(即使用户在使用之前必须访问 IronRuby 的 svn)。IPython 在创建时试图解决什么样的问题。有没有包含此类信息的页面?好吧,该页面就在那里,但它隐藏在“更多信息页面”上,在一堆无意义的文章链接中。在 Boo 的页面上,它清晰可见,名为 Manifesto http://boo.codehaus.org/BooManifesto.pdf .
还有更多,但我的感觉是,IPython 只是一个自制的解释器,尽管它实际上可以具有的质量。我觉得下载 Boo 并使用 IronPython 更安全(但不用担心 Microsoft,我也下载了 IPython)。
关于 Duck-Typing 和 Boo 的静态类型,它们似乎都适合我。
解决方案
我仍然使用 Boo 。我不确定你为什么认为Boo被制止了。开发有时看起来很慢,但目前有很多人在修复错误,如 此列表中最近修复的问题(错误) 。
对于那些不熟悉Boo的人来说,它与Python非常相似,但包括Python没有的东西(如 字符串插值 和 合成宏 )。您可以通过“Boo Interactive Shell”编译Boo程序或使用Boo。 booish
顺便说一下,几年前我看过它时,我不喜欢IronPython。对我而言,它看起来像是CLI的直接Python端口,但据我所知,它不包括典型的.NET开发所需的新功能。
编辑:自从我第一次看到它以来,IronPython似乎确实取得了进展(感谢Curt指出这一点)。但是,自从我找到Boo后,我再也没有费心去看IronPython。
其他提示
从实用性来说 铁蟒 现在将是您最好的选择。
为什么人们推荐 Boo?它是一种静态类型语言,这不是这个问题所要求的。是的,我知道它有可选的鸭子类型,但实际上,如果问题作者可以接受与 Boo 相关的信息,那么应该对问题进行编辑以使其清楚。
关于IronPython,你说你不喜欢它,但对于如此模糊的批评意见,我真的无法做出任何回应:)
或者,我建议您看一下 cPython. 。几点:
- 您可以使用 py2exe 和其他工具构建 .exe 文件。
- 对第 3 方 Python 库和框架的更多访问
- 通过 pywin32 访问 Windows API
- 用 C 编写的 Python 扩展是可用的(与 IronPython 不同,尽管有 努力 正在努力改善这种情况)
您会发现大多数事情实际上并不需要 .NET。当然,这一切都取决于您的应用程序。为了与现有的 .NET 代码集成,显然您必须使用 IronPython。
你说你想要“动态”,但如果动机只是为了避免“所有语法垃圾”,你应该看看 F#。它是静态类型的,但具有动态语言的轻松语法感觉,以及交互模式(REPL循环)。
我同意你的观点,认为IronPython似乎杂乱无章,但我一直将它用于(小)项目,到目前为止我对此非常满意。
如果您还没有看过,请查看 IronPython Studio 。
我一直走在类似的道路上。检查出Boo,dotLISP,IronPython等。
我推荐IronPython。但是,如果您还没有任何Python经验,那么您可能会通过加载CPython并将其用于示例&来更快地学习核心Python。教程。
一旦了解了CPython,IronPython将更容易理解。当然,您仍然需要了解一些C#并可以访问.Net SDK文档。没有它,IronPython很难完成有用的工作。
...带有静态类型语言的语法垃圾......
如果您的关注是语法垃圾,那么您可能还想查看带有类型推断的静态类型语言,最值得注意的是 F#。