.net推荐的良好动态编程语言

时间:2008-10-05 22:54:22

标签: c# .net ironpython boo

好吧,经过很长一段时间用C#编写.net程序,我开始对静态类型语言带来的所有语法垃圾感到愤怒和沮丧。现在我想改用动态类型语言,它利用了CLI。 所以我搜索了一下,我不喜欢我所看到的。我首先找了IronPython。但该项目感觉杂乱无章,它看起来并不好看。然后我听说了Boo。我喜欢boo,理想和所有,但它有点像项目停止。然后我听说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更安全(但不用担心微软我也下载了IPython)。

关于Duck-Typing和Boo的静态打字,它们似乎对我来说都很好。

8 个答案:

答案 0 :(得分:7)

我仍然使用Boo。我不确定你为什么认为Boo被制止了。开发有时似乎很慢,但目前有多个人正在进行错误修复,如this list of recently fixed issues (bugs)所示。

对于那些不熟悉Boo的人来说,它与Python非常相似,但包括Python没有的东西(如string interpolationsyntatic macros)。您可以通过“Boo Interactive Shell” booish 编译Boo程序或使用Boo。

顺便说一下,几年前我看过它时,我不喜欢IronPython。对我而言,它看起来像是CLI的直接Python端口,但据我所知,它不包括典型的.NET开发所需的新功能。

编辑:自从我第一次看到它以来,IronPython似乎确实取得了进展(感谢Curt指出这一点)。但是,自从我找到Boo后,我再也没有费心去看IronPython。

答案 1 :(得分:7)

就实际可用性而言, IronPython 目前是您最好的选择。

为什么人们会建议Boo?这是一种静态类型的语言,这不是这个问题所要求的。是的,我知道它有可选的鸭子打字,但是如果问题作者可以接受与Boo相关的信息,那么问题应该被编辑以使其清楚。

关于IronPython,你说你不喜欢它,但我真的没有任何回复可以给那些含糊不清的批评意见:)

或者,我建议您查看cPython。几点:

  • 您可以使用py2exe和其他工具构建.exe文件。
  • 对第三方Python库和框架的大量访问
  • 通过pywin32
  • 访问Windows API
  • 用C编写的Python扩展是可用的(不像IronPython,虽然有efforts正在进行以改善这种情况)

你会发现大多数事情你真的不需要.NET。当然这一切都取决于您的应用。为了与现有的.NET代码集成,显然你必须使用IronPython。

答案 2 :(得分:5)

你说你想要“动态”,但如果动机只是为了避免“所有语法垃圾”,你应该看看F#。它是静态类型的,但具有动态语言的轻松语法感觉,以及交互模式(REPL循环)。

答案 3 :(得分:1)

我同意你的观点,认为IronPython似乎杂乱无章,但我一直将它用于(小)项目,到目前为止我对此非常满意。

如果您还没有看到,请查看IronPython Studio

答案 4 :(得分:1)

您还可以查看Fan语言。它不是纯粹的动态,它是静态和放大的混合物。动态。和大多数较新的语言一样,它是纯粹的OO,具有功能性的混合。它也可以在JVM和CLR平台上运行。

语法明智地它更接近C#,带有大量的糖语法,所以它看起来像C#与Ruby / Python融合。

由于语言是新的,只有3年,它的表现还不是很好。

2014年2月21日更新: Fan将其名称更改为Fantom

答案 5 :(得分:1)

我一直走在类似的道路上。检查出Boo,dotLISP,IronPython等。

我推荐IronPython。但是,如果您还没有任何Python经验,那么您可能会通过加载CPython并将其用于示例&来更快地学习核心Python。教程。

一旦了解了CPython,IronPython将更容易理解。当然,您仍然需要了解一些C#并可以访问.Net SDK文档。没有它,IronPython很难完成有用的工作。

答案 6 :(得分:0)

看看Clojure。 CLR版本仍处于早期阶段,但您可以通过IKVM

获取.Net版本的.Net版本

答案 7 :(得分:0)

  

...带有静态类型语言的语法垃圾......

如果您的问题是语法垃圾,那么您可能还想查看带有类型推断的静态类型语言,最值得注意的是F#